1、面向对象程序设计课程教学大纲一、课程基本信息课程代码:05110123课程名称:面向对象程序设计课程英文名称:Object-Oriented Programming课程所属单位:计算机与信息工程系计算机科学与技术教研室课程面向专业:计算机科学与技术本科课程类型:必修课先修课程:计算机导论、C语言程序设计学分:3.0总学时:48(其中理论学时:36 实验学时:12)二、课程性质与目的面向对象程序设计是计算机科学与技术专业学生的一门必修课程。面向对象软件开发方法是吸收了 软件工程领域有益的概念和有效的方法而开展起来的一种软件开发方法。它集抽象性、封装性、继承性 和多态性于一体,可以帮助人们开发出模
2、块化、数据抽象程度高的、能表达信息隐蔽、可复用、易修改、 易扩充等特性的程序。本课程主要介绍面向对象程序设计的方法和C+语言的基本概念,以C+语言中的面向对象机制为 主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C+的面向过程和面向对象的 功能,从而掌握面向对象程序设计的基本知识和基本技能。三、课程教学内容与要求(一)、C+概览1教学内容与要求本章讲述计算机设计语言的开展过程;面向对象程序设计的基本思想及基本概念;面向对象语言的分类 和C+中支持面向对象的特点;计算机软件信息的表示与存储原理;以及程序的开发过程.2教学重点(1)面向对象程序设计的基本思想及基本概念:对程序的的
3、质量要求;程序的模块化和结构化;(2)为什么要面向对象:从面向过程到面向对象;(3)计算机软件信息的表示与存储原理。3教学难点面向对象程序设计的基本思想;(二)、C+简单程序设计1教学内容与要求内容包括(1) C+语言的产生,开展,特点;C+控制台应用程序举例;(2) C+的基本数据类型和表达式;(3)数据的输入和输出原理;(4) C+算法的基本控制结构;(5) C+中的自定义类型;通过对上述内容的学习,使学生对C+语言有一个初步的认识,掌握C+语言的基本数据类型 和使用方法;掌握控制台输入输出原理;掌握简单C+程序的基本结构;掌握C+中简单的自定义 数据类型。2教学重点(1)C+的特点;(2
4、)基本数据类型极其使用方法;(3) C+控制台输入输出原理;(4)简单C+程序的基本结构;(5)简单的C+自定义数据类型:3教学难点C+语法结构特点;(三)、函数1教学内容与要求内容包括:(1) C+函数定义与使用的方法,包括定义和创立函数,调用函数,给函数传递参数等内容;(2)内联函数的概念;(3)函数重载;(4)函数模板;(5) 标准C+库函数。通过学习,要求掌握C+函数的定义与使用方法;理解并掌握内联函数的概念和使用方法;掌握给函 数传递参数的方法;掌握函数重载的基本方法;理解并掌握函数模板的使用方法;掌握标准C+库函数 的使用方法。2教学重点(1)函数的一般形式与调用方法(2)函数的递
5、归调用(3)内联函数和带默认参数值的函数(4)函数和变量作用域(5)函数重载(6)函数模板3教学难点内联函数;递归函数;函数重载;函数模板;(四)、类与对象1教学内容与要求内容包括:(1) 面向对象的程序设计思想;(2)面向对象程序设计的基本特点;(6) 类和对象,包括类的声明,对象的创立,类的成员函数的使用;(7) 类的构造函数和析构函数:(8) 类的组合;(6)类模板;通过学习要求理解面向对象的程序设计思想;掌握声明类的方法;掌握对象的创立和使用方法;理 解并掌握类的构造函数和析构函数的概念和使用方法;理解类组合的概念;理解并掌握类模板的创立和 使用方法。2教学重点(1)面向对象的程序设计
6、思想和特点;(2)类的定义和使用;(3)类的构造和析构函数;(4)类模板的创立和使用方法。3教学难点类的拷贝构造函数,类模板。(五)、C+程序结构1教学内容与要求内容包括:(1) 变量的作用域和可见性;(2) 变量的生存期;(3)局部和全局变量;(4) 类的数据成员;(5) 类的静态成员;(6) 类的友元函数和友元类;(7) 共享数据的保护机制;(8) C+程序的多文件结构和编译预处理命令;要求理解变量的作用域和可见性范围:掌握不同类型变量的生存期;掌握局部和全局变量的联系和 区别:掌握类的静态成员变量和函数的概念和使用方法;掌握友元函数和友元类的概念和使用方法;理 解共享数据的保护机制;理解
7、并掌握C+多文件程序结构;掌握编译预处埋指令的作用和使用方法。2教学重点(1)变量的作用域、可见性和生存周期;(2)局部和全局变量的关系;(3)类的成员变量的作用域、可见性和生存周期;(4)类的静态成员的特点、作用、使用方法、作用域、可见性和生存周期;(5)类的友元函数和友元类的作用和使用方法;(6) C+多文件程序结构;(7) C+编译预处理指令。3教学难点类的静态成员,友元,C+多文件程序结构,预编译指令。(六)、数组、指针和字符串1教学内容与要求内容包括:(1) 数组的声明与使用;(2)数组元索的存储和初始化;(3) 给函数传递数组参数;(4) 对象数组;(5)指针变量的声明和使用方式;
8、(6)用指针处理数组元素;(7) 指针数组;(8)参数的引用传递和指针作为函数参数;(9) 指针型函数;(10)指向函数的指针;(11)对象指针的使用方法;(12)使用指针进行动态内存分配;(13)标准C+字符串的使用方法。要求掌握数组的声明和使用方法;掌握指针的声明和使用方法;掌握用指针操作数组元素;掌握指 针数组的使用方法;掌握函数参数的引用传递和给函数传递指针的方法;掌握指针型函数和函数指针的 使用方法;掌握对象指针的使用方法;掌握动态内存分配的方法;掌握字符串类的使用方法。2教学重点(1) 数组的声明和使用:(2) 数组元素的存储和初始化;(3)数组作为函数参数;(4)对象数组的使用方
9、法:(5) 指针变量的声明和使用方式;(6)用指针处理数组元素;(7)参数的引用传递和指针作为函数参数:(8) 指向函数的指针;(9)对象指针;(10)动态内存分配:(11)标准C+字符串的使用方法。3教学难点指针、动态内存分配。(七)、继承与派生1教学内容与要求内容包括:(1) 派生和继承的概念;(2) 派生类的声明;(3) 派生类对象的使用;(4) 访问控制方式,包括共有继承、私有继承和保护继承;(5) 派生类的构造和析构函数;(6) 派生类成员的标识和访问;(7) 赋值兼容规那么;要求理解继承和派生的概念;掌握派生类的声明方法;理解派生类成员的访问控制方式;掌握派生 类的构造和析构函数;
10、理解掌握赋值兼容规那么。2教学重点(1)派生和继承的概念;(2)派生类的声明;(3)使用派生类对象:(4)派生类成员的访问控制方式;(5)派生类的构造和析构函数;(6)赋值兼容规那么。3教学难点派生类的构造和析构函数,赋值兼容规那么。(八)、多态性1教学内容与要求内容包括:(1)多态的类型和实现;(2)运算符重载;(3) 虚函数;4)抽象类;要求理解多态的概念;掌握多态的类型和实现方法;掌握运算符重载的方法;理解虚函数的作用; 掌握虚函数的使用方法;理解抽象类的概念;掌握抽象类的使用方法。2教学重点(1)多态的类型和实现方法;(2)运算符重载;(3)虚函数的作用和使用方法;(4)抽象类的作用和
11、使用方法;3教学难点运算符重载、虚函数。(九)流类库与输入输出1教学内容与要求内容包括:(1) I/O流的概念;输出流;(2) 输入流;输入/输出流。要求理解I/O流的概念;掌握控制台和文件输入输出流的使用方法。2教学重点I/O流的概念;(2)输入/输出流;3教学难点使用文件输入输出流对象。(+)MFC库与Windows程序开发概述1教学内容与要求内容包括:(1) Windows编程模式;MFC库简介;(2) 使用VC+开发Windows程序的步骤。要求理解Windows编程模式的特点;理解MFC类库的基本功能;掌握使用VC+开发Windows程 序的步骤。2教学重点Windows编程模式;(
12、1) MFC类库的基本功能;VC+开发Windows程序的步骤。3教学难点Windows编程模式:MFC类库的基本功能。四、学时分配理论学时分配表序 号教学内容学时课堂讲授实验课习题课讨论课其它1C+概览22C+简单程序设计23函数44类与对象45C+程序结构26数组、指针和字符串67继承与派生48多态性49流类库与输入输出410MFC库与Windows程序开发概述4小计36比例100%合计36实验学时分配表序 号实验工程(或内容)名称实 验 学: 时实验类型每组 实验 人数说明验证性设计性综合性其它1Visual C+6.0开发环境应用入门214类与对象215C+程序的结构216数组、指针与
13、字符串217继承与派生218多态性21小计12五、教学环节与教学要求:课堂讲授采用板书教学方式;实验采用一人一机,使用相应的开发软件和环境;作业主要采用理论 和实验方式进行,要求完成所安排的理论题和实验题,并提交作业、实验报告和程序。本课程是门理论与实践比拟强的专业课程,采用的是种软件设计的方式,并通过这种方式让学 生真正理解许多比拟抽象的概念。该门课程的实验局部不进行笔试,通过学生上机以及所交实验报告给 出成绩,并占该门课程总平成绩的40%,六、课程考核方法:1、案例作业/实验:40%2、课堂参与:10%3、考试(开卷):50%七、教材与主要参考书:C+语言程序设计清华大学出版社2001C+ Primer Third Edition 中国电力出版社 2004