面向对象程序设计(C++)信息对抗技术教学大纲-
- 格式:doc
- 大小:80.00 KB
- 文档页数:7
《面向对象程序设计(C++)》课程教学大纲课程代码:110242204课程英文名称:Object-Oriented Programming(C++)课程总学时:32 讲课:32 实验:0 上机:0适用专业:信息对抗技术专业大纲编写(修订)时间:2017年5月一、大纲使用说明(一)课程的地位及教学目标本课程是信息对抗技术专业的一门专业课。
本课程主要介绍C++语言的基本概念、基本语法和编程方法,面向对象的程序设计方法,以及Visual C++ 6集成开发环境。
通过本课程的学习学生应该熟悉和掌握Visual C++语言的面向对象的重要特征:如类、对象、继承、封装和多态性。
本课程的教学任务是使学生掌握一门高级程序设计语言,使学生最终能够阅读、分析、编写C++程序。
掌握面向对象程序设计的基本概念与方法,进而学会利用C++语言解决一般应用问题,为以后的学习和工作打下坚实的基础。
(二)知识、能力及技能方面的基本要求通过对本课程的学习,应使学生达到下列基本要求:1.了解C++语言的基本概念、基本语法和编程方法,同时重点介绍面向对象的特征;2.掌握类、对象、继承、封装和多态性;3.理解C++语言对C语言的扩充以及类和对象、友元、继承与派生、多态性和虚函数、C++语言的输入输出流库、异常处理、Windows编程基础和MFC编程基础、对话框和控件、菜单和文档/视图结构、图形设备接口。
(三)实施说明1.教学方法:面向对象程序设计主要采用讲授与实验相结合的方式进行,教师结合多媒体课件等教具边讲边教,有助于理解和记忆。
2.教学手段:本课程属于专业课,在教学中应与实际控制系统应用相结合,提高学生的学习兴趣。
由于学时的限制,课程实验由学生在课外完成。
(四)对先修课的要求本课程主要的先修课程是C语言程序设计。
(五)对习题课、实践环节的要求1.每部分内容均安排习题及思考题。
通过作业使学生能够对学习的内容真正了解掌握,使学生具有编程的能力。
2.学生通过课外上机提高实际编程和调试能力。
(六)课程考核方式1.考核方式:考查2.考核目标:重点考核C++程序的读写。
3.成绩构成:本课程的总成绩主要由两部分组成:平时成绩(包括作业情况、出勤情况等)占30%,期末考试成绩占70%。
(七)参考书目1. 温秀梅,丁学钧,Visual C++面向对象程序设计教程与实验,清华大学出版社,20142.谭浩强,C++面向对象程序设计题解与上机指导,清华大学出版社,20063.黄维通,Visual C++面向对象与可视化程序设计,高等教育出版社,2016二、中文摘要本课程是信息对抗技术专业学生的专业课,主要讲述面向对象的程序设计方法,C++的面向过程与面向对象程序设计的基本数据类型、控制结构、表达式、函数、指针和引用、类与对象的基本概念、封装、继承、多态性等基本理论,培养学生运用VC++完成应用程序的设计与调试。
三、课程学时分配表四、教学内容及基本要求第1部分面向对象的程序设计方法和c++简介(2学时)总学时(单位:学时):2 讲课:2 实验:0 上机:0具体内容:1)面向对象方法的起源;2)面向过程程序设计与面向对象程序设计之间的区别;3)面向对象的基本概念和面向对象系统的特性;4)面向对象的系统开发方法。
重点:面向对象的基本概念和面向对象的系统开发方法。
难点:面向对象系统的特性习题:什么是面向对象程序设计?它与传统的结构化程序设计有什么不同?面向对象程序设计语言有哪几类?面向对象系统有哪些特性,分别加以解释?第2部分 C++语言对C语言的扩充(2学时)总学时(单位:学时):2 讲课:2 实验:0 上机:0第2.1部分 C++语言对C语言的扩充(讲课2学时)具体内容:C++语言的特点,C++语言的文件扩展名,注释符,名字空间(namespace)。
C++语言的输入输出。
变量的定义,强制类型转换,动态内存的分配与释放,作用域运算符(∷)的引用,const 修饰符,字符串,C++语言中函数的新特性。
c++的程序结构与c++的数据类型重点:C++语言与C语言不同的语法规则,函数原型及内联函数的含义。
难点:重载函数与函数模板的定义及使用方法。
习题:引用类型与指针类型有什么区别?函数、内联函数以及宏有什么区别?函数重载有什么好处?模板有什么作用,函数模板和模板函数有什么区别?第3部分类和对象(6学时)总学时(单位:学时):6 讲课:6 实验:0 上机: 0第3.1部分类和对象的概念(讲课2学时)具体内容:类和对象重点:类和类中成员函数的定义,对象的定义以及对象成员的访问;对象成员和静态成员的含义及使用方法。
难点:类和对象的概念习题:什么是类?什么是对象?第3.2部分构造函数和析构函数(讲课2学时)具体内容:构造函数和析构函数。
重点:构造函数的定义及调用,析构函数的含义及其调用方法。
难点:构造函数的定义及调用,析构函数的含义及其调用方法。
习题:什么是构造函数?什么是析构函数?为什么要引入构造函数和析构函数?第3.3部分类的聚集与对象成员(讲课2学时)具体内容:类的聚集;对象成员;静态成员;指向类成员的指针重点:对象成员的访问,对象成员和静态成员的含义及使用方法。
难点:指向类成员的指针的使用方法。
习题:类的公有、私有和保护成员之间的区别是什么?什么是拷贝构造函数,它何时被调用?定义一个时间类,能提供和设置由时、分、秒组成的时间,并编写出应用程序,定义时间对象,设置时间,输出该对象提供的时间。
模拟栈模型的操作,考虑顺序栈和链栈两种形式。
第4部分友元(2学时)总学时(单位:学时):2 讲课:2 实验:0 上机:0具体内容:友元的概念和定义,友元函数,友元成员,友元类。
重点:友元的概念和定义方法,友元成员和友元类的使用方法。
难点:友元函数的定义和使用方法。
习题:友元的作用是什么?友元概念的引入虽然方便了类之间的数据共享,但是否削弱了对象的封装性?第5部分继承与派生(6学时)总学时(单位:学时):6 讲课:6 实验:0 上机:0第5.1部分单一继承(讲课2学时)具体内容:继承与派生的概念;派生类的定义方法;类的三种继承方式;派生类的构造函数和析构函数;重点:继承与派生的概念,派生类的定义方法,类的三种继承方式,派生类的构造函数和析构函数;难点:派生类的定义方法,类的三种继承方式习题:什么是类的继承和派生?类的三种继承方式之间的区别是什么?派生类能否直接访问基类的私有成员?若否,应如何实现?第5.2部分多重继承(讲课2学时)具体内容:重继承的概念和定义方法,二义性和支配规则,赋值兼容规则的概念多重继承重点:重继承的概念和定义方法,二义性和支配规则,赋值兼容规则的概念;难点:多重继承的概念和定义方法习题:派生类构造函数和析构函数的执行顺序是怎样的?在多重继承中,派生类构造函数和析构函数的执行顺序又是怎样的?派生类的构造函数和析构函数的作用是什么?多重继承一般应用在哪些场合?第5.3部分虚基类和类模板(讲课2学时)具体内容:虚基类;类模板重点:虚基类的概念及其用法,多重继承的构造函数和析构函数的调用,类模板的定义方法。
难点:类模板的定义方法习题:在类的派生中为何引入虚基类?在含有虚基类的派生类中,当创建它的对象时,构造函数的执行顺序如何?第6部分多态性和虚函数(8学时)总学时(单位:学时):8 讲课:8 实验:0 上机:0第6.1部分运算符重载(1)(讲课2学时)具体内容:运算符重载的定义;运算符重载的规则和运算符重载的形式;重点:运算符重载的定义;运算符重载的规则和运算符重载的形式难点:运算符重载的定义习题:运算符重载的规则第6.2部分运算符重载(2)(讲课2学时)具体内容:用成员函数重载运算符;用友元函数重载运算符和几个常用运算符的重载方法;重点:用成员函数重载运算符,用友元函数重载运算符和几个常用运算符的重载方法。
难点:用友元函数重载运算符和几个常用运算符的重载方法习题:用成员函数重载运算符第6.3部分虚函数(讲课2学时)具体内容:虚函数的定义和使用方法;重点:虚函数的定义和使用方法难点:虚函数的定义和使用方法习题:虚函数的定义和使用方法第6.4部分纯虚函数与虚析构函数(讲课2学时)具体内容:纯虚函数和抽象类,虚析构函数重点:虚函数的定义和使用方法,虚析构函数的定义和使用方法。
难点:虚函数的定义和使用方法。
习题:虚函数和重载在设计方法上有何相同和不同之处?什么是纯虚函数,什么是抽象类,抽象类的特性是什么?第7部分 C++语言的输入输出流库(1学时)总学时(单位:学时):1 讲课:1 实验:0 上机:0具体内容:C++语言标准输入输出,用户自定义类型的I/O流,文件输入输出流。
重点:C++语言格式化输入输出的方法,文件输入输出流的使用方法。
难点:C++语言格式化输入输出的方法。
习题:对于一般的输入/输出,C++的输入/输出系统如何进行格式控制?如何对文件进行读写操作?对数据0~15分别输出十进制、八进制和十六进制显示。
stu类用来描述学生的姓名、学号、数学成绩、英语成绩,分别建立文本文件和二进制文件,将若干学生的信息保存在文件中,并读出该文件的内容。
第8部分异常处理(1学时)总学时(单位:学时):1 讲课:1 实验:0 上机:0具体内容:异常处理概述,C++语言异常处理的实现,重新抛出异常和异常规范,C++标准库中的异常类。
重点:C++语言中异常处理的实现方法。
难点:C++语言中异常处理的实现方法。
习题:什么是异常处理?什么叫异常规范?VC++ 6.0是否支持异常规范?什么是异常重新抛出?定义堆栈类及其相应的成员函数,并进行异常处理。
第9部分 Windows编程基础和MFC编程基础(1学时)总学时(单位:学时):1 讲课:1 实验:0 上机:0具体内容:Windows编程基础;MFC编程基础。
重点:消息传递和事件驱动难点:MFC编程中的相关类和常用的MFC类。
习题:事件驱动的特点是什么?句柄的作用是什么,请举例说明?简述MFC类的层次结构。
简述MFC应用程序的消息处理过程。
第10部分对话框和控件(1学时)总学时(单位:学时):1 讲课:1 实验:0 上机:0具体内容:对话框和控件的基本概念,使用AppWizard开发MFC应用程序,基本控件,通用对话框。
重点:对话框和控件的基本概念,基本控件的属性和方法,通用对话框的使用方法。
难点:通用对话框的使用方法。
习题;有模式对话框和无模式对话框有什么区别?举例说明如何为应用程序添加代码?第11部分菜单和文档/视图结构(1学时)总学时(单位:学时):1 讲课:1 实验:0 上机:0具体内容:文档/视图的概念,文档类,视图类,菜单,菜单和文档/视图结构程序设计举例。
重点:文档/视图的概念。