《面向对象程序设计》 课程教学大纲 一、 课程基本信息 课程类型 总学时为学时数回理论课(含上机、实验学时) 总学时为周数 口实习口课程设计口毕业设计 课程编码 7192321 总学时32学时学分2 课程名称 面向对象程序设计 课程英文名称Object Oriented Programming Design 电子信息工程 适用专业 电子信息工程(理工科实验班),电子信息工程(国际班) 先修课程 C语言 开课部门信息学院电子工程系(电子信息) 二、课程性质与目标 面向对象程序设计是电子信息工程专业的专业选修课程。通过本课程教学内 容的学习和大量针对性的实践环节,帮助学生建立面向对象的编程理念,对学生 今后从事软件开发、科研工作及相关工作提供了必要的专业技术知识。 教学主要内容涵盖面向对象的编程思想,包括类、封装、继承与派生以及多 态性等面向对象基本概念和方法。 《面向对象程序设计》主要介绍C+语言的基本概念、语法规则和面向对象 的程序设计方法及思想,以C+语言中的面向对象机制为主。学习者在学习过 程中可以通过大量的程序实例和相关练习,逐步掌握C+的面向对象的功能, 从而学握面向对象程序设计的基本知识和基本技能,学会利用C+语言进行一般 面向对象程序的设计,解决一般应用问题,并为后续专业课程的学习奠定程序设 计基础。 学生通过本课程的学习,应当建立面向对象基本概念和方法,并可以利用面 向对象的编程语言(C+)设计程序,理解C+语言的基本功能。教学中不但使 学生会用C+编写程序,更重要的是培养学生运用面向对象思想解决实际问题的 能 课程目标1:通过课程学习,使学生了解C+对C在面向过程程序设计方 面的改进与增强,为以后的程序学习打下基础。 课程目标2:通过课程学习,了解C+中的类和对象、运算符和重载、继
《面向对象程序设计》 课程教学大纲 一、 课程基本信息 课程类型 总学时为学时数 □√ 理论课(含上机、实验学时) 总学时为周数 □实习 □课程设计 □毕业设计 课程编码 7192321 总学时 32 学时 学分 2 课程名称 面向对象程序设计 课程英文名称 Object Oriented Programming Design 适用专业 电子信息工程 电子信息工程(理工科实验班),电子信息工程(国际班) 先修课程 C 语言 开课部门 信息学院电子工程系(电子信息) 二、 课程性质与目标 面向对象程序设计是电子信息工程专业的专业选修课程。通过本课程教学内 容的学习和大量针对性的实践环节,帮助学生建立面向对象的编程理念,对学生 今后从事软件开发、科研工作及相关工作提供了必要的专业技术知识。 教学主要内容涵盖面向对象的编程思想,包括类、封装、继承与派生以及多 态性等面向对象基本概念和方法。 《面向对象程序设计》主要介绍 C++语言的基本概念、语法规则和面向对象 的程序设计方法及思想,以 C++ 语言中的面向对象机制为主。学习者在学习过 程中可以通过大量的程序实例和相关练习,逐步掌握 C++ 的面向对象的功能, 从而掌握面向对象程序设计的基本知识和基本技能,学会利用 C++语言进行一般 面向对象程序的设计,解决一般应用问题,并为后续专业课程的学习奠定程序设 计基础。 学生通过本课程的学习,应当建立面向对象基本概念和方法,并可以利用面 向对象的编程语言(C++)设计程序,理解 C++语言的基本功能。教学中不但使 学生会用 C++编写程序,更重要的是培养学生运用面向对象思想解决实际问题的 能力。 课程目标 1:通过课程学习,使学生了解 C++对 C 在面向过程程序设计方 面的改进与增强,为以后的程序学习打下基础。 课程目标 2:通过课程学习,了解 C++中的类和对象、运算符和重载、继
承与派生,以及多态性与虚函数等相关概念。 课程目标3:面向对象程序设计课程是一门实践性很强的课程,必须通过上 机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证 学生有充分的上机条件,达到学必用、学即用。 课程目标4:为了配合课程的理论教学,除了保证学生有充分的上机条件, 应重点加强课程实验教学环境和内容的建设,同时可以布置规模较大课外编程 练习,让学生在自由上机的开放环境中完成。从而达到理论联系实际的目的, 使得课程教学更趋完备。 三、课程教学基本内容与要求 第一单元C+知识初步 (一)教学基本要求 掌握:C+数据类型、运算符、表达式和输入输出语句:熟练掌握C+各 种语句及程序流程控制结构。 熟悉:C+程序构架及词法符号约定。 了解:了解C+的编程风格及C+对C语言的扩充。 (二)教学基本内容 1.1从C到C+H 1.2最简单的C+程序 1.3C+对C语言的扩充 1.4C+程序的编写和实现 1.5关于C+上机实践 第二单元类和对象 (一)教学基本要求 掌握:面向对象程序设计中的对象、类、消息等基本概念,类的构造和创建。 熟悉:面向对象程序设计的基本过程、常用语言以及各种语言的联系与区别。 了解:面向对象程序设计的特点 (二)教学基本内容 2.1面向对象程序设计方法概述 2.2类的声明和对象的定义 2.3类的成员函数 2.4对象成员的引用 2.5类和对象的简单应用举例
承与派生,以及多态性与虚函数等相关概念。 课程目标 3:面向对象程序设计课程是一门实践性很强的课程,必须通过上 机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证 学生有充分的上机条件,达到学必用、学即用。 课程目标 4:为了配合课程的理论教学,除了保证学生有充分的上机条件, 应重点加强课程实验教学环境和内容的建设,同时可以布置规模较大课外编程 练习,让学生在自由上机的开放环境中完成。从而达到理论联系实际的目的, 使得课程教学更趋完备。 三、 课程教学基本内容与要求 第一单元 C++知识初步 (一)教学基本要求 掌握:C++数据类型、运算符、表达式和输入/输出语句;熟练掌握 C++各 种语句及程序流程控制结构。 熟悉:C++程序构架及词法符号约定。 了解:了解 C++的编程风格及 C++对 C 语言的扩充。 (二)教学基本内容 1.1 从 C 到 C++ 1.2 最简单的 C++程序 1.3 C++对 C 语言的扩充 1.4 C++程序的编写和实现 1.5 关于 C++上机实践 第二单元 类和对象 (一)教学基本要求 掌握:面向对象程序设计中的对象、类、消息等基本概念,类的构造和创建。 熟悉:面向对象程序设计的基本过程、常用语言以及各种语言的联系与区别。 了解:面向对象程序设计的特点。 (二)教学基本内容 2.1 面向对象程序设计方法概述 2.2 类的声明和对象的定义 2.3 类的成员函数 2.4 对象成员的引用 2.5 类和对象的简单应用举例
2.6类的封装性和信息隐藏 第三单元类与对象的进一步讨论 (一)教学基本要求 掌握:类的构造函数和析构函数的原理和使用方法。 熟悉:类的静态成员和动态存储分配的原理,友元函数、类对象指针和对象 数组的工作原理。 了解:类的模板含义及使用方式。 (二)教学基本内容 3.1构造函数 3.2析构函数 3.3调用构造函数和析构函数的顺序 34对象数组 3.5对象指针 3.6共用数据的保护 3.7对象的动态建立和释放 3.8对象的赋值和复制 3.9静态成员 3.10友元 3.11类模板 第四单元运算符重载 (一)教学基本要求 掌握:运算符重载的规则和方法。 熟悉:单目、双目运算符重载含义。 了解:运算符重载的含义。 (二)教学基本内容 4.1什么是运算符重载 4.2运算符重载的方法 4.3重载运算符的规则 4.4运算符重载函数作为类成员函数和友元函数 4.5重载双目运算符 4.6重载单目运算符 4.7重载流插入运算符和流提取运算符 4.8不同类型数据之间的转换
2.6 类的封装性和信息隐藏 第三单元 类与对象的进一步讨论 (一)教学基本要求 掌握:类的构造函数和析构函数的原理和使用方法。 熟悉:类的静态成员和动态存储分配的原理,友元函数、类对象指针和对象 数组的工作原理。 了解:类的模板含义及使用方式。 (二)教学基本内容 3.1 构造函数 3.2 析构函数 3.3 调用构造函数和析构函数的顺序 3.4 对象数组 3.5 对象指针 3.6 共用数据的保护 3.7 对象的动态建立和释放 3.8 对象的赋值和复制 3.9 静态成员 3.10 友元 3.11 类模板 第四单元 运算符重载 (一)教学基本要求 掌握:运算符重载的规则和方法。 熟悉:单目、双目运算符重载含义。 了解:运算符重载的含义。 (二)教学基本内容 4.1 什么是运算符重载 4.2 运算符重载的方法 4.3 重载运算符的规则 4.4 运算符重载函数作为类成员函数和友元函数 4.5 重载双目运算符 4.6 重载单目运算符 4.7 重载流插入运算符和流提取运算符 4.8 不同类型数据之间的转换
第五单元继承和派生 (一)教学基本要求 掌握:类层次、数据抽象和模块化:基类和派生类:多重继承的设计原理和 方法。 理解:多重构造函数与析构函数中使用方法,虚基类的原理和使用方法。 了解:多重继承设计中二义性产生的原因和避免二义性的方法。 (二)教学基本内容 5.1继承与派生的概念 5.2派生类的声明方式 5.3派生类的构成 5.4派生类成员的访问属性 5.5派生类的构造函数和析构函数 5.6多重继承 5.7基类与派生类的转换 5.8继承与组合 5.9继承在软件开发中的重要意义 第六单元多态性与虚函数 (一)教学基本要求 掌握:重载与程序的多态性设计的方法。 熟悉:纯虚函数的使用方法。 了解:了解虚函数方法与多态机制。 (二)教学基本内容 6.1多态性的概念 6.2一个典型的例子 6.3虚函数 6.4纯虚函数与抽象类 实验一C+对C的扩充 1.实验内容 (1)集成开发环境的使用: (2)程序调试工具的使用和常用的调试方法: (3)编写简单的控制程序,并对其进行调试和功能测试。 基本功能:
第五单元 继承和派生 (一)教学基本要求 掌握:类层次、数据抽象和模块化;基类和派生类;多重继承的设计原理和 方法。 理解:多重构造函数与析构函数中使用方法,虚基类的原理和使用方法。 了解:多重继承设计中二义性产生的原因和避免二义性的方法。 (二)教学基本内容 5.1 继承与派生的概念 5.2 派生类的声明方式 5.3 派生类的构成 5.4 派生类成员的访问属性 5.5 派生类的构造函数和析构函数 5.6 多重继承 5.7 基类与派生类的转换 5.8 继承与组合 5.9 继承在软件开发中的重要意义 第六单元 多态性与虚函数 (一)教学基本要求 掌握:重载与程序的多态性设计的方法。 熟悉:纯虚函数的使用方法。 了解:了解虚函数方法与多态机制。 (二)教学基本内容 6.1 多态性的概念 6.2 一个典型的例子 6.3 虚函数 6.4 纯虚函数与抽象类 实验一 C++对 C 的扩充 1. 实验内容 (1) 集成开发环境的使用; (2) 程序调试工具的使用和常用的调试方法; (3) 编写简单的控制程序,并对其进行调试和功能测试。 基本功能:
使用带默认参数的函数,完成对多个用户数据求极值: 使用用的变量类型,完成对数组的排序: 使用函数重载对不同变量类型的同类处理,例如对整数、向量求加法运算, 2.基本要求 ()学握集成开发环境的使用方法: (2)学握程序编写、调试工具的使用,以及常用的调试方法: (③)掌握默认参数函数的语法和使用方法: 4)掌握变量引用的语法和使用方法: (⑤)掌握函数重载的语法和使用方法。 实验二类与对象 1.实验内容 ()掌握声明类的方法,类和类成员的概念及定义对象的方法: (2)初步掌握用类与对象编制基于对象的程序: (3)学习检查、调试基于对象的程序和功能测试。 基本功能: 基于对象设计思想,完成(1)对立体几何的数据用户录入及面积、体积求 解输出。(2)定时器的设置、计时、输出显示(3)商品销售情况统计。 2.基本要求 ()掌握数据成员、函数成员的权限控制方法: (②)掌握构造函数、析构函数、对象数组、对象指针的使用方法。 实验三运算符重载 1.实验内容 (1)掌握运算符重载的概念和使用方法: (2)掌握几种运算符重载的方法: (3)理解转换构造函数的使用方法。 基本功能: 完成(1)声明一个复数类,重载运算符+.*1,使之用于复数的加减乘除 运算。(2)两个矩阵a,b,都是2行3列,重载+运算,求两矩阵之和。 2.基本要求 (①)掌握函数重载的方法: (2)掌握运算符的使用语法: (3)掌握运算符的参数的设置
使用带默认参数的函数,完成对多个用户数据求极值; 使用引用的变量类型,完成对数组的排序; 使用函数重载对不同变量类型的同类处理,例如对整数、向量求加法运算。 2. 基本要求 (1) 掌握集成开发环境的使用方法; (2) 掌握程序编写、调试工具的使用,以及常用的调试方法; (3) 掌握默认参数函数的语法和使用方法; (4) 掌握变量引用的语法和使用方法; (5) 掌握函数重载的语法和使用方法。 实验二 类与对象 1. 实验内容 (1) 掌握声明类的方法,类和类成员的概念及定义对象的方法; (2) 初步掌握用类与对象编制基于对象的程序; (3) 学习检查、调试基于对象的程序和功能测试。 基本功能: 基于对象设计思想,完成(1)对立体几何的数据用户录入及面积、体积求 解输出。(2)定时器的设置、计时、输出显示(3)商品销售情况统计。 2. 基本要求 (1) 掌握数据成员、函数成员的权限控制方法; (2) 掌握构造函数、析构函数、对象数组、对象指针的使用方法。 实验三 运算符重载 1. 实验内容 (1) 掌握运算符重载的概念和使用方法; (2) 掌握几种运算符重载的方法; (3) 理解转换构造函数的使用方法。 基本功能: 完成(1)声明一个复数类,重载运算符+ - * /,使之用于复数的加减乘除 运算。(2)两个矩阵 a,b,都是 2 行 3 列,重载+运算,求两矩阵之和。 2. 基本要求 (1) 掌握函数重载的方法; (2) 掌握运算符的使用语法; (3) 掌握运算符的参数的设置
实验四派生与继承 1.实验内容 ()了解继承在面向对象程序设计中的重要作用: (2)掌握继承与派生的概念: (3)掌握通过继承派生出新类的方法; (4)了解虚基类的作用。 基本功能 完成(1)声明一个动物的类描述,派生出对狗的类描述。(2)声明一个 点的类描述,派生出对圆的类描述。(3)声明一个公民的类描述,派生出对教 师的类描述。 2.基本要求 (1)掌握继承的语法: (2)掌握继承的权限控制: (3)了解虚基类的作用。 实验五多态性与虚函数 1.实验内容 (1)了解多态性的概念: (②)掌握虚函数的作用和使用方法 (3)了解纯虚函数的概念和作用。 基本功能: 完成声明基础网卡类描述,派生出对特定产家的网卡类描述 2.基本要求 (1)掌握多态性的概念: (2)掌握虚函数的作用和使用方法: (3)了解纯虚函数的概念和作用。 四、课程学时分配 总学时为32学时,其中讲授16学时,上机16学时。 课程各章节学时分配如下:
实验四 派生与继承 1. 实验内容 (1) 了解继承在面向对象程序设计中的重要作用; (2) 掌握继承与派生的概念; (3) 掌握通过继承派生出新类的方法; (4)了解虚基类的作用。 基本功能: 完成(1)声明一个动物的类描述,派生出对狗的类描述。(2)声明一个 点的类描述,派生出对圆的类描述。(3)声明一个公民的类描述,派生出对教 师的类描述。 2. 基本要求 (1) 掌握继承的语法; (2) 掌握继承的权限控制; (3) 了解虚基类的作用。 实验五 多态性与虚函数 1. 实验内容 (1) 了解多态性的概念; (2) 掌握虚函数的作用和使用方法; (3) 了解纯虚函数的概念和作用。 基本功能: 完成声明基础网卡类描述,派生出对特定产家的网卡类描述。 2. 基本要求 (1) 掌握多态性的概念; (2) 掌握虚函数的作用和使用方法; (3) 了解纯虚函数的概念和作用。 四、 课程学时分配 总学时为 32 学时,其中讲授 16 学时,上机 16 学时。 课程各章节学时分配如下:
教学内容 讲授实验 上机 课内学时小计 课外学时 1C+的初步知识 4 4 8 2类与对象 4 3类与对象的进一步讨论 4 运算符重载 5继承与派生 2 2 6多态性与虚函数 A 合 计 1616 32 五、实践性教学内容的安排与要求 《面向对象程序设计》课程共安排16学时实验,属课内实验。主要包括以 下5个方面的练习:①C+基础知识:②类;③重载:④继承:⑤多态性。通 过实验,使学生理解掌握C+的基本编程方法和程序结构,特别是类、继承、多 态等概念,封装、抽象等机制。 1、实验1C+对C的扩充(验证性、设计性) 4学时 2、实验2类与对象(验证性、设计性) 4学时 3、实验3运算符重载(验证性、设计性) 4学时 4、实验4派生与继承(验证性、设计性) 2学时 5、实验5多态性与虚函数(验证性、设计性 2学时 六、教学设计与教学组织 采用多媒体结合板书的教学形式,并结合仿真调试环境及动态调试演示,辅 助以课下实践及上机编程实践环节。最终目标:掌握C+程序设计的基础知识、 基本概念:掌握程序设计的思想和编程技巧。 七、教材与参考资料 1.教材 《C+面向对象程序设计》清华大学出版社谭浩强。 2.参考资料 《C+面向对象程序设计题解与上机指导》清华大学出版社谭浩强。 八、课程考核方式与成绩评定标准 考查方法:平时考核与期末考试相结合,采用百分制
单 元 教学内容 讲授 实验 上机 课内学时小计 课外学时 1 C++的初步知识 4 4 8 2 类与对象 4 4 3 类与对象的进一步讨论 2 4 6 4 运算符重载 2 4 6 5 继承与派生 2 2 4 6 多态性与虚函数 2 2 4 合 计 16 16 32 五、 实践性教学内容的安排与要求 《面向对象程序设计》课程共安排 16 学时实验,属课内实验。主要包括以 下 5 个方面的练习:① C++基础知识;② 类;③重载;④继承;⑤多态性。通 过实验,使学生理解掌握 C++的基本编程方法和程序结构,特别是类、继承、多 态等概念,封装、抽象等机制。 1、实验 1 C++对 C 的扩充(验证性、设计性) 4 学时 2、实验 2 类与对象(验证性、设计性) 4 学时 3、实验 3 运算符重载(验证性、设计性) 4 学时 4、实验 4 派生与继承(验证性、设计性) 2 学时 5、实验 5 多态性与虚函数(验证性、设计性) 2 学时 六、 教学设计与教学组织 采用多媒体结合板书的教学形式,并结合仿真调试环境及动态调试演示,辅 助以课下实践及上机编程实践环节。最终目标:掌握 C++程序设计的基础知识、 基本概念;掌握程序设计的思想和编程技巧。 七、 教材与参考资料 1. 教材 《C++面向对象程序设计》 清华大学出版社 谭浩强。 2. 参考资料 《C++面向对象程序设计 题解与上机指导》 清华大学出版社 谭浩强。 八、 课程考核方式与成绩评定标准 考查方法:平时考核与期末考试相结合,采用百分制
考核内容: 1、平时包括作业、考勤、实验操作及报告等,共占30%。 2、期末考试占70%,采用闭卷考试,主要考查学生对C+基本编程方法是 否理解与掌握,以及运用C+语言解决实际问题的能力。题型可以参考:选择题、 填空题、简答、改错题、程序填空题、写出程序的运行结果、编写程序题等多种 灵活形式。 九、大纲制(修)订说明 无。 大纲执笔人:黄明 大纲审核人:鲁远耀 开课系主任:鲁远耀 开课学院教学副院长:宋威 制(修)订日期:2022年2月
考核内容: 1、平时包括作业、考勤、实验操作及报告等,共占 30%。 2、期末考试占 70%,采用闭卷考试,主要考查学生对 C++基本编程方法是 否理解与掌握,以及运用 C++语言解决实际问题的能力。题型可以参考:选择题、 填空题、简答、改错题、程序填空题、写出程序的运行结果、编写程序题等多种 灵活形式。 九、 大纲制(修)订说明 无。 大纲执笔人:黄 明 大纲审核人:鲁远耀 开课系主任:鲁远耀 开课学院教学副院长:宋威 制(修)订日期:2022 年 2 月