1、面向对象程序技术(C+)教学大纲课程名称:面向对象程序设计(C+)/ Oriented-Object Programming(C+)学时/学分:68 学时/4 学分(其中课内教学 48学时,实验上机 20学时)先修课程:高等数学、计算机应用基础、计算机组成原理与汇编语言、C 语言程序设计适用专业:信息与计算科学开课院(系、部、室):数学与计算机科学学院一、课程的性质与任务面向对象程序设计是信息与计算科学专业的专业基础课之一。主要任务是介绍C+语言中的数据类型,运算,语句结构及其面向对象程序设计的基本方法。目的是使学生掌握面向对象程序设计的基本概念与方法,进而学会利用 C+语言解决一般应用问题,
2、并为后续的专业课程奠定程序设计基础。二、课程内容、基本要求与学时分配(一) C+语言概述 1学时1、了解 C+语言的简史与特点2、了解一个简单的 C+程序3、掌握程序的编辑、编译、链接和运行及集成开发环境重点:C+程序的结构。难点:C+程序的编辑、编译、连接和运行环境。(二) 基本数据类型与输入输出 1学时1、掌握 C+的基本数据类型(整型、字符型、枚举型、实型) 2、熟练掌握常量、变量 3、掌握宏定义的使用4、掌握 I/O流及了解 printf( )与 scanf( )函数重点:C+的数据类型及 I/O控制流。难点:I/O 控制流。(三) 函数 3学时1、掌握函数的组成 2、熟练掌握函数的调
3、用与参数的传递 3、掌握函数的原形 4、掌握 inline函数 及默认参数的函数和递归函数的概念5、掌握函数的重载 6、掌握全局变量、局部变量和静态局部变量的概念 重点:C+的函数结构、全局变量、局部变量和静态局部变量的概念。难点:inline 函数、 默认参数的函数和函数的重载。(四)程序结构 2学时1、掌握变量的存储类别2、掌握变量的作用域、可见性和生命周期3、了解头文件、多文件结构及编译预处理的概念重点:变量的作用域、可见性和生命周期。难点:多文件结构的编译处理。(五) 指针 3学时1、熟练掌握指针的概念 2、熟练掌握指针变量的定义、初始化和指针运算3、掌握 const指针 4、掌握指针
4、与数组的关系 5、掌握指针与函数的关系6、掌握指针与字符串的关系 7、了解指针与堆空间的应用重点:指针与数组、函数和字符串的关系。难点:const 指针。(六) 引用 3学时1、掌握引用的概念及操作2、掌握用引用传递函数参数3、掌握用引用返回函数值4、掌握函数调用作为左值5、了解用 const 限定引用6、了解返回堆中变量的引用重点:用引用传递函数参数、用引用返回函数值、函数调用作为左值。难点:函数调用作为左值、返回堆中变量的引用。(七)类 3学时1、掌握类的概念与定义 2、掌握类成员函数的定义3、掌握类成员函数的调用4、掌握类成员的访问属性 5、掌握成员函数与 this指针重点:类成员函数的
5、定义、调用、类成员的访问。难点:成员函数与 this指针。(八)构造函数 4学时1、掌握对象的概念2、掌握构造函数与析构函数的概念、定义格式及其调用 3、掌握带参数的构造函数的概念和定义 4、掌握重载构造函数的概念和定义5、掌握默认构造函数的概念和定义6、了解类成员的初始化7、掌握类成员的构造8、了解构造对象的顺序重点:构造函数与析构函数的概念、定义格式及其调用。难点:类成员的初始化、类成员的构造。(九)面向对象程序设计 2学时1、掌握抽象和分类的概念 2、掌握面向对象技术的基本概念3、了解结构化程序设计方法与面向对象方法的差别重点:抽象和分类的概念。(十)堆与拷贝构造函数 4学时1、掌握堆的
6、概念2、掌握 new 和 delete 的操作3、掌握拷贝构造函数的概念和定义4、掌握默认拷贝构造函数的概念和定义5、了解浅拷贝和深拷贝的概念6、了解临时对象和无名对象的概念7、掌握构造函数的类型转换功能重点:拷贝构造函数、默认拷贝构造函数的概念和定义、new 和 delete 的操作。难点:浅拷贝和深拷贝。(十一)静态成员与友元 4学时1、掌握静态成员的概念及使用2、掌握静态数据成员、静态成员函数的概念及使用3、掌握友元函数与友元类的定义和使用重点:静态成员、静态成员函数、友元函数与友元类。难点:友元函数与友元类的使用。(十二)继承 4学时1、理解继承的概念2、掌握继承的工作方式3、掌握类的
7、多态性与虚函数的概念及定义 4、掌握抽象类与纯虚函数的概念及定义重点:多态性与虚函数、抽象类与纯虚函数。难点:虚函数与 纯虚函数。 (十三)多重继承 4学时1、掌握多重继承的工作方式2、掌握虚拟继承的概念和定义3、掌握多重继承的构造顺序4、掌握继承的访问控制5、理解保护继承和私有继承的概念和应用重点:多重继承、虚拟继承。难点:继承的访问控制。 (十四)运算符重载 5学时1、理解运算符重载的概念2、掌握基本运算符的重载形式3、掌握值返回与引用返回的概念重点:运算符重载。难点:返回引用的运算符重载函数。(十五)I/O 流 2学时1、理解 I/O 标准流类2、掌握标准输入输出的预定义流对象: cin
8、、cout、cerr、clog3、理解文件流类4、理解串流类5、掌握插入运算符的重载6、掌握文件的基本操作重点:标准输入输出的预定义流对象。难点:文件的基本操作。(十六)模板 2 学时1、理解模板的概念 2、掌握函数模板和类模板的概念及其定义3、掌握模板函数的重载4、了解标准模板类库重点:函数模板和类模板。难点:模板函数的重载。(十七)异常处理 1学时1、了解异常的概念2、了解异常的规则及处理机制3、了解异常的实现及使用方法4、了解多路捕捉重点:异常的规则及处理机制。难点:异常的实现及使用方法。三、推荐教材和主要参考书1、推荐教材:(1)钱能,C+程序设计教程, 清华大学出版社。2、推荐参考书:(1)林亨利等 著,TURBO C+应用教程, 清华大学出版社。(2)周宁等 著,Borland C+编程技巧与实例,清华大学出版社。(3)Nell Dale 著,C+程序设计(第二版) ,高等教育出版社。(4) Bjarne Stroustrup 著,C+程序设计(特制版) ,高等教育出版社。(5)张基温 著,C+程序设计基础,高等教育出版社。(6)谭浩强 著,C/C+程序设计教程,高等教育出版社。大纲制订者:张成林 大纲审定者: 吴元斌