第1章 C++语言简介 1
本章目标 1
授课内容 1
1.1 C++程序的基本结构 1
1.2 算法与程序 2
1.3 C++程序的基本要素 4
1.3.1 标识符、关键字和标点符号 4
1.3.2 注释 5
1.3.3 输入与输出 5
1.4 分析问题、编码、运行 6
自学内容 8
1.5 程序设计语言的发展 8
1.6 C++语言背景介绍 10
程序设计举例 11
编程提示 15
小结 16
习题 16
第2章 基本数据类型与表达式 18
本章目标 18
授课内容 18
2.1 数据类型 18
2.2 常量 20
2.2.1 整型常量 20
2.2.2 实型常量 20
2.2.3 字符常量 21
2.2.4 字符串常量 22
2.2.5 布尔型常量 22
2.3 变量 23
2.3.1 变量的定义 23
2.3.2 变量的初始化 24
2.4 运算符与表达式 24
2.4.1 算术运算符和算术表达式 25
2.4.2 关系运算符和关系表达式 25
2.4.3 逻辑运算符和逻辑表达式 25
2.4.4 赋值运算符和赋值表达式 26
2.4.5 自增运算符和自减运算符 27
2.5 表达式中各运算符的运算顺序 28
2.6 类型不同的数据之间的混合算术运算 29
自学内容 31
2.7 类型修饰符 31
2.8 typedef语句 31
2.9 常量修饰符 32
2.10 八进制和十六进制常量 32
2.11 位运算表达式 34
2.12 其他具有副作用的运算符 37
程序设计举例 37
编程提示 42
小结 42
习题 43
第3章 控制结构 45
本章目标 45
授课内容 45
3.1 程序的基本控制结构 45
3.2 C++的控制结构 47
3.2.1 顺序结构 47
3.2.2 选择结构 48
3.2.3 循环结构 52
自学内容 55
3.3 C++的其他控制转移语句 55
3.4 表达式语句 57
程序设计举例 59
实例编程——模拟仿真 63
编程提示 67
小结 67
习题 68
第4章 数组与字符串 69
本章目标 69
授课内容 69
4.1 数组 69
4.1.1 一维数组 70
4.1.2 二维数组 72
4.1.3 多维数组 74
4.2 字符型数组和字符串处理库函数 75
4.2.1 字符型数组的定义和初始化 75
4.2.2 字符串的输入与输出 75
4.2.3 字符串处理库函数 76
自学内容 78
4.3 C++的string类 78
程序设计举例 81
实例编程——Josephus问题 87
编程提示 89
小结 89
习题 90
第5章 函数 91
本章目标 91
授课内容 91
5.1 函数概述 91
5.2 函数的定义 91
5.3 函数的调用 93
5.4 函数间的参数传递 95
5.4.1 值调用 95
5.4.2 引用调用 96
5.5 函数与数组 98
5.6 局部变量和全局变量 99
自学内容 101
5.7 函数声明 101
5.8 带有默认参数的函数 102
5.9 C++的库函数 103
5.10 变量的存储类别 103
5.10.1 自动变量 103
5.10.2 静态变量 104
5.10.3 寄存器变量 105
5.10.4 外部变量 105
5.11 多个源程序文件程序中的全局变量说明 105
5.12 变量使用 106
程序设计举例 107
实例编程——万年历 110
编程提示 114
小结 114
习题 115
第6章 指针 117
本章目标 117
授课内容 117
6.1 地址与指针 117
6.1.1 地址 117
6.1.2 指针 118
6.2 指针运算 119
6.2.1 “*”和“&”运算符 119
6.2.2 指针变量算术运算 121
6.2.3 指针变量比较运算 122
6.2.4 指针变量下标运算 122
6.3 指针与数组 122
6.4 动态存储分配 125
自学内容 127
6.5 指针数组 127
6.6 指向指针的指针 130
6.7 指针的初始化 131
程序设计举例 132
实例编程——棋类游戏 135
编程提示 139
小结 139
习题 140
第7章 函数与指针 141
本章目标 141
授课内容 141
7.1 递归函数 141
7.2 函数重载 144
7.3 指针和函数的关系 146
7.3.1 指针作为函数的参数 146
7.3.2 返回指针的函数 146
7.3.3 指向函数的指针 147
7.4 带参数的main()函数 149
自学内容 150
7.5 内联函数 150
7.6 无参函数 151
7.7 void和const类型的指针 151
程序设计举例 152
实例编程——最大子串和 157
编程提示 161
小结 161
习题 162
第8章 结构化设计方法 163
本章目标 163
授课内容 163
8.1 结构体类型 163
8.1.1 结构体类型的定义 164
8.1.2 结构体变量的初始化和使用 165
8.2 枚举类型 166
8.3 自顶向下、逐步求精的程序设计方法 170
自学内容 172
8.4 共用体 172
8.5 数组和结构体 174
8.5.1 结构体中的数组 174
8.5.2 数组中的结构体 174
8.6 结构体中的结构体 175
8.7 结构体与指针 176
8.8 编译预处理 177
8.8.1 文件包含 177
8.8.2 宏定义 178
8.8.3 条件编译 179
8.9 结构化程序设计方法的发展历史 180
程序设计举例 181
实例编程——“验证”哥德巴赫猜想 187
编程提示 190
小结 190
习题 190
第9章 类和对象(一) 192
本章目标 192
授课内容 192
9.1 面向对象的基本概念 192
9.1.1 对象和面向对象 192
9.1.2 面向对象的基本特征 193
9.2 类与对象的声明和定义 195
9.2.1 类的声明 195
9.2.2 对象的定义 197
9.2.3 类和对象的关系 197
9.3 成员函数 197
9.3.1 成员函数的定义 198
9.3.2 内联成员函数 198
9.4 对象的访问 198
9.5 对象的存储 203
自学内容 204
9.6 类的组合 204
9.7 接口与实现方法的分离 205
程序设计举例 207
小结 210
习题 210
第10章 类和对象(二) 211
本章目标 211
授课内容 211
10.1 构造函数 211
10.1.1 对象初始化和构造函数 211
10.1.2 构造函数的重载 214
10.1.3 数据成员的初始化方法 217
10.2 析构函数 220
10.3 对象与指针 222
10.3.1 指向对象的指针 222
10.3.2 指向对象成员的指针 223
10.3.3 this指针 225
自学内容 226
10.4 string类的成员函数 226
程序设计举例 228
实例编程——职工档案管理系统 232
小结 236
习题 236
第11章 继承 237
本章目标 237
授课内容 237
11.1 有关继承的基本概念 237
11.2 派生类 239
11.2.1 派生类的声明 239
11.2.2 派生类的构成 240
11.3 派生类的继承方式和访问属性 242
11.3.1 公有继承 242
11.3.2 私有继承 245
11.3.3 保护继承 246
11.4 派生类的构造函数和析构函数 249
11.4.1 派生类的构造函数 250
11.4.2 派生类的析构函数 250
自学内容 252
11.5 显式访问基类成员 252
程序设计举例 254
实例编程——象棋类 261
小结 263
习题 264
第12章 多态性 265
本章目标 265
授课内容 265
12.1 多态性概述 265
12.2 派生类对象替换基类对象 267
12.3 虚函数 269
12.3.1 虚函数定义 269
12.3.2 虚函数的使用限制 271
12.4 抽象类 272
12.5 运算符重载 275
自学内容 277
12.6 const修饰符 277
12.7 静态成员 278
程序设计举例 279
实例编程——较完整的日期类 284
小结 288
习题 289
第13章 模板与异常处理 290
本章目标 290
授课内容 290
13.1 模板 290
13.1.1 函数模板 290
13.1.2 类模板 292
13.2 异常处理机制 294
自学内容 297
13.3 友元 297
13.3.1 友元函数 297
13.3.2 友元类 298
程序设计举例 299
实例编程——矩阵类 305
小结 312
习题 313
第14章 标准库和输入/输出流 314
本章目标 314
授课内容 314
14.1 标准库概述 314
14.2 流 315
14.3 输入/输出流 316
14.3.1 iostream类库的头文件 316
14.3.2 输入/输出流类和对象 316
14.3.3 输入/输出流的成员函数 317
14.4 格式化I/O 319
14.4.1 流格式状态标志和格式化函数 319
14.4.2 流操纵符 322
14.5 文件处理 325
14.5.1 文件和流 327
14.5.2 打开和关闭文件 327
14.5.3 文件读/写 329
14.5.4 二进制文件 330
14.5.5 随机访问文件 333
自学内容 335
14.6 对象的输入/输出 335
14.7 名字空间 336
程序设计举例 338
小结 339
习题 340
第15章 链表 341
本章目标 341
授课内容 341
15.1 链表概述 341
15.2 链表类 342
自学内容 350
15.3 顺序表 350
程序设计举例 354
小结 362
习题 362
第16章 程序设计与软件开发技术 363
本章目标 363
授课内容 363
16.1 面向对象的程序设计方法 363
16.2 案例分析——电话簿管理程序 365
16.2.1 问题描述 365
16.2.2 解决方案 366
自学内容 382
16.3 软件开发技术基础——软件生命周期 382
16.4 标准模板库简介 383
16.4.1 容器 384
16.4.2 迭代器 385
16.4.3 算法 385
小结 386
习题 386
附录A ASCII码表 387
附录B C++的技术支持 389
参考文献 391