C++语言程序设计教程与实验(第二版)(21世纪高等学校计算机基础实用规划教材)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 温秀梅,丁学钧,李建华主编
出 版 社: 清华大学出版社
出版时间: 2009-3-1字数:版次: 2页数: 285印刷时间:开本: 16开印次:纸张:I S B N : 9787302193784包装: 平装编辑推荐
本书是在前一版的基础上修订而成的。修编后的教材保持了与原书内容、风格一致,使采用原书的教师可以自然地过渡到新版教材。这次修编主要就以下几个方面进行了改进。全书根据教学改革、实践教学的需要和教师多年的教学经验,主要修改、增补了第3章、第4章的例题;在第5章中增加了函数的引用调用机制和函数调用中的数据流;修改了第12章中的文件输入输出流;修改了实验内容;新增了附录E课程设计任务书,供课程设计者使用。
内容简介
本书在体系结构的安排上,将C++语言的基础知识和一般的编程思想有机地结合起来,对于典型例题进行了详细的分析解释,除在每章后附有习题外,还在附录中整合了实验设计。
本书由3个部分组成。第1部分(第1~8章)是对C++语言基本特性的介绍,有些是和C语言有类似的地方。第2部分(第9~12章)是关于C++语言面向对象的基本思想及设计方法。这些是C语言中所没有的。正是这一部分,使得许多人认为C++语言太复杂,为了使普通读者易于理解,我们力争把这些内容写得简明扼要,通俗易懂,而又比较完整。第3部分是本书的附录部分,包括有重要的实验内容设计及Visual C++ 6.0环境介绍,这是掌握一种编程语言的重要环节。
本着少而精的原则,全书版面清晰、结构紧凑,知识信息含量高,特别适合作为非计算机专业本科生教学或计算机应用培训班的教材,同时,还可以作为自学或函授学习的参考书。
目录
第1章 绪论
1.1 C++语言发展史简介
1.2 程序设计概述
1.2.1 程序设计的发展历程-
1.2.2 结构化程序设计
1.2.3 面向对象程序设计
1.3 基本语法成分
1.3.1 字符集
1.3.2 标识符
1.3.3 关键字
1.3.4 运算符
1.3.5 分隔符
1.3.6 空白符
1.4 一个简单的C++程序
第2章 基本数据类型、运算符与表达式
2.1 数据类型概述
2.2 常量与变量
2.2.1 常量
2.2.2 变量
2.3 基本类型
2.3.1 整型
2.3.2 实型
2.3.3 字符型
2.3.4 布尔类型
2.3.5 void类型
2.4 运算符和表达式
2.4.1 赋值运算符和赋值表达式
2.4.2 算术运算符和算术表达式
2.4.3 关系运算符和关系表达式
2.4.4 逻辑运算符和逻辑表达式
2.4.5 条件运算符和条件表达式
2.4.6 逗号运算符和逗号表达式
2.5 类型转换
2.5.1 自动类型转换
2.5.2 强制类型转换
习题
第3章 结构化程序设计
3.1 C++语言输入输出流
3.1.1 C++语言无格式输入输出
3.1.2 C++语言格式输入输出
3.2 结构化程序设计概述
3.3 顺序结构程序设计
3.3.1 顺序结构
3.3.2 程序举例
3.4 选择结构程序设计
3.4.1 用if语句实现选择结构设计
3.4.2 用switch语句实现选择结构设计
3.5 循环结构程序设计
3.5.1 while语句
3.5.2 do-whiIe语句
3.5.3 for语句
3.5.4 跳转语句break和continue
3.5.5 循环的嵌套
3.6 程序设计举例
习题
第4章 数组
4.1 一维数组
4.1.1 一维数组的定义
4.1.2 一维数组元素的引用
4.1.3 一维数组的初始化
4.1.4 一维数组程序举例
4.2 二维数组
4.2.1 二维数组的定义
4.2.2 二维数组元素的引用
4.2.3 二维数组的初始化
4.2.4 二维数组程序举例
4.3 字符数组
4.3.1 字符数组的定义
4.3.2 字符数组的初始化
4.3.3 字符数组的使用
4.3.4 字符数组程序举例
4.3.5 字符串处理函数
4.3.6 字符串程序举例
习题
第5章 函数
5.1 函数的定义
5.1.1 定义函数
5.1.2 函数原型
5.2 函数的调用
5.2.1 调用函数
5.2.2 参数传递机制
5.2.3 函数返回值
5.2.4 函数调用中的数据流
5.3 函数的嵌套调用
5.4 递归函数
5.5 作用域与生命期
5.5.1 作用域
5.5.2 全局变量和局部变量
5.5.3 生命期
习题
第6章 指针
6.1 指针的基本概念
6.1.1 指针的概念
6.1.2 指针变量的定义
6.1.3 指针变量运算符
6.1.4 指针的初始化与赋值
6.1.5 指针的运算
6.2 指针与数组
6.2.1 指向数组的指针
6.2.2 指针与字符数组
6.2.3 多级指针与指针数组
6.2.4 指针与多维数组
6.2.5 数组指针
6.3 指针与函数
6.3.1 指针作为函数参数
6.3.2 函数调用中数组的传递
6.3.3 函数指针
习题
第7章 编译预处理命令
7.1 宏定义
7.1.1 不带参数的宏定义
7.1.2 带参数的宏
7.2 文件包含
7.3 条件编译
习题
第8章 结构体、共用体和枚举类型
8.1 结构体类型
8.2 定义结构体类型变量
8.2.1 先声明结构体类型再定义变量
8.2.2 声明结构体类型的同时定义变量
8.2.3 直接定义结构体类型变量
8.2.4 结构体变量的初始化
8.3 结构体变量成员的引用
8.4 结构体数组
8.4.1 结构体数组的定义
8.4.2 结构体数组的初始化
8.4.3 结构体数组应用举例
8.5 结构体指针
8.5.1 指向结构体变量的指针
8.5.2 指向结构体数组的指针
8.5.3 用结构体变量和指向结构体的指针作为函数参数
8.6 用指针处理链表
8.6.1 链表的概述
8.6.2 动态内存分配
8.6.3 建立单向动态链表
8.6.4 输出链表
8.6.5 对链表的删除操作
8.6.6 对链表的插人操作
8.7 共用体
8.7.1 共用体的概念
8.7.2 共用体类型和共用体类型变量的定义
8.7.3 共用体变量引用的方式
8.7.4 共用体类型的特点
8.8 枚举类型
8.8.1 枚举类型及枚举变量的定义
8.8.2 枚举元素的引用
8.8.3 用typedef定义类型
习题
第9章 面向对象程序设计基础
9.1 面向对象程序设计概述
9.1.1 面向对象是软件方法学的返璞归真
9.1.2 面向对象程序设计语言的四大家族
9.1.3 面向对象程序分析OOA与设计OOD的基本步骤
9.2 类和对象
9.2.1 类
9.2.2 对象
9.2.3 名字解析和this指针
9.3 带默认参数的函数和函数重载
9.3.1 带默认参数的函数
9.3.2 函数重载
9.4 构造函数和析构函数
9.4.1 构造函数
9.4.2 析构函数
9.5 对象成员和静态成员
9.5.1 对象成员
9.5.2 静态成员
9.6 友元
9.7 类模板和模板类
习题
第10章 继承与派生
10.1 单一继承
10.1.1 继承与派生
10.1.2 派生类的定义
10.1.3 类的继承方式
10.1.4 派生类的构造函数和析构函数
10.2 多重继承
10.2.1 多重继承的概念和定义
10.2.2 二义性和支配规则
10.2.3 赋值兼容规则
10.3 虚基类
10.3.1 虚基类的概念
10.3.2 多重继承的构造函数和析构函数
习题
第11章 多态性与虚函数
11.1 运算符重载
11.1.1 什么是运算符重载
11.1.2 用成员函数重载运算符
11.1.3 用友元函数重载运算符
11.1.4 几个运算符的重载
11.2 虚函数
11.2.1 为什么要引入虚函数
11.2.2 虚函数的定义与使用
11.3 纯虚函数和抽象类
11.3.1 纯虚函数的概念
11.3.2 抽象类的概念
11.4 虚析构函数
习题
第12章 输入输出流
12.1 标准输入输出流
12.1.1 输入输出流的概念
12.1.2 C++所有输入输出类的继承关系
12.2 文件输入输出流
习题
附录A 程序的调试与运行
附录B 标准字符ASCII表
附录C 实验
附录D 模拟考试题
附录E 课程设计任务书
附录F 参考课时安排
书摘插图
第1章绪论
1.1C++语言发展史简介
C++语言是从C语言发展演变而来的,因此在介绍C++语言之前,首先介绍一下C语言。1972年至1973年问,美国贝尔实验室的Denis.M.Ritchie在一台DEC PDP-11计算机上实现了基于8语言的最初C语言。C语言的产生基于两个方面的需要:一是为满足UNIX操作系统开发的需要,二是为拉近高级语言与硬件之问距离的需要。目前,比较流行的C语言版本基本上都是以ANSI C为基础的。
C语言具有以下一些特点:
(1)语言简洁、紧凑,使用方便、灵活。
(2)运算符和数据结构丰富,具有结构化的控制语句,生成目标代码质量高,程序执行效率高。
(3)语法限制不太严格,程序设计自由度大。
(4)与其他高级语言相比,具有可以直接访问物理地址,能进行位运算的优点。
(5)与汇编语言相比,具有良好的可读性和可移植性。
C语言盛行的同时,其局限性也逐渐暴露出来:
(1)C语言类型检查机制相对较弱,这使得程序中的一些错误不能在编译时被发现,这些错误若是遗留到程序的运行阶段由程序员来检查,将是很困难的。
(2)C语言本身几乎没有支持代码重用的语言结构,因此一个程序员精心设计的程序,很难为其他程序所用。
(3)C语言不适合开发大型程序,当程序的规模达到一定的程度时,程序员很难控制程序的复杂性。
……