第0章 关于C++——C++程序设计入门 1
0.1 C++概述 2
0.1.1 C++能做什么 2
0.1.2 C++的由来 4
0.1.3 C++的特点 4
0.2 程序设计概述 5
0.2.1 结构化程序设计 6
0.2.2 面向对象程序设计 6
0.3 C、C++与Visual C++ 6
0.3.1 C与C++ 6
0.3.2 C++与Visual C++ 7
0.3.3 C++初学者建议 8
第1篇 基础知识 10
第1章 开始C++编程之旅——Hello,C++ 10
1.1 熟悉本书的开发平台——Visual C++6.0 11
1.1.1 Visual C++6.0概述 11
1.1.2 Visual C++6.0下的开发步骤 11
1.1.3 项目管理——工作区窗口 12
1.1.4 窗体及代码编辑——编辑窗口 12
1.1.5 程序调试——输出窗口 12
1.1.6 程序运行——输出窗口 13
1.2 C++程序开发 13
1.2.1 基本概念 13
1.2.2 C++程序开发过程 14
1.3 第1个C++程序——Hello,world 14
1.3.1 创建源程序 15
1.3.2 编译、连接和运行程序 16
1.3.3 常见错误 17
1.3.4 打开已有文件 18
1.3.5 创建并运行多文件程序 19
1.4 实战练习 22
第2章 C++程序的基本组成 23
2.1 预处理命令 24
2.2 函数 24
2.3 注释 24
2.4 C++代码编写规范 25
2.4.1 代码编写规范的必要性 25
2.4.2 如何将代码书写规范 25
2.5 身边的老师——使用MSDN帮助 26
2.5.1 MSDN帮助系统中主要的帮助文件 26
2.5.2 MSDN帮助系统的使用 27
2.6 实战练习 28
第3章 数据类型 29
3.1 数据类型 30
3.1.1 整型 30
3.1.2 浮点型 30
3.1.3 字符型 31
3.2 常量与变量 31
3.2.1 输出常量 32
3.2.2 宏定义的符号常量 34
3.2.3 const常变量 37
3.3 变量 39
3.3.1 什么是变量 39
3.3.2 变量的定义 39
3.3.3 变量的赋值 40
3.3.4 变量的生存周期 44
3.4 数据类型转换 44
3.5 综合应用 49
3.6 实战练习 50
第4章 C++中的公式——运算符和表达式 51
4.1 C++中的运算符和表达式 52
4.1.1 运算符 52
4.1.2 表达式 53
4.2 算术运算符和表达式 53
4.2.1 基本算术运算符 53
4.2.2 算术运算符和算术表达式 54
4.2.3 自加和自减运算符 55
4.3 逻辑运算符和表达式 57
4.3.1 逻辑运算符 57
4.3.2 逻辑表达式 57
4.4 关系运算符和表达式 59
4.4.1 关系运算符 59
4.4.2 关系表达式 59
4.5 条件运算符和表达式 61
4.6 赋值运算符和表达式 61
4.6.1 赋值运算符 61
4.6.2 赋值表达式 62
4.7 逗号运算符和表达式 63
4.8 运算符的优先级 64
4.9 综合应用 65
4.10 实战练习 66
第5章 程序控制结构和语句 67
5.1 程序流程概述 68
5.2 顺序结构 68
5.3 选择结构与语句 69
5.3.1 选择结构 69
5.3.2 单分支选择结构——if语句 70
5.3.3 双分支选择结构——if-else语句 72
5.3.4 多分支选择结构——switch语句 73
5.4 循环结构与语句 76
5.4.1 循环结构 76
5.4.2 for语句 77
5.4.3 while语句 80
5.4.4 do-while语句 82
5.5 转向语句 84
5.5.1 goto语句 84
5.5.2 break语句 85
5.5.3 continue语句 87
5.6 常见错误 89
5.6.1 语法错误 89
5.6.2 逻辑错误 90
5.6.3 运行错误 91
5.7 程序调试 91
5.8 综合应用 96
5.9 实战练习 98
第6章 程序设计的灵魂——算法与流程图 99
6.1 算法基础 100
6.1.1 算法的概念 100
6.1.2 算法的特性 100
6.1.3 算法举例1——排序 101
6.1.4 算法举例2——求和 103
6.2 流程图基础 104
6.2.1 流程图中的元素及含义 105
6.2.2 流程图的绘制 106
6.3 如何表示一个算法 107
6.3.1 用自然语言表示算法 107
6.3.2 用流程图表示算法 107
6.3.3 用N-S图表示算法 112
6.3.4 用伪代码表示算法 113
6.3.5 用PAD图表示算法 114
6.4 结构化算法 115
6.5 综合应用 116
6.6 实战练习 120
第7章 相同类型的数值表达——数组 121
7.1 什么是数组 122
7.1.1 一维数组 122
7.1.2 一维数组的声明和定义 122
7.1.3 一维数组的初始化 123
7.1.4 一维数组元素的引用 124
7.2 二维数组 125
7.2.1 二维数组的定义 126
7.2.2 二维数组的初始化 126
7.2.3 存取二维数组元素 128
7.2.4 二维数组元素的引用 129
7.3 多维数组 131
7.4 一维数组元素排序 131
7.5 综合应用 133
7.6 实战练习 134
第8章 常用代码的封装——函数 135
8.1 函数 136
8.1.1 函数的作用 136
8.1.2 函数的分类 139
8.2 函数的定义与声明 141
8.2.1 函数的定义 141
8.2.2 函数的声明 142
8.3 函数的参数和返回值 143
8.3.1 函数的参数 143
8.3.2 函数的返回值 144
8.4 函数的调用 145
8.4.1 函数调用方式 145
8.4.2 参数传递方式 147
8.4.3 函数的嵌套调用 152
8.4.4 递归调用 154
8.4.5 函数的重载 157
8.4.6 带默认值的函数 160
8.5 局部变量和全局变量 163
8.5.1 局部变量 163
8.5.2 全局变量 164
8.6 变量的存储类别 165
8.7 内部函数和外部函数 169
8.8 内联函数 170
8.9 编译预处理 172
8.10 综合应用 178
8.11 实战练习 180
第9章 内存的快捷方式——指针 181
9.1 指针概述 182
9.1.1 计算机内存地址 182
9.1.2 定义指针和取出指针指向地址中的数据 182
9.1.3 初始化指针和指针赋值 183
9.1.4 指针的运算 186
9.2 指针和数组 187
9.2.1 指针和一维数值数组 187
9.2.2 指针和二维数组 189
9.2.3 指针和字符数组 192
9.2.4 字符指针和字符数组对比 194
9.2.5 指向指针的指针 195
9.2.6 指针数组和数组指针 196
9.3 指针和函数 196
9.3.1 函数指针 197
9.3.2 返回指针的函数 198
9.3.3 指针与传递数组的函数 200
9.4 const指针 203
9.5 void指针类型 205
9.6 综合应用 206
9.7 实战练习 208
第10章 用户与计算机的交互——输入和输出 209
10.1 标准输入/输出 210
10.1.1 输入操作符>> 210
10.1.2 输出操作符<< 211
10.2 标准格式输出流 213
10.2.1 常用的格式流 213
10.2.2 有参数的常用流 215
10.3 其他输入/输出函数 216
10.4 随机数发生器函数 217
10.5 字符串操作 218
10.6 综合应用 220
10.7 实战练习 222
第2篇 核心技术 224
第11章 面向对象编程基础——类和对象 224
11.1 类与对象概述 225
11.1.1 类的声明与定义 226
11.1.2 对象的定义和使用 229
11.2 构造函数 231
11.3 析构函数 234
11.4 工程的建立和宏定义 238
11.5 友元 240
11.5.1 友元成员 240
11.5.2 友元函数 242
11.5.3 友元类 244
11.6 综合应用 246
11.7 实战练习 248
第12章 C++中的空间应用——命名空间 249
12.1 命名空间的定义 250
12.1.1 命名空间的概念 250
12.1.2 命名空间的定义 250
12.2 命名空间成员的使用 252
12.2.1 using声明 252
12.2.2 using指令 253
12.3 类和命名空间的关系 255
12.4 自定义命名空间 257
12.5 综合应用 260
12.6 实战练习 262
第13章 继承与派生 263
13.1 继承概述 264
13.1.1 什么是继承 264
13.1.2 基类与派生类 264
13.2 单继承 266
13.3 多重继承 269
13.3.1 多重继承的引用 270
13.3.2 二义性 272
13.4 综合应用 273
13.5 实战练习 276
第14章 多态与重载 277
14.1 多态概述 278
14.2 虚函数 282
14.3 构造函数多态 284
14.4 抽象类 290
14.5 重载概述 292
14.5.1 运算符的重载 292
14.5.2 函数的重载 296
14.6 综合应用 302
14.7 实战练习 304
第3篇 高级应用 306
第15章 文件操作 306
15.1 什么是文件 307
15.1.1 文件的分类 307
15.1.2 C++如何使用文件 307
15.2 文件的打开和关闭 307
15.2.1 打开文件 307
15.2.2 关闭文件 310
15.3 文件的读写 310
15.3.1 文本文件的读写 311
15.3.2 二进制文件的读写 312
15.4 在文件中实现定位到每个数据 314
15.5 文件中的数据随机访问 315
15.6 实战练习 324
第16章 容器 325
16.1 容器的概念 326
16.2 迭代器 326
16.3 顺序容器 327
16.3.1 向量的使用 328
16.3.2 列表 333
16.4 关联容器 335
16.5 映射 335
16.6 适配器 338
16.6.1 容器适配器 338
16.6.2 stack容器 339
16.7 实战练习 340
第17章 模板 341
17.1 模板的概念 342
17.1.1 什么是模板 342
17.1.2 模板的作用 342
17.1.3 模板的语法 343
17.2 模板的编译模型 348
17.2.1 包含编译模式 348
17.2.2 分离编译模型 350
17.3 模板的特化 351
17.3.1 函数模板的特化 352
17.3.2 类模板的特化 353
17.3.3 类模板的偏特化 355
17.4 实战练习 358
第18章 算法、函数对象、字符串操作 359
18.1 算法 360
18.1.1 数据编辑算法 360
18.1.2 查找算法 362
18.1.3 比较算法 365
18.1.4 排序相关算法 366
18.1.5 计算相关算法 368
18.2 函数对象 370
18.2.1 函数对象的应用 370
18.2.2 自定义函数对象 371
18.3 字符串 372
18.3.1 定义和初始化string对象 372
18.3.2 读/写字符串 373
18.3.3 字符串的赋值 374
18.3.4 字符串比较 375
18.3.5 字符串的连接 376
18.3.6 字符串特性描述 377
18.3.7 字符串操作 378
18.3.8 字符串对象中字符的处理 379
18.4 实战练习 380
第19章 异常处理 381
19.1 异常的类型 382
19.1.1 常见异常 382
19.1.2 异常的分类 383
19.2 异常处理的基本思想 383
19.3 异常处理语句 384
19.3.1 异常处理语句块 384
19.3.2 使用try-catch处理异常 386
19.4 多种异常的捕获 388
19.5 异常的重新抛出 390
19.6 构造函数异常的处理 393
19.7 实战练习 398
第4篇 项目实战 400
第20章 项目规划 400
20.1 项目开发流程 401
20.1.1 策划阶段 402
20.1.2 需求分析阶段 402
20.1.3 软件设计阶段 403
20.1.4 软件编码阶段 403
20.1.5 系统测试阶段 404
20.1.6 系统验收阶段 404
20.1.7 系统维护阶段 404
20.2 项目开发团队 404
20.2.1 项目团队组成 405
20.2.2 项目团队要求 406
20.3 项目开发文档 406
20.3.1 项目开发文档的作用 407
20.3.2 项目开发文档的分类 407
20.4 项目的实际运作 409
20.5 项目规划常见问题及解决方法 410
20.5.1 如何满足客户需求 410
20.5.2 如何控制项目进度 411
20.5.3 如何控制项目预算 412
第21章 信息管理不用愁——信息管理系统 413
21.1 日历系统 414
21.1.1 系统分析 414
21.1.2 功能分析及实现 414
21.1.3 开发常见问题及解决方法 417
21.2 学生成绩管理系统 418
21.2.1 系统分析 418
21.2.2 功能分析及实现 419
21.2.3 开发常见问题及解决方法 428
21.3 银行卡管理系统 428
21.3.1 系统分析 428
21.3.2 功能分析及实现 429
21.3.3 开发常见问题及解决方法 436
第22章 图书信息管理系统 437
22.1 开发背景 438
22.2 需求及功能分析 438
22.2.1 需求分析 439
22.2.2 总体功能设计 439
22.2.3 各功能模块设计 441
22.3 系统功能的实现 442
22.3.1 系统整体功能的实现 442
22.3.2 系统界面显示功能的实现 443
22.3.3 借还书功能的实现 444
22.3.4 图书管理模块的实现 446
22.3.5 读者管理模块的实现 449
22.4 系统运行 452
22.5 开发过程常见问题及解决方法 454
第23章 职工信息管理系统 455
23.1 开发背景 456
23.2 需求及功能分析 456
23.2.1 需求分析 456
23.2.2 总体功能设计 457
23.2.3 各功能模块设计 458
23.3 系统功能的实现 462
23.3.1 系统整体功能的实现 463
23.3.2 系统界面显示功能的实现 464
23.3.3 注册信息功能的实现 466
23.3.4 查询信息功能的实现 467
23.3.5 修改信息功能的实现 468
23.3.6 删除信息功能的实现 470
23.3.7 保存信息功能的实现 470
23.3.8 排序信息功能的实现 471
23.4 系统运行 472
23.5 开发过程常见问题及解决方法 476