3397 面向对象技术与C++教学大纲 |
适用专业:信息与计算科学 |
撰写人:刘建伟 审核人: 批准人: |
学时:48 讲课:32 实验:0 上机:16
|
英文名称:
|
英文摘要: |
|
使用说明: |
(一)课程性质、目的和任务 《 面向对象技术与C++》是计算机各专业第一门介绍面向对象程序设计方法的课程,是各专业必修的一门重要专业基础课。本课程教学的目标是使学生初步建立专业所要求的面向对象程序设计的基本思想。 本课程主要介绍面向对象程序设计的基本概念,并通过C++语言实现面向对象程序设计基本方法:数据的封装与隐藏特性(类及对象的定义)、继承特性及多态特性;通过本课程的学习,使学生正确理解面向对象分析方法,并能用C++语言编写解决实际问题的程序。 (二)课程教学基本要求 通过理论课与实验课教学,达到如下要求: 1.了解面向对象方法的概念,面向对象方法的基本特征;了解面向对象程序设计语言的发展过程;了解面向对象程序设计方法与面向过程程序设计方法的区别;了解抽象数据类型及描述方法。 2.理解类、对象的基本概念,掌握C++语言类的组成及定义方法,对象的定义和使用方法;理解构造函数和析构函数的概念、作用,掌握其使用方法;理解友员的概念、作用,掌握其使用方法;掌握静态成员、对象成员及常量成员的作用及使用方法。 3.理解继承与派生的概念,掌握C++派生类定义、派生方式及不同派生方式下的消息传递通路;掌握派生类的构造函数、析构函数及执行顺序;掌握基类与派生类的赋值规则;了解多继承的概念及声明,虚基类的概念及应用。 4.理解多态性的概念,了解静态联编、动态联编的概念;理解运算符重载的意义及作用,掌握C++用成员函数、友元函数重载运算符的方法;理解虚函数的概念及作用,掌握虚函数的定义方法及应用,理解纯虚函数和抽象类的概念,掌握其应用。 5.理解摸板的概念及作用;掌握C++函数摸板及摸板函数的定义方法及应用;掌握类摸板和摸板类的定义方法及应用。 6.理解输入/输出流的概念,掌握C++的输入/输出流库,掌握一般的输入/输出方法及格式化的输入/输出的方法;掌握用户自定义的输入/输出方法;理解文件的概念,掌握文件的简单应用。 (三)与其它课程的联系 需要先修课程为《C语言程序设计》 (四)教材、参考书目及主要期刊 1、参考教材 谭浩强 编著 c++程序设计 清华大学出版社 2、参考书目 1. 面向对象的理论与C++实践 ,王燕,清华大学出版社 2. Visual C++实用教程 ,郑阿奇 ,电子工业出版社 3. Visual C++6.0技术内幕,David J.Kruglinski著,北京希望电子出版社 (五)开课基本手段及课件 《面向对象技术与C++》是学生接触的第一门面向对象的编程语言课程,教学中重点、难点的处理主要是依靠强调基础知识,注意讲课方法,理论和实验相结合,将难点应用于实际工程实例中等方法,突出重点、化解难点,有意识、有目的、有重点地营造有利于学生能力发展的氛围,启发学生思维,促进学生能力的提高。 1.任务驱动式教学方法的使用 在教学过程中,重点体现任务式驱动的思想,全过程贯穿了任务式驱动的思想,建立了提出问题、分析问题、解决问题的思路,使学生在任务前提下掌握知识。 2.加强基础知识的讲解 对于重点、难点中的基本知识(尤其是类和对象的基本概念、继承、多态),要重点讲解,讲透。 3.采取有效的讲课方法 对于重点、难点的问题,要采取有效的讲课方式和思路进行讲解,例如,启发式、循序渐进式、实例法等方法,可有效的突出重点、化解难点。 4.理论和实验相结合的方式 该课程是一门理论和实践结合非常紧密的课程,理论是实验的基础,实验是理论的验证和升华,因此,对于重点、难点问题,可利用上机实验,使学生亲身体会实验结果,反过来验证理论知识,使理论和实验达到共同提高。 5.利用现代化的教学手段 利用多媒体投影、电子教案、课件等方式,将抽象理论利用动画的方式描述出来,其直观、有效的教学手段对于教学中的重点、难点问题可起到化解的作用。 (六)制定(或修订)日期 2015年3月 |
参考书目: |
1. 面向对象的理论与C++实践 ,王燕,清华大学出版社 2. Visual C++实用教程 ,郑阿奇 ,电子工业出版社 3. Visual C++6.0技术内幕,David J.Kruglinski著,北京希望电子出版社 |
|
大纲内容 |
第01部分 总学时4 讲课 2 实验0 上机2 |
标 题:C++的初步知识 |
具体内容: (1) 从C到C++ (2)最简单的C++程序 (3)C++程序的构成和书写形式 (4)C++程序的编写和实现 (5)关于C++上机实践 |
重 点: C++程序的构成和书写形式 |
难 点: C++程序的编写和上机实践 |
|
第02部分 总学时6 讲课 4 实验0 上机2 |
标 题:类和对象 |
具体内容: 1 面向对象程序设计方法概述 2 类的声明和对象的定义 3 类的成员函数 4 对象成员的引用 5 类的封装性和信息隐蔽 6 类和对象的简单应用举例 |
重 点: 面向对象的特征,类和对象的定义,类的成员函数,对象成员的引用 |
难 点: 对象成员的引用 |
|
第03部分 总学时10 讲课 8 实验0 上机2 |
标 题:关于类和对象的进一步讨论 |
具体内容: 1 构造函数 2 析构函数 3 调用构造函数和析构函数的顺序 4 对象数组 5 对象指针 6 共用数据的保护 7 对象的动态建立和释放 8 对象的赋值和复制 9 静态成员 10 友元 11 类模板 |
重 点: 构造函数,析构函数,及它们的调用顺序,对象的使用,对象的动态建立和释放 ,对象的赋值和复制 |
难 点: 静态成员,友元,类模板 |
|
第04部分 总学时6 讲课 4 实验0 上机2 |
标 题:运算符重载 |
具体内容: 1 什么是运算符重载 2 运算符重载的方法 3 重载运算符的规则 4 运算符重载函数作为类成员函数和友元函数 5 重载双目运算符 6 重载单目运算符 7 重载流插入运算符和流提取运算符 8 不同类型数据间的转换 |
重 点: 运算符的使用包括,运算符重载的方法,重载运算符的规则,重载单、双目运算符 |
难 点: 运算符重载函数作为类成员函数和友元函数 |
|
第05部分 总学时8 讲课 6 实验0 上机2 |
标 题:继承与派生 |
具体内容: 1 继承与派生的概念 2 派生类的声明方式 3 派生类的构成 4 派生类成员的访问属性 5 派生类的构造函数和析构函数 6 多重继承 7 基类与派生类的转换 8 继承与组合 9 继承在软件开发中的重要意义 |
重 点: 派生类的声明方式, 派生类的构成,派生类成员的访问属性,派生类的构造函数和析构函数 |
难 点: 派生类的构造函数和析构函数、多重继承 |
|
第06部分 总学时4 讲课 2 实验0 上机2 |
标 题:多态性与虚函数 |
具体内容: 1 多态性的概念 2 虚函数 3 纯虚函数与抽象类 |
重 点: 多态性和虚函数,抽象类 |
难 点: 纯虚函数的使用 |
|
第07部分 总学时6 讲课 4 实验0 上机2 |
标 题:输入输出流 |
具体内容: 1 C++的输入和输出 2 标准输出流 3 标准输入流 4 文件操作与文件流 5 字符串流 |
重 点: 标准输入、输出流 |
难 点: 文件操作与文件流 |
|
第08部分 总学时4 讲课 2 实验0 上机2 |
标 题:C++工具 |
具体内容: 1 异常处理 2 命名空间 3 使用早期的函数库 |
重 点: 异常处理,命名空间 |
难 点: 异常处理 |
|
|
课时分配表 |
内容 |
学时 |
讲课 |
实验 |
上机 |
备注 |
第01部分 C++的初步知识 |
4 |
2 |
0 |
2 |
|
第02部分 类和对象 |
6 |
4 |
0 |
2 |
|
第03部分 关于类和对象的进一步讨论 |
10 |
8 |
0 |
2 |
|
第04部分 运算符重载 |
6 |
4 |
0 |
2 |
|
第05部分 继承与派生 |
8 |
6 |
0 |
2 |
|
第06部分 多态性与虚函数 |
4 |
2 |
0 |
2 |
|
第07部分 输入输出流 |
6 |
4 |
0 |
2 |
|
第08部分 C++工具 |
4 |
2 |
0 |
2 |
|
|
|
实验内容 |
第01部分 C++的初步知识 总学时4 讲课2 实验0 上机2 |
实验上机: 实验一(编写一个简单的C++程序) |
第02部分 类和对象 总学时6 讲课4 实验0 上机2 |
实验上机: 实验二(编写一个包含类的程序并测试) |
第03部分 关于类和对象的进一步讨论 总学时10 讲课8 实验0 上机2 |
实验上机: 实验三(编写程序测试类的高级特征) |
第04部分 运算符重载 总学时6 讲课4 实验0 上机2 |
实验上机: 实验四(编写程序实现运算符重载) |
第05部分 继承与派生 总学时8 讲课6 实验0 上机2 |
实验上机: 实验五(编写程序实现类的继承与派生) |
第06部分 多态性与虚函数 总学时4 讲课2 实验0 上机2 |
实验上机: 实验六(编写程序实现类的多态性) |
第07部分 输入输出流 总学时6 讲课4 实验0 上机2 |
实验上机: 实验七(编写程序测试输入输出流) |
第08部分 C++工具 总学时4 讲课2 实验0 上机2 |
实验上机: 实验八(编写程序测试C++工具) |
|