第一章 C++语言初步 1
1.1 运行最简单程序 3
1.2 在屏幕上显示3行字符 3
1.3 对两整数进行四则运算 4
1.4 计算圆的面积与周长 5
1.5 输入10个整数而后反序输出的实现方式一 6
第二章 基本数据类型与基本运算 8
2.1 算术运算符功能的理解与使用 10
2.2 关系运算符和逻辑运算符功能的理解与使用 12
2.3 位运算符功能的理解与使用 13
2.4 表达式加括号使运算结果不变 15
2.5 使用自定义枚举类型 18
2.6 求两个时间(时刻)的时间差 19
2.7 计算x的平方、平方根及倒数等 21
2.8 一元二次方程求根 21
第三章 分支与循环处理 23
3.1 求三个实数中的最大数与最小数 24
3.2 设计一个计算商品价格的程序 25
3.3 switch语句的执行效果 27
3.4 将考试成绩等级字母变换为相应的百分制分数段 28
3.5 求实数a的n次方 30
3.6 求出正整数n的所有因子 30
3.7 求正整数n的所有因子的平方根之和 31
3.8 n个实数的整数部分和以及小数部分和 32
3.9 求最小公倍数 33
3.10 求最大公约数 34
3.11 改写程序使其中不出现switch与for语句 35
3.12 反序输出某正整数的各数位值 37
3.13 求正整数n之反序数的两倍值 38
3.14 验证奇数的指定特性 39
3.15 按近似公式求近似圆周率 40
3.16 三种控制语句的使用 41
3.17 求三种不同序列的累加和 43
3.18 求满足eps精度的累加和 45
3.19 处理从键盘输入的一批字符 46
3.20 将读入字符“拼装成”实数并显示出来 48
3.21 求1000以内的所有“完全数” 52
3.22 求100~999内的所有“回文数” 53
3.23 编循环程序显示指定图形 54
3.24 理解二重循环程序的执行过程 55
3.25 根据要求显示具有不同特征的图形 56
3.26 循环累加不同的项数求出多个不同近似程度的E值 58
3.27 求满足给定两条件的最小自然数n 59
第四章 数组及其应用 61
4.1 输入10个整数而后反序输出的实现方式二 62
4.2 二进制数转化为十进制数 63
4.3 十进制正整数转化为二进制 64
4.4 求字符串长度 65
4.5 两个字符串连接 66
4.6 字符串比较 67
4.7 求1000以内的所有“完全数”并将结果按指定格式输出 69
4.8 求数组中的最大数和最小数 71
4.9 三种控制语句与数组的配合使用 72
4.10 对数组中的10个元素进行排序 74
4.11 合并两个有序数组 75
4.12 罗马数据转化为十进制数据 76
4.13 十进制正整数转化为罗马数据 78
4.14 使用最少数人民币纸币方案的求取 81
4.15 输入10个整数而后反序输出的实现方式三 83
4.16 计算某一天是星期几(方式一) 85
4.17 屏幕显示某年某指定月的月历(方式一) 86
4.18 求取正整数“圈”中连续四数之和最大者 89
4.19 将正整数转换为“英文表示字符串” 90
4.20 二维整型数组按行按列求出各累加和 92
4.21 二维数组的简单应用 93
4.22 二矩阵相加 95
4.23 处理二维字符数组 97
4.24 统计各行“单词”个数的处理方案一 99
4.25 统计各行“单词”个数的处理方案二 101
4.26 二矩阵相乘 103
4.27 在屏幕上“画出”最近15天的气温值柱形图 105
4.28 统计每一正整数的出现频率 107
第五章 函数的设计与应用 110
5.1 自定义函数及其调用 112
5.2 一般自定义函数及其调用 113
5.3 设计无参函数实现固定显示功能 114
5.4 设计一参函数使显示行数可变化 115
5.5 设计二参函数使变化更灵活 116
5.6 全局变量与无参函数配合使用 117
5.7 将十进制数转化为二进制数的自定义函数 118
5.8 将十进制数转化为八进制数的自定义函数 119
5.9 返回布尔值的函数 121
5.10 判断整数x是否仅由奇数字组成的自定义函数 122
5.11 判断正整数n是否为“回文数”的自定义函数 123
5.12 判断整数n是否为素数的自定义函数 124
5.13 返回整数x某一指定位之数值的函数 126
5.14 三种控制语句与数组及函数配合使用 127
5.15 计算两个日期之间的连续天数 130
5.16 计算出两个日期的间隔天数 133
5.17 计算某一天是星期几(方式二) 137
5.18 屏幕显示某年某指定月的月历(方式二) 139
5.19 使用三种方法求Fibonacci数列的某个项值 141
5.20 函数的递归调用 143
5.21 使用递归解法求实数a的n次方 145
5.22 使用递归方法打印一批数据 146
5.23 输入10个整数而后反序输出的实现方式四 147
5.24 按递归方法求最大公约数 148
5.25 读非递归函数后添加具有相同功能的递归函数 149
5.26 求字符串长度的函数 151
5.27 二进制数转化为十进制数的函数 152
5.28 查看数组中满足某条件之数据的个数 153
5.29 在升序数组中折半查找某元素序号的函数 154
5.30 显示数组某下标范围内所有元素的递归函数 156
5.31 判断两数组前n个元素值是否完全相同的递归与非递归函数 157
5.32 判断某数组前n个元素是否完全有序的递归与非递归函数 159
5.33 判断s字符串是否为“回文”的递归函数 160
5.34 函数的间接递归 162
5.35 两个二进制正整数的四则运算 164
5.36 两个罗马数据的四则运算 168
5.37 将ASCII码数字字符串转化为整数的函数 172
5.38 将整数转化为ASCII码数字字符串的函数 174
5.39 实现插入排序的InsertionSort函数 176
5.40 分析递归函数的执行结果 177
5.41 对两个字符数组实现某些统计功能的函数 179
5.42 不同作用域中同名标识符的处理 181
5.43 文件级作用域以及函数级作用域的变量 183
5.44 全局变量以及具有static存储类别变量的使用 185
5.45 extern型外部变量的使用 186
5.46 与全局变量以及静态局部变量相关的使用 189
5.47 求解骑士巡游问题——为骑士求解巡游“路线图” 190
5.48 求解八皇后问题 195
第六章 指针、结构体及引用 199
6.1 与字符指针相关的使用 203
6.2 指针及其相关运算 204
6.3 判断字符串是否为合法标识符 205
6.4 在字符串数组中查找给定串string的出现位置 207
6.5 通过指针参数来实现“双向传值” 209
6.6 字符指针与其他类型指针的使用区别 211
6.7 输入10个整数而后反序输出的实现方式五 213
6.8 测试并运行含有new与delete的指定程序 214
6.9 实现具有动态大小的矩阵乘法 216
6.10 求解线性方程组 219
6.11 赋值参数、指针参数以及引用参数的使用区别 225
6.12 求满秩矩阵的逆矩阵 227
6.13 有关指针数组(各分量均为指针)的使用 232
6.14 指向一维数组的指针及其使用 234
6.15 结构体与数组两种数据结构的结合使用 236
6.16 添加函数完成与结构体有关的对复数的某些指定运算 239
6.17 输入十个整数而后反序输出的实现方式六 242
6.18 输入十个整数而后反序输出的实现方式七 244
6.19 使用由结构体形成的链表来实现数据排序 246
6.20 将某个有序链表合并(插入)到另一个有序链表之中 248
6.21 合并两个有序链表形成一个新的有序结果链表 252
6.22 利用链表存储字符串并实现相关的字符串处理 257
6.23 对函数指针的使用 261
6.24 使用返回指针值的函数 263
6.25 求取源串中首次出现某子串的头字符位置 264
6.26 通过带参数的main函数实现指定的四则运算 267
6.27 引用的建立及简单使用 269
第七章 类与对象 271
7.1 自定义类(类型)及其相关的构造与析构函数 274
7.2 动态对象的构造与析构 276
7.3 自定义的Circle类(类型)以及对它的使用 278
7.4 输入十个整数而后反序输出的实现方式八 280
7.5 自定义类及其有关类成员函数的使用 282
7.6 一个简单的复数类型complex 285
7.7 学生类(类型)student 288
7.8 自定义的queue(队列)类型 291
7.9 在平面上用直线、矩形和圆画出一个粗略的汽车图形 295
7.10 含有静态数据成员及静态函数成员的自定义类 303
7.11 自定义类中含有常量数据成员 305
7.12 友元函数的使用 306
7.13 在复数类型complex中使用多个友元函数 309
7.14 简单的分数类(类型)fraction 312
7.15 “后缀式简单单步计算器”类(类型)Calculator 319
7.16 自定义时间类(类型)TimeType 329
7.17 在自定义时间类(类型)TimeType中使用多个友元函数 336
7.18 自定义日期类(类型)DateType 343
7.19 自定义的计算器类(类型)compu 350
7.20 求满秩矩阵逆矩阵的自定义类Matrix 360
第八章 继承与派生 366
8.1 继承与派生关系中相关成员的存取权限 368
8.2 学生教师档案的管理 372
8.3 派生类的构造函数及其对象的初始化 378
8.4 派生类的构造与析构函数及其对象的初始化 380
8.5 使用类定义方式求解线性方程组 383
8.6 通过组合方式自定义日期时间类(类型)DateTimeType 389
8.7 通过继承方式自定义日期时间类(类型)DateTimeType 394
8.8 虚函数的使用 398
8.9 通过虚函数手段按不同方法来计算定积分 401
8.10 增加梯形图元类后在平面上画出简单图形 407
8.11 派生关系中的赋值兼容性以及重名成员处理等 418
第九章 运算符重载 422
9.1 通过友元方式重载运算符 425
9.2 通过类成员方式重载运算符 428
9.3 自定义简单分数类(类型)fraction中的运算符重载 431
9.4 在处理链表的link类中重载下标运算符 439
9.5 重载全局运算符new与delete 442
9.6 对自定义类重载运算符new与delete 444
9.7 全权控制运算符new与delete的分配与释放细节 447
9.8 自定义的类型转换运算符(函数) 450
9.9 成员指针运算符的使用 451
9.10 自定义矩阵matrix类(类型)中的运算符重载 453
第十章 模板及其应用 467
10.1 对一维数组进行排序的函数模板 469
10.2 二维数组中找最大元和最小元的函数模板 471
10.3 类模板的使用 474
10.4 既使用类型参数又使用普通参数的类模板 477
10.5 为链表类模板list补充成员函数 479
10.6 实现队列类模板queue 484
10.7 实现数组类模板array 488
10.8 使用了栈类模板的计算器类(类型)compu 493
10.9 类模板作基类派生出类模板 502
第十一章 流类库与输入/输出 506
11.1 插入与提取运算符的两种使用方式 509
11.2 对自定义fraction类重载输入运算符“>>”与输出运算符“<<” 511
11.3 使用格式控制符将数据输出到屏幕上 514
11.4 使用格式控制符将数据输出到text型磁盘文件中 515
11.5 从文件cin以抽取算符读入各字符的方式一 517
11.6 从文件cin以抽取算符读入各字符的方式二 519
11.7 从文件cin以get函数读入各字符 520
11.8 从磁盘文件fin以抽取算符读入各字符 521
11.9 使用get与put对指定文件进行拷贝 522
11.10 对磁盘文件的读/写处理(数值性数据) 523
11.11 对磁盘文件的读/写处理(文本性数据) 528
11.12 使用getline读出text文件中的“一篇文章”进行处理 531
11.13 使用getline读出text文件中的C++源程序并删除注释 533
11.14 读出两个指定文件的各行内容进行比较 536
11.15 使用算符“>>”与“<<”对自定义的text型文件进行读/写 539
11.16 使用write与read对自定义的binary型文件进行读/写 542
11.17 输入10整数而后反序输出的实现方式九 545
11.18 输入10个整数而后反序输出的实现方式十 547
11.19 binary型学生数据文件的简单管理 548
11.20 对binary型学生数据文件管理程序进一步扩充 552
参考文献 562