《面向对象程序设计》课程教学大纲
课程代码:ABJD0630
课程中文名称:面向对象程序设计
课程英文名称:Object-OrientedProgramming
课程性质:选修
课程学分数:2.5学分
课程学时数:40学时(32理论课时+8实验学时)
授课对象:电子信息工程专业
本课程的前导课程:大学计算机基础、计算机程序设计
一、课程简介
《面向对象程序设计》是电子信息专业本科生的一门专业选修课,是在程序设计基础(C语言)后的一门重要的后续课程,它是为学生掌握当前最基本的面向对象程序设计方法而设置的。面向对象程序设计对降低软件的复杂性,改善其重用性和可维护性,提高软件的生产率,有着十分重要的意义。通过本课程的学习,除了使学生掌握C++基本语法规则,能够使用C++进行程序设计以外,更重要的是使学生理解面向对象的三个核心概念(即数据封装、继承、多态),使学生理解面向对象程序设计思想,培养学生的面向对象软件分析和设计能力,为学生毕业后从事本专业范围内各项软件开发工作奠定坚实的实践基础。
二、教学基本内容和要求
(-)C++编程简介
教学内容:
C++的发展过程;结构化程序设计和面向对象程序设计的区别;简单介绍面向对象程序设计的三大特点:封装、继承和多态;结合集成开发工具Visua1C++6.0简要说明C++程序的基本开发流程;基本的1/。操作(Cin、COUt的基本使用方式)。
课程的重点、难点:
重点:C++流的概念和基本使用
难点:无
教学要求:
了解C++的基本概念;了解面向对象技术的三大特点;理解ViSUa1C++6.0开发工具开发C++程序的基本过程;掌握cin、CoUt的基本用法。
(-)数据类型与表达式
教学内容:
复习在C语言中已经学习过的各种数据类型、运算符以及表达式;布尔类型的基本用法;C++的常变量,以及与C语言符号常量的异同。
课程的重点、难点:
重点:boo1类型、C++常量
难点:无
教学要求:
掌握新类型的使用;理解C++常变量与C语言符号常量的异同。
(三)控制结构
教学内容:
复习在C语言中学习过的相关知识,主要包括ife1se、switchcasexfor循环、whi1e循环等控制语句。
课程的重点、难点:
重点:C++语句与C的异同
难点:无
教学要求:
理解并掌握breakscontinueo
(四)函数
教学内容:
复习在C语言中已经学习过的函数的定义方式、调用方式以及参数传递过程;内联函数的作用、与宏定义的区别、以及定义内联函数的方式;带默认形参值函数的定义和使用方式;函数重载的作用、如何进行函数重载、调用重载函数的方式;函数模板。
课程的重点、难点:
重点:函数重载的概念和方式
难点:函数重载的概念和方式
教学要求:
掌握内联函数、带默认形参值函数、函数重载、函数模板。
(五)构造数据类型
教学内容:
复习在C语言中已经学习过的知识,包括:枚举、结构和联合、数组的定义和使用方式、指针类型及使用方式;C++中使用new和de1ete运算符进行动态内存分配与释放的方式;引用的基本概念,在函数调用时使用引用进行参数传递的方式。
课程的重点、难点:
重点:new和de1ete运算符的使用;引用类型;
难点:引用的概念和使用
教学要求:
进一步理解指针;掌握new和de1ete的基本用法;理解引用类型的特点、掌握引用的用法。
(六)C++程序的结构
教学内容:
复习在C语言中已经学习过知识,包括:变量的分类(全局变量和局部变量)、变量的存储类型、标识符的作用域和可见性、编译预处理方式。
课程的重点、难点:
无
教学要求:
理解预处理机制、能够识别变量的作用域。
(七)类与对象
教学内容:
数据封装的基本概念(将一组数据以及操作这组数据的函数形成一个有机的整体);类的
定义和使用方式;类成员的访问控制方式;构造函数、拷贝构造函数及析构函数的作用、定义及使用方式;对象数组的定义及初始化方式;对象指针的定义及使用方式,this指针的作用及典型用法;静态成员的特点,作用及使用方式;友元机制的特点及基本使用方式。
课程的重点、难点:
重点:数据封装的概念;类的定义和使用;构造函数和析构函数
难点:拷贝构造函数的概念和使用;静态成员的特点
教学要求:
掌握类的定义和类成员的访问控制;掌握构造函数、拷贝构造函数及析构函数;理解this指针;理解静态成员;友元机制。
(A)继承与派生
教学内容:
派生类的概念和分类;单继承和多继承派生类的定义方式;派生方式下构造函数和析构函数的调用顺序;继承方式下同名成员的访问方式;继承方式对基类成员的影响;类型兼容规则;派生方式下的二义性问题,以及用虚基类解决二义性问题。
课程的重点、难点:
重点:继承的概念;继承在C++中的实现方式;继承的意义
难点:继承中父类与子类的关系;虚基类
教学要求:
掌握派生类的定义和使用方式;理解派生方式下的二义性问题;了解类型兼容规则。
(九)多态性
教学内容:
运算符重载的概念及重载方式;典型的运算符重载实例;引入虚函数的意义、虚函数的定义和使用方式;纯虚函数及抽象类;
课程的重点、难点:
重点:运算符重载的概念和使用方式;虚函数的概念及使用;纯虚函数和抽象类的概念和使用
难点:++和一运算符的重载;类型转换运算符;虚函数的概念;纯虚函数和抽象类的概念
教学要求:
运算符重载;虚函数。
(+)类模板
教学内容:
类模板的作用、定义和使用方式,类模板和模板类的关系。
课程的重点、难点:
无
教学要求:
类模板的定义和使用。
(+-)命名空间和异常处理
教学内容:
命名空间的概念和作用、C++的异常机制。
课程的重点、难点:
重点:名字空间的概念和使用;异常机制的概念和相关语句
难点:名字空间的概念和使用;异常机制的概念
教学要求:
理解命名空间和异常机制的作用。
三、实验教学内容及基本要求
本课程的实践环节共8个学时,主要围绕数据封装、继承和多态三个核心内容展开,具体情况如下:
实验一
1、实验名称:数据封装的实现
2、实验要求:了解数据封装的作用和实现方式,使用C++语言的抽象数据类型实现数据封装。
3、实验仪器:每人一台安装有ViSUa1C++的普通学生电脑
抽象类的使用4、实验内容:(1)编写一个圆类,用来封装圆的所有特性和在其上的操作;(2)编写一个复数类,用来封装复数的所有特性和在其上的操作;(3)编写一个学生类,用来封装学生的所有特性和在其上的操作
5、实验重点:使用C++语言的抽象数据类型实现数据封装
6、实验课时:2学时
7、应达到的要求:学会定义和实现类。
实验二
1、实验名称:继承的实现
2、实验要求:了解继承的实现方式,使用C++语言的基类和派生类实现继承功能。
3、实验仪器:每人一台安装有ViSUa1C++的普通学生电脑
4、实验内容:(1)要求设计基本几何图形的继承层次结构,并编程实现其中的主要类型,要求通过抽象方法、虚拟方法和重载方法来计算各种图形的面积和周长。(2)源代码,C++可视化程序设计
5、实验重点:使用C++语言的基类和派生类实现继承功能。
6、实验课时:2学时
7、应达到的要求:学会设计类的继承关系,学会定义基类和派生类。
实验三
1、实验名称:多态的实现
2、实验要求:深入理解多态的含义;掌握使用抽象类实现多态的方法;掌握使用接口实现多态的方法。
3、实验仪器:每人一台安装有ViSUa1C++的普通学生电脑
4、实验内容:使用抽象类实现多态;使用接口实现多态
5、实验重点:使用抽象类实现多态的方法。
6、实验课时:4学时
7、应达到的要求:加深对多态的理解,理解接口的定义和实现接口,学会内部类、匿名内部类对象的的编写和使用。
四、教学方法与手段
板书+ppt
五、教学学时分配
章节与内容 | 课时 | 作业量 | 备注 |
C++编程简介 | 2 | ||
数据类型与表达式 | 2 | ||
控制结构 | 2 | ||
函数 | 2 | ||
构造数据类型 | 4 | ||
C++程序的结构 | 4 | ||
类与对象 | 4 | ||
继承与派生 | 4 | ||
多态性 | 4 | ||
类模板 | 2 | ||
命名空间和异常处理 | 2 | ||
合 计 | 32 | ||
六、考核方式与成绩评定标准
平时成绩:20%,实验成绩:20%,期末考试:60%
七、教学参考资源
1、参考书目:
国杨进才,沈显君,张勇∙《C++语言程序设计教程》(第二版).北京:清华大学出版社,2010.1,第2版
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论