面向对象程序设计教学大纲

面向对象程序设计教学大纲
面向对象程序设计教学大纲

面向对象程序设计(C++)教学大纲

(电子信息工程专业四年制本科)

一、课程基本信息

二、课程性质、地位和任务

面向对象程序设计(C++)是电子信息工程专业的一门专业基础课。本课程主要介绍C++语言的基本概念、基本语法和编程方法,面向对象的程序设计方法,以及Visual C++ 6集成开发环境。通过本课程的学习学生应该熟悉和掌握Visual C++语言的面向对象的重要特征:如类、对象、继承、封装和多态性。本课程的教学任务是使学生掌握一门高级程序设计语言,使学生最终能够阅读、分析、编写C++程序。掌握面向对象程序设计的基本概念与方法,进而学会利用C++语言解决一般应用问题,为以后的学习和工作打下坚实的基础。

三、课程教学基本要求

通过对本课程的学习,应使学生达到下列基本要求:

1.了解C++语言的基本概念、基本语法和编程方法,同时重点介绍面向对象的特征;

2.掌握类、对象、继承、封装和多态性;

3.理解C++语言对C语言的扩充以及类和对象、友元、继承与派生、多态性和虚函数、C++语言的输入输出流库、异常处理、Windows编程基础和MFC编程基础、对话框和控件、菜单和文档/视图结构、图形设备接口。

四、课程学时分配建议

(续表)

五、课程教学内容与教学要求

(一)绪论

教学内容:面向对象方法的起源,面向过程程序设计与面向对象程序设计之间的区别,面向对象的基本概念和面向对象系统的特性,面向对象的系统开发方法。

教学重点:面向对象的基本概念和面向对象的系统开发方法。

教学难点:面向对象系统的特性。

教学要求:了解面向对象方法的起源以及结构化程序设计与面向对象程序设计之间的区别;理解面向对象的基本概念和面向对象系统的特性;掌握对象、类、消息、方法等概念;掌握抽象性、封装性、继承性和多态性的概念;了解面向对象程序设计语言的发展;了解面向对象的系统开发方法。

习题与作业:

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流;掌握文件输入输出流的使用方法。

习题与作业:

1.对于一般的输入/输出,C++的输入/输出系统如何进行格式控制?

2.如何对文件进行读写操作?

3.对数据0~15分别输出十进制、八进制和十六进制显示。

4.stu类用来描述学生的姓名、学号、数学成绩、英语成绩,分别建立文本文件和二进制文件,将若干学生的信息保存在文件中,并读出该文件的内容。

(八)异常处理

教学内容:异常处理概述,C++语言异常处理的实现,重新抛出异常和异常规范,C++标准库中的异常类。

教学重点:C++语言中异常处理的实现方法。

教学难点:C++语言中异常处理的实现方法。

教学要求:理解进行异常处理的必要性;掌握C++语言中异常处理的实现方法;了解重新抛出异常和异常规范;了解C++标准库中的异常类。

习题与作业:

1.什么是异常处理?

2.什么叫异常规范?VC++ 6.0是否支持异常规范?

3.什么是异常重新抛出?

4.定义堆栈类及其相应的成员函数,并进行异常处理。

(九)Windows编程基础和MFC编程基础

教学内容:Windows编程基础,MFC编程基础。

教学重点:消息传递和事件驱动。

教学难点:MFC编程中的相关类和常用的MFC类。

教学要求:理解消息传递和事件驱动的概念;了解Windows API函数;了解MFC编程中的相关类和常用的MFC类。

习题与作业:

1.事件驱动的特点是什么?

2.句柄的作用是什么,请举例说明?

3.简述MFC类的层次结构。

4.简述MFC应用程序的消息处理过程。

(十)对话框和控件

教学内容:对话框和控件的基本概念,使用AppWizard开发MFC应用程序,基本控件,通用对话框。

教学重点:对话框和控件的基本概念,基本控件的属性和方法,通用对话框的使用方法。

教学难点:通用对话框的使用方法。

教学要求:理解对话框和控件的基本概念;了解使用AppWizard开发MFC应用程序的过程;掌握

基本控件的属性和方法;掌握通用对话框的使用方法。

习题与作业:

1.有模式对话框和无模式对话框有什么区别?

2.举例说明如何为应用程序添加代码?

(十一)菜单和文档/视图结构

教学内容:文档/视图的概念,文档类,视图类,菜单,菜单和文档/视图结构程序设计举例。

教学重点:文档/视图的概念。

教学难点:文档/视图的概念。

教学要求:理解文档/视图的概念;了解文档类、视图类和菜单类。

习题与作业:

1.什么是单文档应用程序和多文档应用程序?

2.文档类和视图类的常用方法有哪些?

3.在文档/视图结构中,文档与视图的工作机制是什么?

(十二)图形设备接口

教学内容:设备环境的概念和映射模式,绘制基本图形的方法,画笔和画刷的使用方法

教学重点:绘制基本图形的方法,画笔和画刷的使用方法。

教学难点:画笔和画刷的使用方法。

教学要求:了解设备环境的概念和映射模式;掌握绘制基本图形的方法;掌握画笔和画刷的使用方法;了解字体的使用方法。

习题与作业:

1.说明经常使用的绘制基本图形的CDC类的成员函数。

2.说明使用画笔、画刷和字体的步骤。

六、教学环节和教学方法的说明

面向对象程序设计主要采用讲授与实验相结合的方式进行,教师结合多媒体课件等教具边讲边教,有助于理解和记忆。为了加强学生记忆和理解课程内容,本课程安排有大量的实验需要在教师的指导下或独立地完成。

七、课程考核要求

平时的考核内容包括:考勤、课堂提问、课后作业等。

期中考试:任课教师根据学生的特点,可自行组织任意形式的期中考试,百分制记分。

期末考试采用闭卷考试,考试时间为2小时。

成绩综合评定原则:兼顾整个教学过程中的各个环节。

综合成绩=平时的考核成绩*10%+期中考核*15%+期末考核*60%+实验考核成绩*15%。

八、教材名称

温秀梅,丁学钧.Visual C++面向对象程序设计教程与实验.北京:清华大学出版社

九、主要教学参考书目

1.谭浩强.C++面向对象程序设计题解与上机指导.北京:清华大学出版社

2.黄维通.Visual C++程序设计教程.北京:清华大学出版社

3.吕军,杨琦,罗建军,刘路放.Visual C++与面向对象程序设计教程(第二版).北京:高等教育出版社

仅供个人参考

仅供个人用于学习、研究;不得用于商业用途。

For personal use only in study and research; not for commercial use.

Nur für den pers?nlichen für Studien, Forschung, zu kommerziellen Zwecken verwendet werden.

Pour l 'étude et la recherche uniquement à des fins personnelles; pas à des fins commerciales.

толькодля людей, которые используются для обучения, исследований и не должны использоваться в коммерческих целях.

以下无正文

相关主题
相关文档
最新文档