《面向对象程序设计》课程教学大纲
![《面向对象程序设计》课程教学大纲](https://img.360docs.net/imge9/06zty3dj30lyu16243v1-91.webp)
![《面向对象程序设计》课程教学大纲](https://img.360docs.net/imge9/06zty3dj30lyu16243v1-22.webp)
《面向对象程序设计》课程教学大纲学时: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、本门课程实验项目设置情况
二、各实验项目教学要求
实验一 Visual C++的开发环境的认识
(一)实验目的:熟悉Visual C++的开发环境。
(二)实验内容:利用Visual C++的程序向导建立一个简单的基于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 M.Detitel,Paul Jmes Deitel著,邱仲潘等译,电子工业出版社,2002.
什么是面向对象程序设计
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。
大学美育教学内容
大学美育
《大学美育》 教学大纲 一、课程性质 授课对象为大学各专业本科生,课程属性为公共必修课。 二、课程教学目的 本课程为大学本科各专业必修课。 讲授美育和美学理论知识是高等学校对学生实施审美教育的基础环节。开设本课程的目的,在于使学生比较系统地了解马克思主义美学的基本原理,以及美育的意义、任务和途径,从而初步树立正确、进步的审美观,培养高尚、健康的审美理想和审美情趣,发展对美的事物的感受力、鉴赏力、创造力,提高在审美欣赏活动和审美创造活动中陶冶情操、完善人格、进行自我教育的自觉性。 三、教学基本内容及基本要求 绪论培养全面发展的一代新人 1、教育的根本任务在于育人,就是要培养做人的基本素质,使青年一代成为全面发展的人。 美育的根本问题是要培养完美的人格,它是人的基本素质教育,在全面发展教育中具有独特功能和重要地位。 2、了解教育的根本任务,美育在全面发展教育中的重要意义。 第一章人类美化自身的学科 1、高校美育的首要任务,是要教育学生逐步树立马克思主义的审美观。基本任务,是要培养正确的审美理想,健康的审美情趣,提高对美的感受力、鉴赏力、表现力和创造力。根本任务,是要塑造完美的人格:以美引善,提高学生的思想品德;以美启真,增强学生的智力;以美怡情,增进学生的身心健康,总之要促进大学生全面、和谐的发展。 高校美育的实施,①教学活动(设置美育和文学艺术教育方面的课程,开掘和发挥所有课程的美育因素);②课外活动(组织文艺社团,举办美育方面的讲座演出、展览、参观、比赛等等);③校园环境的美化和文明校园建设等。 2、掌握美育的任务,了解美育的实施。 第二章美是什么 1、美学史上关于美的本质问题的代表性观点:美是理念,美是主观观念,美是事物的属性,美是关系,美是生活。以上观点对于认识美的本质的意义及局限性。
面向对象程序设计实验指导书讲解
面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include