面向对象程序设计(C++)教学大纲
(电子信息工程专业四年制本科)
一、课程基本信息
课程名称
中文名称
面向对象程序设计(C++
英文名称
Object-Oriented ProgrammingC++
课程代码
140228
课程类型
专业基础课程
开课学期
5学期
48
讲课
32
实验(实习)
16
学分
3
预修课程
程序设计基础(C)、数据结构、离散数学
二、课程性质、地位和任务
面向对象程序设计(C++)是电子信息工程专业的一门专业基础课。本课程主要介绍C++语言
的基本概念、基本语法和编程方法,面向对象的程序设计方法,以及Visual C++ 6集成开发环境。 通过本课程的学习学生应该熟悉和掌握Visual C++语言的面向对象的重要特征:如类、对象、继承、封装和多态性。本课程的教学任务是使学生掌握一门高级程序设计语言,使学生最终能够阅读、分析、编写C++程序。掌握面向对象程序设计的基本概念与方法,进而学会利用C++语言解决一般应用问题,为以后的学习和工作打下坚实的基础。
三、课程教学基本要求
通过对本课程的学习,应使学生达到下列基本要求:
1.了解C++语言的基本概念、基本语法和编程方法,同时重点介绍面向对象的特征;
2.掌握类、对象、继承、封装和多态性;
3.理解C++语言对C语言的扩充以及类和对象、友元、继承与派生、多态性和虚函数、C++语言的输入输出流库、异常处理、Windows编程基础和MFC编程基础、对话框和控件、菜单和文档/视图结构、图形设备接口。
四、课程学时分配建议
                教学时数
课程内容
 
习题课
实验课
 
绪论
2
2
C++语言对C语言的扩充
2
2
类和对象
6
2
8
友元
2
2
4
继承与派生
7
1
8
多态性和虚函数
7
1
8
C++语言的输入输出流库
1
1
2
异常处理
1
2
3
Windows编程基础和MFC编程基础
1
1
2
(续表)
多态性与虚函数
对话框和控件
1
2
3
菜单和文档/视图结构
1
2
3
图形设备接口
1
2
3
     
32
16
48
五、课程教学内容与教学要求
(一)绪论
教学内容:面向对象方法的起源,面向过程程序设计与面向对象程序设计之间的区别,面向对象的基本概念和面向对象系统的特性,面向对象的系统开发方法。
教学重点:面向对象的基本概念和面向对象的系统开发方法。
教学难点:面向对象系统的特性。
教学要求:了解面向对象方法的起源以及结构化程序设计与面向对象程序设计之间的区别;理解面向对象的基本概念和面向对象系统的特性;掌握对象、类、消息、方法等概念;掌握抽象性、封装性、继承性和多态性的概念;了解面向对象程序设计语言的发展;了解面向对象的系统开发方法。
习题与作业:
1.什么是面向对象程序设计?它与传统的结构化程序设计有什么不同?
2.面向对象程序设计语言有哪几类?
3.面向对象系统有哪些特性,分别加以解释?
(二)C++语言对C语言的扩充
教学内容:C++语言的特点,C++语言的文件扩展名,注释符,名字空间(namespace)C++语言的输入输出。变量的定义,强制类型转换,动态内存的分配与释放,作用域运算符()的引用,const修饰符,字符串,C++语言中函数的新特性。
教学重点:C++语言与C语言不同的语法规则,函数原型及内联函数的含义。
教学难点:重载函数与函数模板的定义及使用方法。
教学要求:了解C++语言的特点以及C++语言与C语言的不同之处;理解C++语言中函数的新特性;掌握内联函数的含义及其使用方法;掌握函数重载和函数模板的含义及其使用。
习题与作业:
1.引用类型与指针类型有什么区别?
2.函数、内联函数以及宏有什么区别?
3.函数重载有什么好处?
4.模板有什么作用,函数模板和模板函数有什么区别?
(三)类和对象
教学内容:类,对象,构造函数和析构函数,类的聚集,对象成员,静态成员,指向类成员
的指针。
教学重点:类和类中成员函数的定义,对象的定义以及对象成员的访问,对象成员和静态成员的含义及使用方法。
教学难点:构造函数的定义及调用,析构函数的含义及其调用方法,指向类成员的指针的使用方法。
教学要求:熟练掌握类和类中成员函数的定义方法;理解对象的概念,熟练掌握对象的定义方法及对象成员的访问方法;理解构造函数的含义并掌握其定义和调用方法;理解析构函数的含义并掌握其调用方法;理解对象成员和静态成员的含义及其使用方法;掌握指向类成员的指针的使用方法。
习题与作业:
1.为什么要引入构造函数和析构函数?
2.类的公有、私有和保护成员之间的区别是什么?
3.什么是拷贝构造函数,它何时被调用?
4.定义一个时间类,能提供和设置由时、分、秒组成的时间,并编写出应用程序,定义时间对象,设置时间,输出该对象提供的时间。
5.模拟栈模型的操作,考虑顺序栈和链栈两种形式。
(四)友元
教学内容:友元的概念和定义,友元函数,友元成员,友元类。
教学重点:友元的概念和定义方法,友元成员和友元类的使用方法。
教学难点:友元函数的定义和使用方法。
教学要求:理解友元的概念和定义;熟练掌握友元函数的定义和使用方法;掌握友元成员和友元类的使用方法。
习题与作业:
1.友元的作用是什么?
2.友元概念的引入虽然方便了类之间的数据共享,但是否削弱了对象的封装性?
(五)继承与派生
教学内容:单一继承,多重继承,虚基类,类模板。
教学重点:继承与派生的概念,派生类的定义方法,类的三种继承方式,派生类的构造函数和析构函数;重继承的概念和定义方法,二义性和支配规则,赋值兼容规则的概念,虚基类的概念及其用法,多重继承的构造函数和析构函数的调用,类模板的定义方法。
教学难点:派生类的定义方法,类的三种继承方式,多重继承的概念和定义方法,类模板的定义方法。
教学要求:理解继承与派生的概念;熟练掌握派生类的定义方法和类的三种继承方式;掌握派生类的构造函数和析构函数的定义方法,继承与派生的概念,派生类的定义方法,公有继承、私有继承和保护继承方式下创建的派生类对基类各种成员的访问权限;掌握派生类的构
造函数和析构函数的定义及调用;理解并掌握多重继承的概念及定义方法;理解二义性和支配规则,理解赋值兼容规则的概念;掌握多重继承的概念,多重继承的定义方法,掌握二义性和支配规则;理解赋值兼容规则的概念;理解并掌握虚基类的概念及用法;掌握多重继承的构造函数和析构函数的调用方法,虚基类的概念和用法;掌握多重继承的构造函数和析构函数的调用;掌握类模板的定义方法。
习题与作业:
1.什么是类的继承和派生?
2.类的三种继承方式之间的区别是什么?
3.派生类能否直接访问基类的私有成员?若否,应如何实现?
4.派生类构造函数和析构函数的执行顺序是怎样的?在多重继承中,派生类构造函数和析构函数的执行顺序又是怎样的?
5.派生类的构造函数和析构函数的作用是什么?
6.多重继承一般应用在哪些场合?
7.在类的派生中为何引入虚基类?在含有虚基类的派生类中,当创建它的对象时,构造函数的执行顺序如何?
(六)多态性和虚函数
教学内容:运算符重载,虚函数,纯虚函数和抽象类,虚析构函数。
教学重点:运算符重载的定义,运算符重载的规则和运算符重载的形式,用成员函数重载运算符,用友元函数重载运算符和几个常用运算符的重载方法,虚函数的定义和使用方法,虚析构函数的定义和使用方法。
教学难点:用成员函数重载运算符,用友元函数重载运算符和几个常用运算符的重载方法,虚函数的定义和使用方法。
教学要求:掌握运算符重载的定义,运算符重载的规则和运算符重载的形式,运算符重载的定义,运算符重载的规则,运算符重载的形式;掌握用成员函数重载运算符,用友元函数重
载运算符和几个常用运算符的重载方法,用成员函数重载运算符,用友元函数重载运算符;掌握几个常用运算符的重载;理解引入虚函数的必要性,掌握虚函数的定义和使用方法;理解纯虚函数和抽象类的概念;掌握虚析构函数的定义和使用方法。
习题与作业:
1.虚函数和重载在设计方法上有何相同和不同之处?
2.什么是纯虚函数,什么是抽象类,抽象类的特性是什么?
(七)C++语言的输入输出流库
教学内容:C++语言标准输入输出,用户自定义类型的I/O流,文件输入输出流。
教学重点:C++语言格式化输入输出的方法,文件输入输出流的使用方法。
教学难点:C++语言格式化输入输出的方法。
教学要求:理解C++语言输入输出流库的概念;掌握C++语言格式化输入输出的方法;了解用户自定义数据类型的I/O流;掌握文件输入输出流的使用方法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。