c++面向对象程序设计第三版谭浩强教学大纲(完整版)
- 格式:doc
- 大小:1023.50 KB
- 文档页数:6
第7章输入输出流7.1 C++的输入和输出7.1.1输入输出的含义7.1.2 C++的I/O对C的发展——类型安全和可扩展性7.1.3 C++的输入输出流1. iostream类库中有关的类图7.12C++面向对象程序设计图7.2图7.3C++面向对象程序设计 32. 与iostream类库有关的头文件3. 在iostream头文件中定义的流对象4. 在iostream头文件中重载运算符7.2标准输出流7.2.1 cout,cerr和clog流1. cout流对象2. cerr流对象3. clog流对象4C++面向对象程序设计7.2.2格式输出1. 使用控制符控制输出格式2. 用流对象的成员函数控制输出格式C++面向对象程序设计 57.2.3用流成员函数put输出字符7.3标准输入流7.3.1 cin流7.3.2用于字符输入的流成员函数1. 用get函数读入一个字符2. 用成员函数getline函数读入一行字符7.3.3 istream类的其他成员函数1. eof 函数2. peek函数3. putback函数6C++面向对象程序设计图7.44. ignore函数7.4文件操作与文件流7.4.1文件的概念图7.5C++面向对象程序设计7 7.4.2文件流类与文件流对象7.4.3文件的打开与关闭1. 打开磁盘文件8C++面向对象程序设计2. 关闭磁盘文件7.4.4对ASCII文件的操作7.4.5对二进制文件的操作1. 用成员函数read和write读写二进制文件2. 与文件指针有关的流成员函数C++面向对象程序设计93. 随机访问二进制数据文件7.5字符串流1. 建立输出字符串流对象2. 建立输入字符串流对象3. 建立输入输出字符串流对象习题1. 输入三角形的三边a,b,c,计算三角形的面积的公式是area=[]s(s-a)(s-b)(s-c)s=[]a+b+c[]2构成三角形的条件是: a+b>c, b+c>a, c+a>b编写程序,输入a,b,c,检查a,b,c是否满足以上条件,如不满足,由cerr输出有关出错信息。
第一章C++初步知识一、考核知识点1. C++简介2. C++的产生与发展、C++的特点。
3. 简单的C++程序4. C++程序结构、输入与输出、注释。
5. C++程序的上机执行过程二、考核要求1. 了解C++语言出现的历史背景、C++语言的特点2. 熟练掌握C++程序结构、C++程序的上机步骤第二章数据的存储,表示形式和基本运算一、考核知识点1. 字符集与标识符字符集、标识符、关键字2. 基本数据类型整型、字符型、布尔型、浮点型3. 常量数值型常量、字符型常量4. 变量变量的定义、常变量5. 运算符与表达式算术运算符与算术表达式、赋值运算符与赋值表达式、逗号运算符与逗号表达式、自增自减运算符、类型转换。
计算机中的数据表示6. 计算机中的数制、数值型数据的表示、字符型数据的编码表示二、考核要求1. 数据类型的定义2. 掌握C++语言的基本数据类型3. 掌握运算符的优先级和结合性4. 熟练掌握各类表达式求解规则第三章程序设计初步6. 功能语句与顺序结构程序设计赋值语句、空语句、复合语句、顺序结构程序设计7. 分支语句与分支结构程序设计关系表达式和逻辑表达式、if 语句、if ⋯else 语句、条件运算符与条件表达式、switch 语句8. 循环语句与循环结构程序设计for 循环语句、do⋯while 循环语句、while 循环语句、循环语句的嵌套9. 转移语句break 语句、continue 语句、goto 语句10. 程序举例。
算法与程序设计、算法设计与分析、程序设计风格二、考核要求3. 理解关系运算和逻辑运算、会计算逻辑表达式4. 理解分支结构及其作用。
熟练使用if 语句和switch 语句5. 掌握循环结构的设计,以及for 、while 和do⋯while 语句的使用7. 熟练使用while 和do⋯while 语句实现循环结构程序设计,掌握break 和continue 语句的使用8. 能熟练编写简单程序第四章利用函数实现指定的功能一、考核知识点5. 函数定义函数的定义、构成、参数6. 函数调用与函数声明函数调用、函数声明7. 函数的参数传递认形参值值传递、引用传递、函数的默8. 函数的嵌套与递归函数嵌套、函数递归9. 数组作函数参数数组元素作函数参数、一维数组名作函数参数、二维数组名作函数参数二、考核要求1. 熟练掌握函数的定义和调用2. 熟练使用函数编写程序3. 掌握函数的实参、形参和返回值的概念及使用第五章利用数组处理批量数据11. 数组的定义与使用一维数组的定义与使用、二维数组的定义与使用12. 数组的初始化一维数组的初始化、二维数组的初始化13. 数组应用举例一维数组应用、二维数组应用14. 字符串字符串变量的定义与使用、字符串变量的输入输出、字符串运算、字符串数组15. 字符数组字符数组的定义与使用二、考核要求6. 理解数组的基本概念7. 掌握一维数组的定义与引用8. 掌握二维数组的定义与引用9. 掌握字符数组的定义与引用、常用字符串处理函数及字符处理函数第六章善于使用指针与引用用户自定义类型一、考核知识点9. 指针变量内存单元地址、指针变量的定义10. 指针的赋值与运算指针的赋值、指针的运算11. 指针作为函数参数12. 指针与数组数组的地址、指针与一维数组、指针与二维数组、指针数组二、考核要求10. 了解指针与地址的概念11. 掌握指针变量的定义、初始化及指针的运算12. 掌握指针与数组13. 掌握指针作为函数参数的应用第七章用户自定义数据类型一、考核知识点4. 自定义数据类型的概念自定义数据类型的概念。
第一章§1-1 C语言出现的历史背景•C语言是国际上广泛流行的高级语言。
•C语言是在B语言的基础上发展起来的。
•B (BCPL)语言是1970年由美国贝尔实验室设计的, 并用于编写了第一个UNIX操作系统,在PDP 7上实现。
优点:精练,接近硬件,缺点:过于简单,数据无类型。
•1973年贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言,对B取长补短,并用之改写了原来用汇编编写的UNIX,(即UNIX第5版),但仅在贝尔实验室使用。
§1-1C语言出现的历史背景•1975年UNIX第6版发布,C优点突出引起关注。
•1977年出现了《可移植C语言编译程序》 ,推动了UNIX在各种机器上实现 ,C语言也得到推广,其发展相辅相成。
•1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。
•之后,C语言先后移植到大、中、小、微型计算机上,已独立于UNIX和PDP,风靡世界,成为最广泛的几种计算机语言之一。
§1-1C语言出现的历史背景•1983年,美国国家标准化协会(ANSI)根据C语言各种版本对C的发展和扩充,制定了新的标准ANSI C ,比标准C有了很大的发展。
•1988年K & R按照 ANSI C修改了他们的《TheC Programming Language》。
•1987年,ANSI公布了新标准——87 ANSI C。
•1990年,国际标准化组织接受了87 ANSI C为ISO C 的标准(ISO9899—1990)。
•1994年,ISO又修订了C语言标准。
•目前流行的C语言编译系统大多是以ANSI C为基础进行开发的。
说明: 不同版本的C编译系统所实现的语言功能和语法规则又略有差别,因此读者应了解所用的C语言编译系统的特点(可以参阅有关手册)。
c程序设计教程谭浩强第三版C程序设计教程是谭浩强教授编写的一本广受欢迎的C语言学习教材。
第三版在前两版的基础上做了进一步的修订和完善,更加适合初学者和中级学习者使用。
本教程涵盖了C语言的基础知识、语法规则、程序设计技巧以及一些高级主题。
以下是对这本教程的详细内容概述。
第一章:C语言概述本章介绍了C语言的发展历程、特点和应用领域,让读者对C语言有一个整体的认识。
同时,也介绍了C语言程序的基本结构和编译、链接过程。
第二章:数据类型、运算符和表达式这一章详细讲述了C语言中的基本数据类型,包括整型、浮点型、字符型等,以及它们在内存中的存储方式。
此外,还介绍了各种运算符的用法和优先级,以及如何构建表达式。
第三章:控制语句控制语句是程序设计中非常重要的部分,本章讲解了条件语句(if、switch)、循环语句(for、while、do-while)以及跳转语句(break、continue、goto)的用法和应用场景。
第四章:数组数组是C语言中一种基本的数据结构,用于存储具有相同类型的多个数据项。
本章介绍了一维数组和二维数组的声明、初始化和访问方法。
第五章:指针指针是C语言的核心概念之一,本章深入讲解了指针的基本概念、指针与数组的关系、指针的运算以及指针在函数中的应用。
第六章:函数函数是程序模块化的基础,本章介绍了函数的定义、声明、调用以及参数传递机制。
同时,也讨论了递归函数和内联函数的概念。
第七章:预处理指令预处理指令是C语言编译过程中的指令,用于在编译前对源代码进行处理。
本章介绍了宏定义、文件包含、条件编译等预处理指令的用法。
第八章:结构体和联合体结构体和联合体是C语言中用于创建复杂数据类型的工具。
本章讲解了它们的声明、初始化以及在程序中的应用。
第九章:位运算位运算是直接对数据的二进制位进行操作的运算。
本章介绍了位运算符的用法和一些常见的位运算技巧。
第十章:文件操作文件操作是程序与外部数据交互的重要方式。
第6章多态性与虚函数6.1多态性的概念6.2一个典型的例子6.3虚函数6.3.1虚函数的作用6.3.2静态关联与动态关联6.3.3在什么情况下应当声明虚函数6.3.4虚析构函数6.4纯虚函数与抽象类6.4.1纯虚函数6.4.2抽象类6.4.3应用实例习题1. 在例6.1程序基础上作一些修改。
定义Point(点)类,由Point类派生出Circle(圆)2C++面向对象程序设计类,再由Circle类派生出Cylinder(圆柱体)类。
将类的定义部分分别作为3个头文件,对它们的成员函数的声明部分分别作为3个源文件(.cpp文件),在主函数中用#include命令把它们包含进来,形成一个完整的程序,并上机运行。
2. 请比较函数重载和虚函数。
在概念和使用方式方面有什么区别?3. 在例6.3的基础上作以下修改,并作必要的讨论。
(1) 把构造函数修改为带参数的函数,在建立对象时初始化。
(2) 先不将析构函数声明为virtual,在main函数中另设一个指向Circle类对象的指针变量,使它指向grad1。
运行程序,分析结果。
(3) 不作第(2)点的修改而将析构函数声明为virtual,运行程序,分析结果。
4. 写一个程序,定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时给定。
5. 写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。
用虚函数分别计算几种图形面积,并求它们的和。
要求用基类指针数组,使它的每一个元素指向一个派生类对象。
第一章C++初步知识
一、考核知识点
1.C++简介
2.C++的产生与发展、C++的特点。
3.简单的C++程序
4.C++程序结构、输入与输出、注释。
5.C++程序的上机执行过程
二、考核要求
1.了解C++语言出现的历史背景、C++语言的特点
2.熟练掌握C++程序结构、C++程序的上机步骤
第二章数据的存储,表示形式和基本运算
一、考核知识点
1.字符集与标识符
字符集、标识符、关键字
2.基本数据类型
整型、字符型、布尔型、浮点型
3.常量
数值型常量、字符型常量
4.变量
变量的定义、常变量
5.运算符与表达式
算术运算符与算术表达式、赋值运算符与赋值表达式、逗号运算符与逗号表达式、自
增自减运算符、类型转换。
计算机中的数据表示
6.计算机中的数制、数值型数据的表示、字符型数据的编码表示
二、考核要求
1.数据类型的定义
2.掌握C++语言的基本数据类型
3.掌握运算符的优先级和结合性
4.熟练掌握各类表达式求解规则
第三章程序设计初步
6.功能语句与顺序结构程序设计
赋值语句、空语句、复合语句、顺序结构程序设计
7.分支语句与分支结构程序设计
关系表达式和逻辑表达式、if 语句、if ⋯else 语句、条件运算符与条件表达式、switch 语句
8.循环语句与循环结构程序设计
for 循环语句、do ⋯while 循环语句、while 循环语句、循环语句的嵌套
9.转移语句
break 语句、continue 语句、goto 语句
10.程序举例
算法与
程序设计、算法设
计与分析、程序 二、考核要求 3.理解关系运算和逻辑运算、会计算逻辑表达式
4.理解分支结构及其作用。
熟练使用if 语句和switch 语句
5.掌握循环结构的设计,以及f or 、while 和do ⋯while 语句的使用
7.熟练使用while 和do ⋯while 语句实现循环结构程序设计,掌握break 和continue 语句的使 用 8.能熟练编写简单程序
第四章利用函数实现指定的功能
一、考核知识点
5.函数定义
函数的定义、构成、参数
6.函数调用与函数声明
函数调用、函数声明
7.函数的参数传递
值
传递、引用传递、函
认形参值 8.函数的嵌套与递归
函数嵌套、函数递归
9.数组作函数参数
数组元素作函数参数、一维数组名作函数参数、二维数组名作函数参数
二、考核要求
1.熟练掌握函数的定义和调用
2.熟练使用函数编写程序
3.掌握函数的实参、形参和返回值的概念及使用
第五章利用数组处理批量数据
2
11.数组的定义与使用
一维数组的定义与使用、二维数组的定义与使用
12.数组的初始化
一维数组的初始化、二维数组的初始化
13.数组应用举例
一维数组应用、二维数组应用
14.字符串
字符串变量的定义与使用、字符串变量的输入输出、字符串运算、字符串数组15.字符数组
字符数组的定义与使用
二、考核要求
6.理解数组的基本概念
7.掌握一维数组的定义与引用
8.掌握二维数组的定义与引用
9.掌握字符数组的定义与引用、常用字符串处理函数及字符处理函数
第六章善于使用指针与引用用户自定义类型
一、考核知识点
9.指针变量
内存单元地址、指针变量的定义
10.指针的赋值与运算
指针的赋值、指针的运算
11.指针作为函数参数
12.指针与数组
数组的地址、指针与一维数组、指针与二维数组、指针数组
二、考核要求
10.了解指针与地址的概念
11.掌握指针变量的定义、初始化及指针的运算
12.掌握指针与数组
13.掌握指针作为函数参数的应用
第七章用户自定义数据类型
一、考核知识点
4.自定义数据类型的概念
自定义数据类型的概念。
16.自定义数据类型的定义与引用
结构体与共同体的定义。
枚举型数据定义与使用
17.枚举型数据定义与使用
二、考核要求
10.了解自定义数据类型的基本概念。
11.掌握自定义数据类型的定义与引用。
12.掌握常用自定义数据类型相关函数的使用。
第八章类和对象的程序设计
一、考核知识点
13.面向对象的基本概念:类,对象,封装,继承
14.类的声明和对象的定义方式,及访问权限(public,private,protected)。
15.默认情况下(未明确指出访问权限时)成员的访问权限是私有(private)。
16.类的成员函数的性质和在类外定义方式
二、考核要求
14.掌握面向对象程序设计的抽象与封装性
15.掌握类与对象的概念和使用
16.初步了解面向对象程序设计基本思想和方法
17.
第九章怎样使用类和对象
一、考核知识点
5.构造函数和析构函数
6.对象数组
7.对象指针
8.共用数据的保护
9.对象的赋值和复制
10.静态成员
11.友元
12.类模板
二、考核要求
1.掌握构造函数、析构函数以及复制构造函数的作用和实现方法
2.掌握对象指针以及this指针的用法
18.理解const关键字的使用原则
19.掌握静态成员、友元、类模板的使用方法
第十章运算符重载
一、考核知识点
13.运算符重载的方法和规则
14.重载双目运算符和单目运算符
3.重载流插入运算符和流提取运算符
二、考核要求
17.掌握运算符重载的方法和规则
18.掌握常用双目运算符和单目运算符的重载方法
19.掌握转换构造函数和类型转换函数的使用方法
第十一章继承和派生
一、考核知识点
18.派生类的定义和访问权限
19.不同继承方式下,数据成员及成员函数的访问权限变化。
20.派生类构造函数的书写
21.构造函数调用的次序
二、考核要求
13.掌握继承类与派生类的关系
14.掌握派生类成员的访问属性
15.理解继承与组合的区别
16.了解多重继承的使用
第十二章多态性与虚函数
一、考核知识点
3.多态的概念
2.虚函数
3.纯虚函数与抽象类
二、考核要求
1.理解多态的概念及使用;
2.掌握使用虚函数实现多态;
3.掌握纯虚函数与抽象类的使用
第十三章输入输出流
一、考核知识点
20.C++的输入与输出
21.标准输出流
3.标准输入流
4.文件操作
15.字符串流
二、考核要求
20.掌握istream、ostream类的用法
21.掌握文件的打开、关闭以及读写方法
22.了解字符串流的用法
第十四章c++工具
一、考核知识点
22.异常处理
23.命名空间
二、考核要求
17.掌握C++中的异常处理机制
18.掌握命名空间的用法。