《面向对象程序设计》教学大纲
课程性质 课程名称 适用专业 总学时 专业必修课 面向对象程序设计(C++) 计算机科学与技术/软件工程 理论 64 实践 12 52 学分数 4 课程编号 开课学期 *04073 第2学期 一、课程性质与目标
面向对象程序设计以标准C++为编程语言进行面向对象编程思维的培养,该课程属于专业必修课。通过本课程的学习,学生应实现如下目标:
1.知识目标:面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化的程序数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性。本课程主要介绍面向对象程序设计的方法和C++语言的基本特点。以C++语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C++的面向过程和面向对象的功能,重点掌握面向对象程序设计的基本知识和基本技能。
2.能力目标:具备用标准C++语言进行一般程序设计的能力,能阅读基本的标准C++代码,能初步具备面向对象程序设计的思想,初步学会使用面向对象中的封装、继承、聚合/组合、多态、模板等机制,学会使用常用的STL容器和算法。
3.素质目标:使学生掌握基础的C++语法,感受面向对象程序设计的魅力。除了注重程序的正确性和算法效率之外,在思想上也应重视程序的结构合理性、封装性、可读性、可复用性和可维护性。培养学生学习程序设计的细心和耐心,培养学生坚韧不拔,攀登技术高峰的优秀品质。同时让部分优秀的学生热爱上湖南省大学生程序设计竞赛,体会ACM程序设计竞赛的魅力。
二、课程教学基本要求
课程可进行适量预习; 课中应该认真听课,参与教学过程中的互动、回答问题及联系实际编程; 课后积极做好复习、认真完成作业及课程设计相关实践教学的环节。对部分优秀学生,引入一定量的知名程序设计在线评测系统(如POJ等)中的简单题目,进行面向对象编程,并在线提交验证正确性与时间、空间效率,同时注重代码的封装性、可读性、可复用性。
三、教学内容与学时分配
课程教学内容与学时分配 序号 1 教学模块 课程导论 主要教学内容 面向过程程序设计的特点和不足 面向对象程序设计的特点和优势 学时 2课时 1
C++语言的特点、优势和对面向对象的支持 面向对象软件开发过程 信息在计算机中的表示与存储 课程的用途、学习要求与建议,考核方式说明 C++程序实例及C++程序组成 变量和常量 C++的数据2 类型、运算数据类型、运算符和表达式 IO流、提取运算符与插入运算符简介 4课时 符、表达式 格式控制简介 自定义数据类型 C++中数据类型的转换 3 C++的控制结构 选择结构 循环结构 各种控制结构的嵌套 函数的定义、函数的调用及参数传递 函数的递归调用 4 函数 内联函数 带默认值形参的函数 函数的重载 C++常用系统函数 类和对象的概念和定义 对类成员的访问权限 成员变量和成员函数 构造函数、默认构造函数、复制构造函数、析构函数 成员函数与构造函数的重载 5 类和对象 聚合与组合 UML类图(选讲) 结构体 共用体(选讲) 用构造函数定义类型转换 对象作为函数参数和返回值的情况 综合实例(选讲) 标识符的作用域、生存期和可见性 对象的静态生存期和动态生存期 静态数据成员和静态成员函数 6 数据封装与对象生灭 友元函数和友元类 常对象、常成员函数和常引用 多文件结构、外部变量与外部函数 编译预处理指令 综合实例(选讲) 2
2课时 4课时 6课时 4课时 数组的声明、初始化、使用及存储特点 数组作为函数参数的情况 对象数组 内存空间的访问形式 指针变量的声明与使用、&运算符和*运算符 指针的赋值和其他运算 用指针处理数组元素 数组、指针与字符串 指针数组 指针作为函数参数和返回值的情况 指向函数的指针 对象指针 动态内存分配和回收 深复制与浅复制 字符串 常用字符串处理函数 string类及其使用 综合实例(选讲) 类的继承与派生 公有继承、私有继承、保护继承的访问控制 派生类的构造函数和析构函数 8 继承与派生 虚基类与作用域分类符 虚基类及其派生类的构造函数 派生类对象的内存布局 基类向派生类的转换及安全问题 综合实例(选讲) 多态的类型与实现 运算符重载的概念和性质 运算符重载为成员函数 运算符重载为友元函数 9 多态 虚函数与重写机制 虚析构函数的特点 纯虚函数和抽象类 运行时动态识别RTTI 虚函数动态绑定的实现原理(选讲) 综合实例(选讲) 10 泛型编程与泛型程序设计的概念 4课时 6课时 4课时 4课时 7 3