目录 1
第0章 计算机科学概貌 1
0.1 什么是计算机科学 1
相关知识:计算机伦理 3 1
0.2 计算科学的历史 2
0.3 计算机系统介绍 12
第1章 问题解决与软件工程 16
1.1 欢迎来到C++世界 17
1.2 用软件工程解决问题 19
1.4 对象化思维:作为对象的球 28
1.3 实例分析:收入计算 28
1.5 本章小结 32
1.6 编程练习 32
第2章 类型 34
2.1 入门例子:学生工资的计算 34
2.2 类型和声明 37
相关知识:数据表示 48
2.3 对象化思维:属性变量 51
2.4 本章小结 56
2.5 编程指南 58
2.6 编程练习 61
第3章 操作与表达式 63
3.1 入门例子:爱因斯坦质能方程 63
3.2 数值表达式 66
3.3 布尔表达式 73
3.4 字符表达式 78
3.5 赋值表达式 80
3.6 输入/输出表达式 90
3.7 例子:卡车队的账目 96
3.8 对象化思维:初始化和构造函数 102
3.9 本章小结 108
3.10 编程指南 110
3.11 编程练习 111
第4章 函数 113
4.1 入门例子:用表达式进行温度转换 113
4.2 入门例子:用函数实现温度转换 115
4.3 使用选择的函数 126
4.4 使用循环的函数 135
相关知识:可计算性理论 145
4.5 实例分析:八功能计算器 146
4.6 库简介 146
4.7 对象化思维:类方法 153
4.8 本章小结 158
4.9 编程指南 160
4.10 编程练习 164
第5章 使用类 168
5.1 介绍性例子:山谷中的农场主 169
5.2 类的介绍 173
5.3 类istream和ostream 178
5.4 使用string对象计算 189
5.5 实例研究:电话号码解码 203
相关知识:模拟 203
5.6 对象化思维:实例方法 207
5.7 本章小结 214
5.8 编程指南 215
5.9 编程练习 216
第6章 选择 220
6.1 入门例子:校园吉祥物 220
6.2 if选择语句 224
6.3 switch选择语句 230
6.4 例子:计算评分等级 240
6.5 选择结构的条件表达式 246
相关知识:布尔逻辑与数字设计 248
6.6 对象化思维:修改器方法 252
相关知识:计算机系统结构 252
6.7 本章小结 258
6.8 编程指南 259
6.9 编程练习 263
第7章 循环 268
7.1 入门例子:高斯的惩罚 268
7.2 for循环 271
7.3 while循环 279
7.4 do循环 284
7.5 输入循环 294
7.6 选择正确的循环 304
7.7 实例研究:计算贬值 306
相关知识:算法分析入门 308
7.8 对象化思维:通过继承重用代码 309
7.9 本章小结 317
7.10 编程指南 318
7.11 编程练习 321
第8章 深入理解函数 324
8.1 范例介绍:一步整型除法 324
8.2 深入理解参数 328
8.3 参数使用示例 335
8.4 内联函数 346
8.5 作用域、重载和模板 348
8.6 递归简介 361
相关知识:数值方法简介 372
8.7 对象化思维:类变量、成员变量和作用域 373
8.8 本章小结 380
8.9 编程指南 382
8.10 编程练习 383
第9章 文件和流 386
9.1 示例介绍:天气数据分析 387
9.2 ifstream对象和ofstream对象 391
9.3 实例:扫描病毒 407
9.4 其他的流特性 409
相关知识:数据库系统 422
9.5 对象化思维:对象和流 424
9.6 本章小结 431
9.7 编程指南 432
9.8 编程练习 435
第10章 数组、向量和标准模板库 439
10.1 示例介绍:质量控制 439
10.2 C风格数组 443
10.3 排序 458
10.4 查找 462
10.5 示例:处理雇员信息 464
10.6 vector〈T〉(向量)类模板 467
10.7 标准模板库(STL)概要 482
10.8 实例分析:处理考试成绩 485
相关知识:部件编程 486
10.9 对象化思维:对象与序列 488
10.10 本章小结 493
10.11 编程指南 495
10.12 编程练习 496
第11章 创建类 499
11.1 介绍性实例:温度建模 500
11.2 设计一个类 504
11.3 类属性的实现 506
11.4 类操作的实现 509
11.5 实例分析:学生信息的获取 528
11.6 对象化思维:操作符重载和友元 534
相关知识:人工智能 541
11.7 本章小结 541
11.8 编程指南 542
11.9 编程练习 545
第12章 类和枚举 548
12.1 介绍性实例:颜色的波长 549
12.2 C风格的枚举 551
12.3 对象化枚举 561
12.4 实例分析:地质分类 574
相关知识:C++类型层次 578
12.5 对象化思维:继承和多态 578
12.6 本章小结 588
12.7 编程指南 588
12.8 编程练习 589
第13章 多维数组及向量 591
13.1 介绍性实例:城市之间的里程 591
13.2 C风格的多维数组 594
13.3 多维向量vector〈T〉对象 608
13.4 实例分析:基于vector〈T〉的矩阵 616
相关知识:计算机图形学 619
13.5 对象化思维:类Matrix的回顾 626
13.6 本章小结 631
13.7 编程指南 632
13.8 编程练习 633
第14章 指针、动态分配与链表 641
14.1 指针变量介绍 642
14.2 使用new和delete动态分配内存 652
14.3 链表介绍 666
14.4 STL list〈T〉类模板 674
14.5 指针和命令行参数 680
相关知识:算法效率 685
14.6 对象化思维:指针和多态性 687
14.7 本章小结 696
14.8 编程指南 698
14.9 编程练习 700
第15章 数据结构 703
15.1 介绍性实例:整数的二进制表示——栈 703
15.2 队列、双端队列及优先队列 711
15.3 递归 717
15.4 树的介绍 721
相关知识:专家系统 735
15.5 本章小结 739
15.6 编程指南 740
15.7 编程练习 741
附录A ASCII字符集 743
附录B C++关键词 745
附录C C++操作符 747
附录D 函数库与类 749
附录E 小测验答案 758