第1篇 C++语言基础与面向过程程序设计 2
第1章 C++及其开发环境概述 2
1.1 面向对象的程序设计概述 2
1.1.1 什么是面向对象的程序设计思想 2
1.1.2 面向过程与面向对象程序设计特点比较 4
1.1.3 两种程序设计方法对比分析 5
1.2 从C到C++的演变 6
1.3 认识C++程序及其开发环境 7
1.3.1 C++程序的开发过程 7
1.3.2 认识C++程序 8
1.3.3 熟悉C++开发环境——Visual C++ 6.0 10
上机实训 12
实训1-1 编写并运行C++程序 12
实训1-2 熟悉Visual C++工作区与工程的使用 15
本章小结 19
习题与上机练习 19
第2章 C++程序设计基础(上) 21
2.1 C++的数据类型 21
2.1.1 C++数据类型概述 22
2.1.2 关于数值的范围 24
2.1.3 数据类型的转换 25
2.1.4 sizeof操作符 27
2.2 常量和变量 28
2.2.1 常量的类型与符号常量的声明 28
2.2.2 变量的命名、定义与声明 32
2.3 C++的运算符、表达式和优先级 34
2.3.1 算术运算符与算术表达式 35
2.3.2 赋值运算符与赋值表达式 37
2.3.3 关系运算符与关系表达式 38
2.3.4 逻辑运算符与逻辑表达式 39
2.3.5 条件运算符及其表达式 40
2.3.6 逗号运算符及其表达式 41
2.3.7 位运算符和位运算 42
2.3.8 运算符的优先级 43
上机实训 44
实训2-1 输出多种立体的的体积 44
实训2-2 判断三角形类型并求解其面积 47
本章小结 49
习题与上机练习 49
第3章 C++程序设计基础(下) 52
3.1 C++语句的类型 52
3.1.1 声明语句 52
3.1.2 执行语句 53
3.1.3 空语句 54
3.1.4 复合语句 54
3.2 数据的输入输出 54
3.2.1 输入语句 54
3.2.2 输出语句 55
3.2.3 输入/输出的格式控制 56
3.3 程序的流程控制 58
3.3.1 选择结构 58
3.3.2 循环结构 65
3.3.3 转向语句 70
3.4 预处理命令 73
3.4.1 宏定义 73
3.4.2 文件包含 74
3.4.3 条件编译 75
上机实训 76
实训3-1 根据输入的年龄判断所属年龄阶段 76
实训3-2 将输入数字转换为以汉字形式输出的货币金额 77
实训3-3 输出杨辉三角 80
本章小结 82
习题与上机练习 83
第4章 函数的应用 87
4.1 函数声明 87
4.1.1 函数的定义 88
4.1.2 函数原型的声明 90
4.2 函数的参数与返回值 92
4.2.1 函数的参数 92
4.2.2 函数的返回值 94
4.3 函数调用 95
4.3.1 函数调用的一般形式 95
4.3.2 函数的嵌套调用 95
4.3.3 函数的递归调用 97
4.4 内联函数 99
4.5 函数重载 100
4.6 变量的存储属性 102
4.6.1 变量的作用域 102
4.6.2 变量的存储类别 105
4.7 内部函数和外部函数 108
上机实训 109
实训4-1 编排日历 109
实训4-2 求两点间距离 112
实训4-3 汉诺塔问题求解 113
实训4-4 用二分法迭代求解方程 114
本章小结 115
习题与上机练习 116
第5章 数组与字符串 119
5.1 认识数组 119
5.2 一维数组 119
5.2.1 一维数组的定义 120
5.2.2 一维数组的初始化 121
5.2.3 一维数组元素的引用 122
5.2.4 一维数组的应用 122
5.3 二维数组 125
5.3.1 二维数组的定义 125
5.3.2 二维数组的初始化 126
5.3.3 二维数组元素的引用 128
5.3.4 二维数组的应用 128
5.4 数组在函数中的应用 131
5.5 字符数组与字符串 132
5.5.1 字符数组的定义和初始化 132
5.5.2 字符数组的输入输出 133
5.5.3 字符串处理函数 134
5.6 字符串类和字符串变量 136
5.6.1 字符串变量 136
5.6.2 字符串数组 137
上机实训 138
实训5-1 插入排序 138
实训5-2 打印逆时针螺旋方阵 139
实训5-3 找出最大字符串 140
本章小结 141
习题与上机练习 142
第6章 指针与引用 147
6.1 指针与指针变量 147
6.1.1 指针的概念 147
6.1.2 指针变量的定义及应用 148
6.1.3 指针运算 151
6.1.4 new和delete运算符 153
6.2 指针与数组 154
6.2.1 指向一维数组的指针 154
6.2.2 二维数组的访问 156
6.3 指针与字符串 159
6.4 指针与函数 160
6.4.1 指针作函数参数 160
6.4.2 指向数组的指针作函数参数 162
6.4.3 返回指针的函数 163
6.4.4 指向函数的指针 164
6.5 指针数组和指向指针的指针 166
6.6 引用 169
6.6.1 变量的引用 169
6.6.2 引用作为函数的参数 170
上机实训 171
实训6-1 降序输出数据 171
实训6-2 矩阵转置 172
实训6-3 输出成绩 174
本章小结 176
习题与上机练习 176
第7章 自定义数据类型 181
7.1 结构体 181
7.1.1 结构体变量的定义、初始化及使用 182
7.1.2 结构体数组的定义、初始化及使用 186
7.1.3 指向结构体变量的指针 189
7.1.4 结构体作为函数参数 191
7.2 共用体 192
7.2.1 共用体变量的定义与初始化 193
7.2.2 共用体变量的使用 194
7.3 枚举类型 195
7.3.1 枚举类型变量的定义与初始化 195
7.3.2 枚举类型变量的使用 195
7.4 typedef声明 197
上机实训 198
实训7-1 输出教师信息 198
实训7-2 输出每种动物的信息 200
本章小结 202
习题与上机练习 203
第2篇 C++面向对象程序设计 208
第8章 类和对象 208
8.1 类 208
8.1.1 类的声明 208
8.1.2 类成员的访问属性 209
8.1.3 成员函数的定义 209
8.2 对象 211
8.2.1 对象的定义 211
8.2.2 对象成员的引用 213
8.2.3 类和对象的应用举例 213
8.3 构造函数 215
8.3.1 构造函数概述 215
8.3.2 带参数的构造函数 216
8.3.3 带默认参数的构造函数 217
8.3.4 带参数初始化表的构造函数 218
8.3.5 构造函数的重载 219
8.3.6 拷贝构造函数 221
8.4 析构函数 222
8.5 对象数组 223
8.5.1 对象数组的定义 223
8.5.2 对象数组的初始化 224
8.6 对象指针 225
8.6.1 对象指针的声明与使用 225
8.6.2 指向对象成员的指针 226
8.6.3 this指针 227
8.7 静态成员 228
8.7.1 静态数据成员 228
8.7.2 静态成员函数 230
8.8 友元 233
8.8.1 友元函数 233
8.2.2 友元类 234
上机实训 235
实训8-1 模拟存款与取款过程 235
本章小结 238
习题与上机练习 238
第9章 继承与派生 240
9.1 类的继承与派生概述 240
9.1.1 继承与派生的概念 240
9.1.2 派生类的声明 241
9.1.3 派生类的构成 242
9.1.4 派生类的继承方式 243
9.1.5 派生类的构造函数和析构函数 248
9.2 多重继承 254
9.2.1 多重继承的声明 254
9.2.2 多重继承派生类的构造函数 254
9.2.3 二义性问题 256
9.3 虚基类 260
9.3.1 虚基类的声明 260
9.3.2 虚基类的构造函数 261
上机实训 263
实训9-1 通话计费 263
实训9-2 工资管理 266
本章小结 271
习题与上机练习 271
第10章 多态性、虚函数与运算符重载 272
10.1 多态性的概念 272
10.2 虚函数 272
10.3 纯虚函数与抽象类 274
10.4 运算符重载 275
10.4.1 运算符重载的定义 275
10.4.2 运算符重载的形式 277
10.4.3 常用运算符的重载 281
10.5 实现类型转换 284
上机实训 286
实训10-1 利用虚函数求不同图形的面积 286
实训10-2 实现复数的简单运算 288
本章小结 290
习题与上机练习 290
第11章 输入/输出流 292
11.1 C++的输入/输出 292
11.1.1 流与缓冲区 292
11.1.2 输入/输出流类 292
11.2 标准输入输出流 294
11.2.1 标准输入流对象cin 294
11.2.2 输入流的成员函数 295
11.2.3 标准输出流对象 299
11.2.4 输入/输出的格式控制 300
11.2.5 流运算符的重载 304
11.3 文件流 306
11.3.1 文件的特点 307
11.3.2 文件流类和流对象 307
11.3.3 文件的打开与关闭 308
11.3.4 文件的读写操作 310
11.3.5 文件指针的使用 313
11.3.6 二进制文件的应用实例(选读) 314
上机实训 318
实训11-1 求解一元二次方程 318
实训11-2 数据的写入与读出 319
本章小结 321
习题与上机练习 321
第12章 命名空间与异常处理 323
12.1 命名空间 323
12.1.1 命名空间的定义 325
12.1.2 命名空间成员的引用 328
12.2 异常处理 331
12.2.1 异常处理的实现 331
12.2.2 类的异常处理 337
12.2.3 异常规范 338
上机实训 340
实训12-1 显示学生的个人信息和购书信息 340
实训12-2 学生考勤情况统计 342
本章小结 347
习题与上机练习 347
第13章 模板的使用 350
13.1 模板概述 350
13.1.1 函数模板 351
13.1.2 类模板 351
13.2 函数模板 352
13.2.1 函数模板的定义 352
13.2.2 函数模板的应用 353
13.3 类模板 354
13.3.1 类模板的定义 354
13.2.2 类模板的应用 355
上机实训 357
实训13-1 冒泡排序 357
实训13-2 选择不同的排序方法排序 360
本章小结 362
习题与上机练习 362