第一章 绪论 1
1.1 程序设计与程序设计语言 1
1.1.1 计算机与程序设计 1
1.1.2 程序设计语言 2
1.1.3 程序设计方法理论的发展 4
1.1.4 程序设计技术的四个层次 10
1.2 C++语言概述 12
1.2.1 为什么选择C++语言 13
1.2.2 c++语言简史 14
1.2.3 C++语言的特点 16
1.3 本书的宗旨及内容安排 18
1.3.1 讲授C++语言的困难 18
1.3.2 本书指导思想 20
1.3.3 本书内容安排 22
思考题 23
第二章 C++语言初步 24
2.1 初识C++程序 24
2.1.1 程序实例 24
2.1.2 I/O语句 28
2.2 C++语言的基本符号 29
2.2.1 基本符号分类 30
2.2.2 基本符号的ASCII编码 30
2.3 C++语言的词汇 32
2.3.1 关键字 32
2.3.2 标识符 34
2.3.3 字面常量 34
2.3.4 运算符 37
2.3.5 分割符 38
2.4 C++程序的基本框架 38
2.4.1 主函数 38
2.4.2 预处理命令 41
2.4.3 C++程序的SP框架 46
2.4.4 C++程序的OOP框架 48
2.5 运行C++程序 51
2.5.1 编辑C++程序 51
2.5.2 编译和链接过程 51
思考题 53
练习题 53
第三章 基本数据类型与基本运算 55
3.1 包含简单计算的C++程序 55
3.1.1 程序实例:求两数之和 55
3.1.2 程序实例:计算圆面积 56
3.2 基本类型及其派生类型 57
3.2.1 数据类型的概念 57
3.2.2 基本类型 59
3.2.3 基本类型的派生类型 60
3.2.4 enum类型 61
3.3 说明语句 62
3.3.1 语句 62
3.3.2 常量和变量 63
3.3.3 常量说明 63
3.3.4 变量说明 64
3.3.5 类型说明 68
3.4 基本运算符 69
3.4.1 运算符和表达式的概念 69
3.4.2 运算类型与运算符 70
3.4.3 赋值运算 70
3.4.4 算术运算 71
3.4.5 关系运算 72
3.4.6 逻辑运算 73
3.4.7 位运算 74
3.4.8 其他运算 75
3.4.9 运算的优先级 78
3.4.10 运算与运算符小结 80
思考题 81
练习题 82
第四章 基本控制结构与导出数据类型 84
4.1 控制语句、复合语句和空语句 84
4.1.1 简单的计算器程序 84
4.1.2 控制语句 85
4.1.3 复合语句和空语句 86
4.2 分支语句 87
4.2.1 分支语句 87
4.2.2 温度值变换程序 90
4.3 循环语句 93
4.3.1 循环语句 93
4.3.2 求素数 96
4.3.3 计算常数e的值 97
4.4 转向语句 98
4.5 数据导出类型(1),数组(Array) 100
4.5.1 导出类型的概念 100
4.5.2 一维数组 101
4.5.3 多维数组 103
4.5.4 数组与字符串 104
4.6 C++程序实例 105
4.6.1 统计学生成绩 105
4.6.2 输出三角函数表 108
4.6.3 画一个四叶玫瑰线图形 109
4.6.4 Eratosthenes筛法求素数 112
思考题 113
练习题 113
第五章 函数,函数与运算符的重载 115
5.1 三次方程求根程序的设计 115
5.2 函数的说明与使用 117
5.2.1 函数说明 117
5.2.2 函数调用 119
5.2.3 函数的返回 119
5.2.4 函数的参数 120
5.2.5 值调用与引用调用 121
5.2.6 函数的嵌套与递归 123
5.2.7 内联函致 125
5.3 函数与运算符的重载 125
5.3.1 函数重载 125
5.3.2 可重载运算符 127
5.3.3 运算符重载函数的定义 129
5.4 程序实例 129
5.4.1 “三色冰激凌”程序 130
5.4.2 Hanoi塔问题 132
思考题 134
练习题 134
第六章 指针,引用与动态内存分配 136
6.1 选择排序算法 136
6.2 导出数据类型(2),指针 138
6.2.1 指针变量说明 138
6.2.2 指针变量的操作 140
6.2.3 指针与数组 142
6.2.4 字符串指针 143
6.2.5 指针与函数 146
6.3 指针与动态内存分配 148
6.3.1 动态分配运算符 148
6.3.2 用指针进行内存动态分配 149
6.4 导出数据类型(3),引用 150
6.5 程序实例 153
6.5.1 按人名字典序排列电话簿 153
6.5.2 构建人员档案链表 156
思考题 159
练习题 159
第七章 类与对象 162
7.1 设计一个栈类 163
7.2 类和对象的说明 165
7.2.1 类说明和对象说明 165
7.2.2 对象的初始化,构造与析构函数 167
7.2.3 静态成员 169
7.2.4 友元 170
7.2.5 类作为用户定义的数据类型(运算符重载) 171
7.2.6 this指针 177
7.2.7 常量成员 177
7.2.8 结构与联合 179
7.2.9 类之间的关系 180
7.3 程序实例 182
思考题 187
练习题 188
第八章 继承与派生 190
8.1 公司雇员档案的管理 190
8.2 派生类 193
8.2.1 派生类说明 193
8.2.2 派生类的构造函数和析构函数 195
8.2.3 其他特征的继承关系 198
8.2.4 派生关系中的二义性处理 199
8.3 多态性与虚函数 200
8.3.1 超载与动态联编 201
8.3.2 基类指针与派生类指针 201
8.3.3 虚函数 202
8.3.4 抽象基类 204
8.4 程序实例 205
8.4.1 计算函数的定积分 205
8.2.2 利用图元类画图 208
思考题 212
练习题 213
第九章 模板 216
9.1 一个队列模板 216
9.2 模板说明 218
9.2.1 类模板说明 218
9.2.2 函数模板说明 221
9.2.3 关于模板若干问题的说明 223
9.3 程序实例:链表模板的设计 226
思考题 229
练习题 229
第十章 输入输出流 230
10.1 流类库的优点 230
10.2 文件与流的概念 232
10.3 C++的流类库 232
10.4 I/O的格式控制 234
10.4.1 用于格式控制的类ios成员函数 234
10.4.2 格式控制符 237
10.4.3 用户定义格式控制符 238
10.5 其他输入输出控制函数 240
10.5.1 I/O操作状态控制 240
10.5.2 其他I/O控制 241
10.6 文件I/O 243
10.6.1 文件的打开与关闭 244
10.6.2 文件的读写操作 245
思考题 249
练习题 249
第十一章 用C++语言设计面向对象程序 251
11.1 仿真系统程序的总体设计 251
11.2 仿真程序simulation的框架 253
11.3 电梯运行系统 257
11.4 person类的设计 260
11.5 floor类的设计 269
11.6 elevator类的设计 275
11.7 办公大楼电梯运行仿真系统 283
思考题 287
练习题 287
附录 288
附录A Visual C++6.0编程环境简介 288
附录B 标准函数 296
附录C 关键词索引 301