[基础篇——SP] 2
第1章 引论 2
1.1 软件开发和程序编制 3
1.1.1 软件开发过程 3
1.1.2 编制程序的基本方法 3
1.2 计算机算法 4
1.2.1 算法的表示方法 4
1.2.2 算法要素与效率 7
1.3 程序设计语言和开发工具 8
1.3.1 概述 9
1.3.2 Visual C++集成开发环境及其使用 9
1.4 一个简单的C/C++程序 11
1.4.1 编制一个简单的程序 11
1.4.2 调试程序的基本方法 15
本章小结 17
第2章 C++语言基本要素 20
2.1 C++语言词法单位 21
2.1.1 字符集 21
2.1.2 词法符号 21
2.1.3 几种经典的命名方法 22
2.2 基本数据类型 22
2.2.1 数据类型的概念 22
2.2.2 常量的使用 23
2.2.3 变量的使用 26
2.2.4 符号常量的使用 29
2.3 基本输入输出 31
2.3.1 数据的输入 31
2.3.2 数据的输出 32
2.4 基本运算 36
2.4.1 运算符和表达式的概念 37
2.4.2 算术运算和赋值运算 37
2.4.3 关系运算和逻辑运算 40
2.4.4 自增自减、条件、逗号运算 43
2.5 基本数据类型转换 45
2.5.1 隐式类型转换 46
2.5.2 显式类型转换 48
本章小结 49
第3章 基本结构程序设计 51
3.1 顺序与选择结构程序设计 52
3.1.1 顺序结构的实现 52
3.1.2 选择结构的实现 54
3.1.3 嵌套选择结构的实现 56
3.1.4 多路分支结构的实现 59
3.2 循环结构程序设计 62
3.2.1 循环结构的实现 62
3.2.2 嵌套循环结构的实现 65
3.2.3 循环跳转的控制 67
3.3 函数结构程序设计 72
3.3.1 系统函数的使用 72
3.3.2 用户自定义函数的使用 76
3.4 编程艺术与实战 80
3.4.1 数列运算的问题 80
3.4.2 阶乘和e值运算问题 85
3.4.3 因子与素数的问题 88
3.4.4 回文的问题 93
3.4.5 闰年的问题 95
3.4.6 不定方程问题 98
3.4.7 逻辑推理问题 100
3.4.8 绘制字符图案 102
本章小结 106
第4章 数组与字符串的使用 108
4.1 数组的使用 109
4.1.1 一维数组的使用 109
4.1.2 二维数组的使用 113
4.2 字符数组与字符序列 116
4.2.1 一维字符数组的使用 116
4.2.2 二维字符数组的使用 120
4.3 string的使用 121
4.3.1 string型变量的使用 122
4.3.2 string型数组的使用 124
4.4 编程艺术与实战 125
4.4.1 记录处理的问题 125
4.4.2 自动生成数据问题 140
4.4.3 进制转换的问题 147
4.4.4 矩阵运算的问题 149
4.4.5 筛选法求素数问题 155
4.4.6 约瑟夫问题 157
4.4.7 密码的问题 159
4.4.8 文本处理的问题 164
本章小结 173
第5章 指针的使用 175
5.1 指针的概念 176
5.2 指针与一维数组 178
5.2.1 指针方式访问一维数组 178
5.2.2 指针方式访问字符串 181
5.3 指针与二维数组 183
5.3.1 指针方式访问二维数组 183
5.3.2 指针数组的使用 186
5.4 动态存储分配 187
5.4.1 new和delete的使用 187
5.4.2 多维数组的动态分配 190
5.5 编程艺术与实战 192
5.5.1 指针法处理记录的问题 192
5.5.2 比赛评分的问题 195
5.5.3 文本处理的问题 198
5.5.4 交集运算的问题 201
5.5.5 计算均方差问题 205
本章小结 207
第6章 函数的深入使用 208
6.1 作用域和存储类型 209
6.2 函数参数的传递机制 211
6.2.1 单参数的传递 211
6.2.2 数组参数的传递 215
6.3 函数的递归调用 220
6.4 函数的重载 222
6.5 带有默认形参值的函数 225
6.6 内联函数 226
6.7 编程艺术与实战 227
6.7.1 存款理财的问题 227
6.7.2 文本处理的问题 229
6.7.3 集合运算的问题 232
6.7.4 进制转换的问题 235
6.7.5 递归算法的问题 240
本章小结 245
第7章 数据文件与编译预处理 246
7.1 数据文件的基本操作 247
7.2 数据文件的随机读写 252
7.3 数据文件的按行读写 255
7.4 二进制数据文件的读写 258
7.5 常用的编译预处理命令 261
7.5.1 文件包含预处理 261
7.5.2 宏定义预处理 262
7.5.3 条件编译 263
7.6 多文件结构的使用 266
本章小结 281
第8章 自定义数据类型与链表 282
8.1 枚举与共用体 283
8.1.1 枚举类型数据的使用 283
8.1.2 共用体类型数据的使用 285
8.2 结构体与typedef 287
8.2.1 结构体类型数据的使用 287
8.2.2 结构体数组的使用 292
8.2.3 数据类型别名的使用 295
8.3 单向链表的使用 296
8.3.1 链表的概念 296
8.3.2 链表的基本操作 297
本章小结 300
[提高篇—OOP] 303
第9章 面向对象程序设计 303
9.1 OOP基本概念 304
9.2 类与对象的使用 304
9.3 C++的复用机制 313
9.3.1 类的继承与组合 313
9.3.2 函数重载和运算符重载 329
9.3.3 函数模板和类模板 336
9.4 C++的异常处理机制 343
9.5 编程艺术与实战 347
9.5.1 最值的问题 347
9.5.2 查找的问题 350
9.5.3 链表的问题 353
本章小结 356
[提高篇—GP] 359
第10章 STL程序设计 359
10.1 概述 360
10.2 STL组件的使用方法 364
10.2.1 vector容器与迭代器 364
10.2.2 deque容器 372
10.2.3 list容器 376
10.2.4 string容器 381
10.2.5 stack容器适配器 391
10.2.6 queue容器适配器 393
10.2.7 priority_queue容器适配器 395
10.3 常用STL通用算法 397
10.3.1 copy和sort及reverse算法 397
10.3.2 fill和generate及find与search算法 399
10.3.3 for each、replace与count及remove算法 404
10.4 编程艺术与实战 408
10.4.1 斐波那契数列问题 408
10.4.2 约瑟夫问题 409
10.4.3 字符出现的频率问题 411
本章小结 413
项目实战:学生成绩管理系统开发 415
资源列表 418