1、 《面向对象程序设计》 课程标准 韶关学院计算机科学系 2023年12月 《面向对象程序设计》课程标准 一、课程概述 《面向对象程序设计》是计算机科学与技术专业的重要专业课程。当前面向对象方法已逐渐取代面向过程方法成为程序设计领域的主流技术,这是程序设计发展历史的一个里程碑。本课程的教学目的是以C++语言为工具,向学生介绍面向对象程序设计语言与面向对象程序设计方法。通过课堂教学、 课外练习与上机实习相结合,使学生在程序设计方法、程序设计语言与程序设计工具三方面受到严格、系统的训练,培养学生更系统、 更严密地分析问题和解决问题的思维能力,
2、从而能纯熟地运用计算机解决实际问题,为后续专业课程打下扎实的基础。 通过本课程的教学,规定学生: (1) 牢固掌握C++语言基本数据类型、 复合数据类型、 基本控制结构、 函数以及面向对象程序设计中类与对象、 继承、 多态性等基本概念; (2) 掌握类属机制、 C++输入输出机制、程序断言、异常解决等高级机制; (3) 对面向对象程序构造方法、抽象数据类型、软件重用思想、其他程序设计风范, 其他面向对象程序设计语言有所了解。 本课程的先修课程为“计算机导论”、 “C语言”,后续课程重要是“数据结构与算法”、 “编译原理”与“软件工程”。 二、课程目的 1. 知道《面向对象程序设计
3、》这门学科的性质、 地位、 研究范围、 学科进展和未来方向等。对面向对象程序构造方法、 抽象数据类型、 软件重用思想、 其他程序设计风范、 其他面向对象程序设计语言有所了解。 2. 理解该门学科的重要概念、 基本原理和策略等。 3. 掌握C++语言基本数据类型、 复合数据类型、 基本控制结构、 函数以及面向对象程序设计中类与对象、 继承、 多态性等基本概念;掌握类属机制、 C++输入输出机制、 程序断言、 异常解决等高级机制。 4. 可以把所学的原理应用到具体的实践中去,如能运用C++语言编写程序解决一些具体的问题,培养学生发现、 分析和解决问题的能力等。 三、课程内容和教学规定 这
4、门学科的知识与技能规定分为知道、理解、掌握、学会四个层次。这四个层次的一般涵义表述如下: 知道———是指对这门学科和教学现象的认知。 理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提醒所涉及到的教学现象演变过程的特性、形成因素以及教学要素之间的互相关系。 掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。 学会———是指能模仿或在教师指导下独立地完毕某些教学知识和技能的操作任务,或能辨认操作中的一般差错。 教学内容和规定表中的“√”号表达教学知识和技能的教学规定层次。 本标准中打“*”号的内容可作为自学,教师可根据实际情况拟定规定或
5、不布置规定。 教学内容 教学规定 知道 理解 掌握 学会 1、 程序设计与C++语言的初步知识 1、1 程序、 程序设计与程序设计语言 1、2 程序设计语言的语法与语义 1、3 C++程序的基本结构与上机环节 1、4 C++程序的构造过程 2、 基本数据类型 2、1 数据类型的基本概念 2、2 单词的分类 2、3 基本数据类型 2、4 运算符与表达式 2、5 类型之间关系 3、 基本控制结构 3、1 程序的基本控制结构 3、2 选择结构 3、3 循环结构 4、 函数 4、1 函数的建立与使用 4、2 函数调用者与被调用者之间的通信 4、3
6、C++语言函数的特点 4、4 C++语言的模块机制 4、5 标记符的作用域 4、6 变量的生存期 4、7 递归程序设计 4、8 C++语言的库函数 5、 类与对象 5、1 类作为构造函数的基本单位 5、2 C++语言类的定义 5、3 对象的创建、 初始化与消失 5、4 关于类与对象的讨论 6、 复合数据类型 6、1 指针 6、2 引用 6、3 数组与字符串 6、4 字符串 6、5 动态内存分派与释放 6、6 也许产生的内存问题 6、7函数指针 6、8 结构与枚举类型 6、9 复杂数据结构的构造实例——用链表实现的堆栈 7、 继承
7、机制 7、1 继承的基本概念 7、2 C++对继承机制的支持 7、3 多重继承与反复继承 7、4构造良好的类继承层次 8、 多态性 8、1 多态性的基本概念 8、2 函数重载 8、3 拷贝构造函数 8、4 运算符重载 8、5 虚函数与动态绑定 8、6 多态数据结构 9、 类属机制 9、1 类属的基本概念 9、2 类属类 9、3 类属函数 10、 输入/输出流 10、1 C++的输入/输出机制 10、2 格式化输入/输出 10、3 流运算符的重载 10、4 文献流 11、 面向对象软件构造 11、1 软件质量 11、2 程序断言机制 11、3异
8、常解决机制 12、 面向对象程序设计总结 12、1程序设计风范 12、2面向对象程序设计语言 13、 复习 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
9、 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
10、 四、课程实行 1、 课时安排与教学建议。 一般情况下,面向对象程序设计每周安排4课时,共72课时,其中理论课54课时,实验课18课时。函授生视具体情况而定,一般为54课时, 其中理论课22课时,实验课10课时,自学22课时。具体课时安排如下: 章次 重要内容 课时建议 教与学的方法建议 按72课时计 按54课时计 一 程序设计与C++语言的初步知识 讲课2学时、 习题与实验讲解1学时 讲课1学时、 自学1学时 讲授为主 二 基本数据类型 讲课2学时、 习题与实验讲解1学时 讲课1学时、 实验与自学1学时 讲授为主并辅以实例讨论、 分析 三 基本控制
11、结构 讲课2学时、 习题与实验讲解2学时 讲课2学时、 实验与自学4学时 讲授为主并辅以实例讨论、 分析 四 函数 讲课6学时、 习题与实验讲解2学时 讲课2学时、 实验与自学4学时 讲授为主并辅以实例讨论、 分析、 多媒体演示 五 类与对象 讲课5学时、 习题与实验讲解2学时 讲课4学时、 实验与自学4学时 讲授为主并辅以实例讨论、 分析 六 复合数据类型 讲课8学时、 习题与实验讲解4学时 讲课4学时、 实验与自学6学时 讲授为主并辅以实例讨论、 分析 七 继承机制 讲课4学时,习题与实验讲解2学时 讲课3学时、 实验与自学4学时 讲授为主并辅
12、以实例讨论、 分析 八 多态性 讲课7学时,习题与实验讲解1学时 讲课2学时、 实验与自学3学时 讲授为主、 多媒体演示 九 类属机制 讲课4学时、 习题与实验讲解1学时 讲课2学时、 自学3学时 讲授为主并辅以实例讨论、 分析 十 输入/输出流 讲课5学时、 习题与实验讲解2学时 讲课1学时、 自学2学时 讲授为主并辅以多媒体演示、 实例分析 十一 面向对象软件构造 4学时 讲授与讨论 十二 面向对象程序设计总结 2学时 讲授与讨论 复习 3学时 2、 教学组织形式与教学方法规定。 (1)打破传统的教学模式,注意教
13、学方法的灵活性,建立多种教学媒体综合运用的运营机制,逐步建立适合学生个别化自主学习的支持服务体系和质量保证体系。 (2)充足发挥学生的积极性,并能激发学生的学习热情,使学生会学和积极学习。注意教学方法的灵活性,组织学生自我经验叙述、讨论、问题教学、阅读指导等 (3)培养学生发现问题、 分析问题、 解决问题的能力和探究意识。 五、教材选用 教材 [1] 李师贤、 李文军、 周晓聪,《面向对象程序设计基础》,高等教育出版社,1998 参考资料 [2] 周晓聪、 李师贤、 李文军,《面向对象程序设计-实践与提高》,中山大学计算机科学系讲义,1999 [3] 林锐,“高质量程序
14、设计指南——C++/C语言”,电子工业出版社,2023 [4] 李文军、 李师贤、 周晓聪,“C++作为计算机专业程序设计入门语言的实践与探讨”,《计算机科学》,Vol、26,No、4,1999,pp、80-83 [5] Herbert Schildt,《C++从入门到精通》,学苑出版社,1994 [6] Greg Perry,《C++程序设计教程》,清华大学出版社,1994 [7] 徐家福、 王志坚、 翟成祥,《对象式程序设计语言》,南京大学出版社,1992 [8] 张国峰,《C++程序设计实用教程》,清华大学出版社,1996 [9] 谭浩强,《C程序设计》,清华大学出版社,19
15、91 六、课程评价 1、 这门学科的评价依据是本课程标准规定的课程目的、 教学内容和规定。 2、 考试时间:120分钟。 3、 考试方式、 分制与分数解释 采用闭卷+笔试的期终考试、 实验考核和和平时成绩(重要为作业和实验报告)相结合方式评估学生成绩。以百分制评分,60分为及格,满分为100分。其中,平时成绩为10分,实验考核为20分,期终考试卷面为70分。 4、 题型:填空题,选择题,简答题,改错题,程序分析题,编程题等。 5、 样题与目的定位示例 A. 填空题 面向对象程序中,实体的状态由_____表达,其行为由______表达。 B. 选择题 下面哪个变量说明定
16、义了一个字符串数据? A) char string[20]; B) char string[]="A string!"; C) char string[8]="Astring!"; D) char *string; C. 简答题 什么是类的构造函数? D. 改错题: 指出下列程序的错误 class Line { int x = 0, y = 0; public: int setx(int x = 0) {Line::x = x; return 0;} int sety(int y = 0) {Line::y = y;
17、return 0;}
};
E. 程序分析题
给出下面程序的输出结果
#include






