《面向对象程序设计》课程教学大纲.docx
《《面向对象程序设计》课程教学大纲.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程教学大纲.docx(17页珍藏版)》请在冰豆网上搜索。
![《面向对象程序设计》课程教学大纲.docx](https://file1.bdocx.com/fileroot1/2022-11/27/195cd7d6-377b-4044-82e1-3203ac6a8cef/195cd7d6-377b-4044-82e1-3203ac6a8cef1.gif)
《面向对象程序设计》课程教学大纲
《面向对象程序设计》课程教学大纲
学时:
72学分:
4
理论学时:
52实验学时:
20
面向专业:
计算机科学与技术、专升本课程代码:
2700410
先开课程:
计算机导论,C语言程序设计课程性质:
必修
执笔人:
熊凯审定人:
陈龙猛、于仁师
第一部分:
理论教学部分
一、说明
1、课程的性质、地位和任务
《面向对象程序设计》(C++)是计算机科学与技术专业的一门重要的专业基础课,在由基础训练到专业课教学阶段过渡过程中起到承上启下的作用。
它不仅为今后学习专业课打下坚实的理论基础和技术基础,而且为软件开发、程序设计提供必要的理论、方法和工具。
通过对C++语言的学习,使学生系统了解程序设计语言的概况和基本理论,了解软件开发的全过程;理解面向对象方法的概念;系统掌握c++语言的语法结构,基本掌握结构化程序设计方法和面向对象程序设计的基本方法和编程技术;通过大量的实验和课外实践,逐步培养学生阅读程序、分析程序和独立编写程序的能力。
2、课程教学和教改基本要求
本课程是一门理论联系实际,实践性较强的课程,课内、外习题量相当大,上机时数较多(开设验证性实验2~3个,综合性、设计性实验4~5个),除了课堂教学环节外,学生必须在课外通过大量地阅读程序、编写程序,方能熟练掌握主要的语法和编程方法,并加深对各种语法成分其语用环境的认识。
二、教学内容与课时分配
第一章绪论(2学时)
教学内容:
1、面向对象程序设计的基本思想及基本概念;
2、面向对象语言的分类和C++中支持面向对象的特点;
3、面向对象的软件开发环境;
4、C++开发工具的主要功能和使用方法;
重点:
1、面向对象程序设计的基本思想及基本概念;
2、面向对象语言的分类和C++中支持面向对象的特点;
难点:
1、面向对象语言的分类和C++中支持面向对象的特点;
建议教学方法:
课堂讲授
思考题:
1、面向对象程序设计的基本思想是什么
2、C++语言支持哪些面向对象特点
第二章面向对象程序设计方法导论(2学时)
教学内容:
1、类、对象、实例的概念;
2、封装、继承、多态等概念;
3、面向对象模型的基本情况;
4、面向对象软件分析、设计、实现的基本方向;
5、程序设计风格并在实验中运用;
重点:
1、类、对象、实例的概念;
2、封装、继承、多态等概念;
难点:
1、封装、继承、多态等概念;
建议教学方法:
课堂讲授
思考题:
1、什么是封装什么是继承什么是多态性
第三章C++对C语言的常规性能扩充(4学时)
教学内容:
1、用cin,cout,cerr,<<,>>进行基本输入输出;
2、C++中变量定义的方法及其与C语言中的区别;
3、作用域限定符的用法;
4、C、C++语言中变量的作用域、生存期的概念;
5、枚举类型的用法;
6、枚举变量的存储及其输入输出;
7、C++中struct与C语言中的不同;
8、const的用处和用法;
9、函数形式的类型转换与C语言中类型转换的不同;
10、引用的语法形式;
11、引用参数的用法;
12、函数参数的传址和传值方式及其区别;
13、引用返回值与左值概念;
14、函数原型的写法、作用;
15、new和delete的用处和写法;
16、动态内存分配与指针;
重点:
1、用cin,cout,cerr,<<,>>进行基本输入输出;
2、作用域限定符的用法;
3、函数定义;
4、new和delete的用处和写法;
5、动态内存分配与指针;
难点:
1、函数定义;
2、new和delete的用处和写法;
3、动态内存分配与指针;
建议教学方法:
课堂讲授
思考题:
1、new和delete使用时应注意哪些原则
2、什么是动态分配内存在C++中如何实现
第四章类和对象(8学时)
教学内容:
1、类定义的方法和存取级别;
2、结构作为类的定义的方法与class的区别;
3、类的成员变量和成员函数的定义和使用,以及对象的定义;
4、友元函数和友元类;
5、构造函数和析构函数;
6、构造函数和析构函数的调用及其次序;
7、拷贝构造函数的调用;
8、静态类成员变量和成员函数的定义和使用方法;
9、内联成员函数的定义和使用方法;
10、嵌套类与局部类的定义;
11、在函数中对象传递的机制;
重点:
1、类定义的方法和存取级别作用域限定符的用法;
2、构造函数和析构函数;
3、构造函数和析构函数的调用及其次序;
4、嵌套类与局部类的定义;
5、在函数中对象传递的机制;
难点:
1、构造函数和析构函数的调用及其次序;
2、拷贝构造函数的调用;
建议教学方法:
课堂讲授
思考题:
1、构造函数和析构函数的作用是什么
2、类成员有哪些存取级别特点如何
3、构造函数和析构函数的调用次序是怎样的规则
第五章多态性和重载(6学时)
教学内容:
1、成员函数重载;
2、运算符重载的概念;
3、使用friend重载运算符的方法;
4、成员形式和友元形式下一元和二元运算符重载的差别;
5、数组重载运算符new和delete的定义;
6、定义重载某些特殊的运算符的方法,包括重载[]、重载()、重载->等;
重点:
1、成员函数重载;
2、运算符重载的概念;
3、定义重载某些特殊的运算符的方法,包括重载[]、重载()、重载->等;
难点:
1、成员函数重载;
2、运算符重载;
建议教学方法:
课堂讲授
思考题:
1、什么是重载
2、函数重载有哪些原则
3、如何实现数组重载运算符new和delete
第六章继承性与派生类(6学时)
教学内容:
1、类层次的概念及如何将概念和实现转变为类的层次的方法;
2、单继承的定义;
3、不同派生方式下成员存取控制的变化;
4、向基类构造函数传递参数的方法;
5、多继承的定义;
6、虚基类和二义性问题;
重点:
1、类层次的概念及如何将概念和实现转变为类的层次的方法;
2、单继承的定义;
3、不同派生方式下成员存取控制的变化;
4、向基类构造函数传递参数的方法;
难点:
1、不同派生方式下成员存取控制的变化;
2、向基类构造函数传递参数的方法;
建议教学方法:
课堂讲授
思考题:
1、C++中继承的语法是怎样规定的
2、不同派生方式下成员存取控制有何变化
3、如何向基类构造函数传递参数
第七章运行时的多态性和虚函数(6学时)
教学内容:
1、虚函数和纯虚函数的概念;
2、虚函数的用法;
3、虚析构函数的意义;
4、抽象类的概念;
5、早期和后期联编的概念;
重点:
1、虚函数和纯虚函数的概念;
2、虚函数的用法;
3、抽象类的概念;
4、早期和后期联编的概念;
难点:
1、虚函数的用法;
2、抽象类的概念;
3、早期和后期联编的概念;
建议教学方法:
课堂讲授
思考题:
1、什么是虚函数如何定义虚函数
2、什么是抽象类
3、在什么场合中使用抽象类
4、什么是早期联编什么是后期联编
第八章泛型程序设计和模板(6学时)
教学内容:
1、泛型程序设计的意义;
2、模板函数的用法;
3、类模板的定义方法;
4、多参数的模板设计;
重点:
1、泛型程序设计的意义;
2、模板函数的用法;
3、类模板的定义方法;
难点:
1、模板函数的用法;
2、类模板的定义方法;
建议教学方法:
课堂讲授
思考题:
1、什么是模板
2、如何定义函数模板
3、如何定义类模板
第九章C++的I/O系统(8学时)
教学内容:
1、C++的流,包括C++的预定义流;
2、格式化I/O的定义格式和定义方法;
3、创建重载运算符<<和>>的方法;
4、创建无参数操纵符和带参数操纵符的方法;
5、一般I/O流和文件流的关系;
6、文件与文件流的关系;
7、文件系统的概念,包括文件指针和关于文件的操作;
8、文件类的定义和相关操作的定义、使用方法;
9、利用常用函数进行文件的打开、关闭、读写、定位等操作;
重点:
1、C++的流;
2、格式化I/O的定义格式和定义方法;
3、创建重载运算符<<和>>的方法;
4、文件与文件流的关系;
5、文件系统的概念;
6、文件类的定义和相关操作的定义、使用方法;
难点:
1、创建重载运算符<<和>>的方法;
2、文件系统的概念;
3、文件类的定义和相关操作的定义、使用方法;
建议教学方法:
课堂讲授
思考题:
1、什么是流
2、重载运算符<<和>>应该注意哪些原则
3、对文件的读写有哪些方式
4、如何控制二进制文件
第十章面向对象的软件构造及程序设计风范(4学时)
教学内容
1、软件质量
2、程序断言机制
3、异常处理机制
4、面向对象的软件构造
重点:
1、异常处理机制;
2、面向对象的软件构造;
难点:
1、异常处理机制;
建议教学方法:
课堂讲授
思考题:
1、什么是异常
2、C++中如何处理异常
3、面向对象的软件构造有哪些原则
三、考核方式和要求
考核方式:
闭卷
考核要求:
考核内容应包括基本概念题、程序代码分析题(形式为程序填空和程序阅读等)和程序设计题等。
成绩核算:
平时作业占总成绩的15%,实验成绩占总成绩的15%,理论考试根据教学大纲命题,占总成绩的70%。
第二部分:
实验教学部分
一、说明
1、本门课程实验的性质任务、目的与要求
本课程是一门理论联系实际,实践性较强的课程,上机时数较多(开设验证性实验2~3个,综合、设计性实验4~5个)。
学生通过本课程的实验锻炼,应达到具有基本C++程序设计能力和基本调试能力,并具有编写面相对象程序设计的方法、思路和设计调试能力。
2、本门课程实验项目设置情况
序号
实验名称
学时
必开
选开
实验类型
验
证
基本
操作
综
合
设
计
应
用
创
新
内容提要
1
VisualC++的开发环境认识
2
必
√
用VisualC++的程序向导建立一个简单的Windows程序并调试通过。
2
C++中的对C语言的常规扩充
(1)
2
必
√
编写一个完整的C++程序,并调试通过。
3
C++中的对C语言的常规扩充
(2)
2
必
√
将原来C语言编写的程序改写成一个C++程序,并调试通过。
4
类与对象
2
必
√
设计一个类并写一测试程序建立该类的对象并调试。
5
多态性和重载
2
必
√
为自定义的类编写恰当的运算符重载并测试通过。
6
继承性与派生类
2
必
√
将自定义的类进行派生,研究其各种函数的调用。
7
运行时的多态性和虚函数
2
必
√
在自定义的类中增加虚函数测试其运行情况。
8
泛型程序设计和模板
2
必
√
编写一个函数模板和类模板并调试通过。
9
C++的I/O系统
2
必
√
在自定义的类中增加流输入输出功能并编写一程序测试该类对文件流的操作。
10
C++的发展和应用
2
必
√
利用STL类库编写一个简单的程序调试通过。
二、各实验项目教学要求
实验一VisualC++的开发环境的认识
(一)实验目的:
熟悉VisualC++的开发环境。
(二)实验内容:
利用VisualC++的程序向导建立一个简单的基于MFC类库的Windows程序并调试通过。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验二C++中的对C语言的常规扩充
(1)
(一)实验目的:
掌握C++语言中扩充部分。
(二)实验内容:
编写一个完整的C++程序,并调试通过。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验三C++中的对C语言的常规扩充
(2)
(一)实验目的:
掌握C++语言中扩充部分。
(二)实验内容:
将原来C语言编写的程序改写成一个C++程序,并调试通过。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验四类与对象
(一)实验目的:
掌握类的定义。
(二)实验内容:
定义一个类并写一测试程序建立该类的对象并调试。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验五多态性和重载
(一)实验目的:
掌握成员函数和运算符的重载。
(二)实验内容:
为自定义的类编写恰当的运算符重载并测试通过。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验六继承性与派生类
(一)实验目的:
掌握继承性与派生类
(二)实验内容:
将自定义的类进行派生,研究其各种函数的调用。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验七运行时的多态性和虚函数
(一)实验目的:
掌握运行时的多态性和虚函数的概念。
(二)实验内容:
在自定义的类中增加虚函数测试其运行情况。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验八泛型程序设计和模板
(一)实验目的:
掌握泛型程序设计和模板。
(二)实验内容:
编写一个函数模板和类模板并调试通过。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验九C++的I/O系统
(一)实验目的:
掌握C++的I/O系统。
(二)实验内容:
在自定义的类中增加流输入输出功能并编写一程序测试该类对件流的操作。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
实验十C++的发展和应用
(一)实验目的:
了解C++的发展和应用。
(二)实验内容:
利用STL类库编写一个简单的程序调试通过。
(三)主要仪器设备及其配套数:
计算机每人一套
(四)所在实验室:
计算机实验室
三、考核方式和成绩评定要求
本课程实验的考核方式以每次上机实验的完成情况、实验报告的质量为主结合平日成绩进行综合评定
第三部分:
建议使用的教材和参考书目
[1]面向对象程序设计基础,李师贤等编著,高等教育出版社,1998.
[2]面向对象程序设计,刘正林主编,华中科技大学出版社,2001.
[3]C++大学教程,Harvey,PaulJmesDeitel著,邱仲潘等译,电子工业出版社,2002.