目录 1
第1章 计算机和计算的基本原理 1
1.1 电子计算机的发展历史 1
1.2 体系结构 3
1.2.1 主存储器 3
1.2.2 中央处理器 5
1.2.3 外围设备 6
1.2.4 控制器及其与外围设备的通信 7
1.3 网络 7
1.4.1 字符和符号 8
1.4 使用位来表示字符和符号、整数、实数、地址以及指令 8
1.4.2 整数 9
1.4.3 实数 11
1.4.4 十六进制和八进制表示法 12
1.4.5 地址 14
1.4.6 指令 15
1.4.7 注释 15
1.5 编程语言 15
1.5.1 汇编语言 15
1.5.2 高级语言 16
1.6 软件 17
1.6.1 系统软件 18
1.6.2 应用软件 20
1.7 软件工程、C++语言和C++编译器 20
1.7.1 C++中的程序组织和设计 21
1.7.2 C++语言的发展 23
1.7.3 C++语言的开发环境 23
1.8 关于本书以及如何最大程度地利用本书 25
1.8.1 课堂教学 26
1.8.2 应用示例 26
第2章 程序设计入门——程序结构、屏幕输出和注释 28
2.1 课堂教学:程序的基本结构 28
2.2 课堂教学:编写注释 35
2.3 课堂教学:输出中生成新行 38
2.4 应用示例:输出标志和表头 41
2.5 应用示例:调试 44
第3章 变量和算术运算 60
3.1 课堂教学:变量(1)——命名、声明、赋值以及显示变量值 60
3.2 课堂教学:变量(2)——创建常量以及更多显示变量值的信息 67
3.3 课堂教学:变量(3)——赋值以及显示单个字符数据 74
3.4 课堂教学:算术运算(1)——算术运算符和表达式 78
3.5 课堂教学:算术运算(2)——混合类型算术、复合赋值、运算符优先级,以及类型强制转换 85
3.6 课堂教学:算术运算(3)——数学库函数和数据类型 96
3.7 应用示例:模式识别 101
3.8 应用示例:温度单位转换 105
3.9 应用示例:变位词解决方案 109
第4章 基本输入输出 124
4.1 课堂教学:从键盘读取数据 124
4.2 课堂教学:将输出写入文件 126
4.3 课堂教学:从文件读取数据 129
4.4 课堂教学:从键盘读取字符 132
4.5 应用示例:恺撒密码 136
4.6 应用示例:山崩分析 139
4.7 应用示例:长方体在光滑表面上滑动 143
5.1 课堂教学:if控制结构(1)——基础知识 158
第5章 作出决策 158
5.2 课堂教学:if控制结构(2)——简单的if-else控制结构 163
5.3 课堂教学:if控制结构(3)——嵌套的if-else语句 166
5.4 课堂教学:逻辑运算符(1)——逻辑运算符 168
5.5 课堂教学:逻辑运算符(2)——关系表达式的值以及关系运算符和逻辑运算符的优先次序 171
5.6 课堂教学:if-else-if控制结构和switch控制结构 174
5.7 课堂教学:bool数据类型 180
5.8 应用示例:求解一元二次方程 185
5.9 应用示例:构件的负荷-变形 189
5.10 应用示例:安排会议时间 193
第6章 迭代 212
6.1 课堂教学:while循环(1) 212
6.2 课堂教学:while循环(2) 215
6.3 课堂教学:do-while循环 218
6.4 课堂教学:for循环 220
6.5 课堂教学:嵌套的for循环 225
6.6 应用示例:面积计算(1) 232
6.7 应用示例:面积计算(2) 234
6.8 应用示例:温度单位转换 236
6.9 应用示例:利息计算 239
6.10 应用示例:数学级数 242
6.11 应用示例:消息的加密及解密 249
第7章 函数 271
7.1 课堂教学:函数基础 273
7.2 课堂教学:返回单个值的函数 282
7.3 课堂教学:通过引用传递 286
7.4 课堂教学:作用域 289
7.5 课堂教学:存储类 292
7.6 课堂教学:带有默认参数的函数 298
7.7 课堂教学:函数重载 302
7.8 课堂教学:产生随机数 308
7.9 应用示例:利用梯形规则计算积分 311
7.10 应用示例:使用网格 316
7.11 应用示例:对棋盘游戏的模拟 325
8.1 课堂教学:结构的基本概念——数据集合 350
第8章 类和对象 350
8.2 课堂教学:类的基本概念——数据和函数的集合 358
8.3 课堂教学:构造函数(1)——无参数 367
8.4 课堂教学:构造函数(2)——带参数 371
8.5 课堂教学:构造函数(3)——重载和默认复制构造函数 375
8.6 应用示例:线的交点 379
8.7 应用示例:平行四边形的面积及平行六面体的体积 386
第9章 一维数值型数组 405
9.1 课堂教学:简介 406
9.2 课堂教学:初始化 411
9.3 课堂教学:输入/输出和计算 415
9.4 课堂教学:一维数组和函数 423
9.5 课堂教学:使用数组作为数据成员的类 426
9.6 课堂教学:对象数组 430
9.7 应朋示例:计算电压测量数据 434
9.8 应用示例:浪高分析 438
9.9 应用示例:为4个玩家每人发5张牌 445
9.10 应用示例:冒泡排序和交换排序 453
第10章 多维数值型数组 469
10.1 课堂教学:声明、初始化和输出 470
10.2 课堂教学:从一个文件中读取二维数组、存储分配和函数 475
10.3 应用示例:矩阵-向量的操作 482
10.4 应用示例:搜索和文件压缩 486
第11章 指针变量 498
11.1 课堂教学:指针变量和地址的基础知识 498
11.2 课堂教学:指针变量和函数 506
11.3 课堂教学:指针变量和数组、指针变量和函数 508
11.4 课堂教学:指针变量的其他用法 511
11.5 课堂教学:从函数返回地址 513
11.6 课堂教学:从多维数组返回地址 515
11.7 课堂教学:指向对象的指针 522
11.8 课堂教学:指针作为数据成员 524
11.9 课堂教学:动态内存分配 527
11.10 应用示例:地下污染羽烟的边界问题 531
第12章 字符数组 552
12.1 课堂教学:声明、初始化和输出 552
12.2 课堂教学:部分字符函数和字符串库函数 557
12.3 课堂教学:二维字符数组 563
12.4 课堂教学:键盘输入和文件输入 565
12.5 课堂教学:声明和指针变量 569
12.6 课堂教学:字符串和函数 574
12.7 应用示例:创建一个电子数据表类型的程序 579
12.8 应用示例:单位转换程序 587
第13章 C++string类 603
13.1 课堂教学:C++string类(1)的介绍 603
13.2 课堂教学:C++string类(2)——成员函数 606
13.3 课堂教学:C++string类(3)——键盘输入和文件输入 612
13.4 课堂教学:C++string类(4)——字符串和函数 615
13.5 课堂教学:字符串、类和对象 617
13.6 应用示例:地震事件的报告分析 619
第14章 关于类、对象以及面向对象设计的更多内容 634
14.1 课堂教学:复制构造函数及析构函数 634
14.2 课堂教学:特殊限定符(1)——static 639
14.3 课堂教学:特殊限定符(2)——const 644
14.4 课堂教学:特殊限定符(3)——friend(函数) 652
14.5 课堂教学:特殊限定符(4)——friend(类) 656
14.6 课堂教学:运算符重载 660
14.7 课堂教学:UML和面向对象设计 673
14.8 应用示例:交通事故分析 680
14.9 应用示例:汽车模拟 688
第15章 继承及多态性 703
15.1 课堂教学:继承(1)——基础知识 704
15.2 课堂教学:继承(2)——构造函数及析构函数 710
15.3 课堂教学:继承(3)——继承的层次 717
15.4 课堂教学:继承(4)——多重继承 720
15.5 课堂教学:虚函数及多态性 723
15.6 应用示例:电路电阻 727
第16章 数据结构和递归 736
16.1 课堂教学:一个编程人员定义的链表类 737
16.2 课堂教学:编程人员定义的堆栈类 749
16.3 课堂教学:编程人员定义的队列类 755
16.4 课堂教学:用户定义的二叉树类 760
16.5 课堂教学:采用递归调用的函数 769
16.6 应用示例:PI的计算 777
16.7 应用示例:进行算术运算 783
16.8 应用示例:快速排序算法 794
第17章 模板与C++标准模板库 808
17.1 课堂教学:函数模板 808
17.2 课堂教学:类模板 812
17.3 课堂教学:标准模板库(1)——序列容器 817
17.4 课堂教学:标准模板库(2)——迭代器 823
17.5 课堂教学:标准模板库(3)——算法 826
第18章 其他主题 835
18.1 课堂教学:开发多文档程序 835
18.2 课堂教学:按位操作 840
18.3 课堂教学:二进制文件 850
附录A 数字的二进制和十进制表示法 857
附录B 字符数组函数 865
附录C 操作符 876
附录D ASCⅡ表 879