《面向对象程序设计(一)》课程教学大纲
(Object-Oriented Programming I)
课程编号:
学时数:60 其中:实验学时:20 课外学时:80
学分数:
适用专业:计算机科学与技术
1. 课程的性质、目的和任务
《面向对象程序设计(一)》是计算机科学与技术专业的专业课。本课程开设的目的是要求学生理解面向对象的基本思想、基本概念;掌握面向对象程序设计语言的基本结构、各种语法成分的作用、语法结构及运用方式;了解面向对象程序设计的方法和技巧;进一步加强学生编写和调试应用程序的能力。为学习《面向对象程序设计(二)》打下扎实的基础
2. 课程教学的基本要求
本课程结合目前广泛使用的C++语言来进行教学。通过学习本课程要求学生理解面向对象的基本思想、概念,掌握C++语言的语法、结构;了解面向对象程序的框架;掌握上机操作和程序调试的基本方法,初步具备编制和调试面向对象程序的能力。本课程是实践性很强的课程,要求学生在课外完成较多的编程练习。
3. 课程的教学内容、重点和难点
1. 绪论
了解:面向对象程序设计的基本思想及基本概念
了解:面向对象语言的分类和C++中支持面向对象的特点
了解:面向对象的软件开发环境
了解:C++开发工具的主要功能和使用方法
2. 面向对象程序设计方法导论
理解:类、对象、实例的概念
了解:封装、继承、多态等概念
了解:面向对象模型的基本情况
了解:面向对象软件分析、设计、实现的基本方向
了解:程序设计风格并在实验中运用
3. C++对C语言的常规性能扩充
掌握:用cin,cout,cerr,<<,>>进行基本输入输出
掌握:C++中变量定义的方法及其与C语言中的区别
掌握:作用域限定符的用法
难点:C、C++语言中变量的作用域、生存期的概念
掌握:枚举类型的用法
难点:枚举变量的存储及其输入输出
了解:C++中struct与C语言中的不同
掌握:const的用处和用法
了解:函数形式的类型转换与C语言中类型转换的不同
掌握:引用的语法形式
掌握:引用参数的用法
难点:函数参数的传址和传值方式及其区别
理解:引用返回值与左值概念
掌握:函数原型的写法、作用
了解:ANSI C/C++对函数原型的要求,强类型检查等概念
掌握:inline函数的作用和语法形式
了解:inline函数与参数宏的对比
难点:inline函数的实质
掌握:缺省参数的形式
掌握:重载的概念
了解:函数重载的实现机制
掌握:new和delete的用处和写法
难点:动态内存分配与指针
掌握:行注释//和C语言中/**/注释的不同
了解:C/C++程序设计的风格
4. 类和对象
掌握:类定义的方法和存取级别
了解:结构作为类的定义的方法与class的区别
掌握:类的成员变量和成员函数的定义和使用,以及对象的定义
了解:友元函数和友元类
掌握:构造函数和析构函数
重点:构造函数和析构函数的调用及其次序
难点:复制构造函数的调用
掌握:静态类成员变量和成员函数的定义和使用方法
掌握:内联成员函数的定义和使用方法
了解:嵌套类与局部类的定义
理解:在函数中对象传递的机制
5. 多态性和重载
掌握:成员函数重载
掌握:运算符重载的概念
掌握:使用friend重载运算符的方法
重点:难点:成员形式和友元形式下一元和二元运算符重载的差别
了解:数组重载运算符new和delete的定义
了解:定义重载某些特殊的运算符的方法,包括重载[]、重载()、重载->等
6. 继承性与派生类
了解:类层次的概念及如何将概念和实现转变为类的层次的方法
掌握:单继承的定义
理解:不同派生方式下成员存取控制的变化
掌握:向基类构造函数传递参数的方法
理解:多继承的定义
了解:虚基类和二义性问题
7. 运行时的多态性和虚函数
理解:虚函数和纯虚函数的概念
掌握:虚函数的用法
理解:虚析构函数的意义
了解:抽象类的概念
了解:早期和后期联编的概念
8. 泛型程序设计和模板
了解:泛型程序设计的意义
掌握:模板函数的用法
掌握:类模板的定义方法
难点:多参数的模板设计
9. C++的I/O系统
了解:C++的流,包括C++的预定义流
掌握:格式化I/O的定义格式和定义方法
掌握:创建重载运算符<<和>>的方法
了解:创建无参数操纵符和带参数操纵符的方法
了解:一般I/O流和文件流的关系
理解:文件与文件流的关系
理解:文件系统的概念,包括文件指针和关于文件的操作
掌握:文件类的定义和相关操作的定义、使用方法
掌握:利用常用函数进行文件的打开、关闭、读写、定位等操作
10. C++的发展和应用
了解:STL类库的常识
了解:MFC类库的常识
了解:VC++开发环境
4. 课程各教学环节要求
实验环节的基本要求:见《面向对象程序设计(一)》课程实验教学大纲。
作业的基本要求:主要为编程题,并通过课外上机加以验证。
课程设计环节的基本要求:有一周的课程设计。课程设计采用的方式为编制程序,并上机调试运行。见《面向对象程序设计(一)》课程设计大纲。
5. 学时分配
序号 主要内容 学 时分 配 作业 题量 备注
1 绪论 2
2 面向对象程序设计方法导论 6 2
3 C++对C语言的常规性能扩充 8 10
4 类和对象 8 8
5 多态性和重载 6 6
6 继承性与派生类 6 8
7 运行时的多态性和虚函数 6 3
8 泛型程序设计和模板 6 2
9 C++的I/O系统 6 6
10 C++的发展和应用 6 1
6. 课程与其它课的联系
先修课:C语言程序设计。后续课:面向对象程序设计(二)。
7. 考核方式
考查课,采用笔试。评分标准:平时20%、期中20%、期末60%。
8. 教学参考书
1. 朱战立等编 面向对象程序设计与C++语言 西安电子科技大学出版社
2. Bjarne Stroustrup著 裘宗燕译 C++程序设计语言(特别版)机械工业出版社
3. H.M.Deitel,P.J.Deitel著 周靖 黄都培译 C++ 编程金典(第3版) 清华大学出版社
4. Lippman著 潘爱民译 C++ Primer(第三版)中国电力出版社
《面向对象程序设计(一)》课程实验教学大纲
一.实验总学时(课外学时/课内学时):20 总学分:
必开实验个数:10 选开实验个数:
二.适用专业:计算机科学与技术
三.考核方式及办法:课内实验,教师随堂检查学生完成情况,不单独考核。
四.配套的实验教材或指导书:面向对象程序设计(一)教材配套实验
五.实验项目:
实验一 C++中的对C语言的常规扩充(1)
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握C++语言中扩充部分。
(六).实验内容:编写一个完整的C++程序,并调试通过。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验二 C++中的对C语言的常规扩充(2)
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握C++语言中扩充部分。
(六).实验内容:将原来C语言编写的程序改写成一个C++程序,并调试通过。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验三 类与对象
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握类的定义。
(六).实验内容:定义一个类并写一测试程序建立该类的对象并调试。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验四 多态性和重载
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握成员函数和运算符的重载。
(六).实验内容:为自定义的类编写恰当的运算符重载并测试通过。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验五 继承性与派生类
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握继承性与派生类
(六).实验内容:将自定义的类进行派生,研究其各种函数的调用。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验六 运行时的多态性和虚函数
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握运行时的多态性和虚函数的概念。
(六).实验内容:在自定义的类中增加虚函数测试其运行情况。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验七 泛型程序设计和模板
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握泛型程序设计和模板。
(六).实验内容:编写一个函数模板和类模板并调试通过。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验八 C++的I/O系统
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:掌握C++的I/O系统。
(六).实验内容:在自定义的类中增加流输入输出功能并编写一程序测试该类对文件流的操作。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验九 C++的发展和应用
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:了解C++的发展和应用。
(六).实验内容: 利用STL类库编写一个简单的程序调试通过。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室
实验十 Visual C++的开发环境
实验学时数: 2
(一).实验类型:验证型
(二).实验类别:专业基础实验
(三).每组人数:一
(四).实验要求:必修
(五).实验目的:熟悉Visual C++的开发环境。
(六).实验内容: 利用Visual C++的程序向导建立一个简单的基于MFC类库的Windows程序并调试通过。
(七).主要仪器设备及其配套数:计算机 每人一套
(八).所在实验室:计算机实验室