现代C++程序设计PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:(美)Barbara Johnston著;曾葆青,丁晓非等译
- 出 版 社:清华大学出版社
- 出版年份:2005
- ISBN:7302108056
- 页数:569 页
第1章 C++与软件开发 1
欢迎来到C++的世界 2
1.1 什么是C,什么是C++ 4
1.1.1 C和C++发展简史 5
1.1.2 C/C++是编译语言 5
1.1.3 为什么程序员们喜欢C++ 6
1.2 什么是面向对象 7
1.2.1 C++程序不是自动面向对象的 7
1.2.2 一个简单的面向对象程序案例 7
1.2.3 面向对象的软件更受欢迎 8
1.3 结构化设计与面向对象设计 9
1.3.1 ATM的结构化方法 9
1.3.2 ATM的面向对象方法 9
1.4.1 如何不编程 11
1.4 软件开发技术简介 11
1.5 找错 12
1.5.1 我的程序哪儿出了错 12
作业 13
简答题 13
目录 13
复习题与作业 13
致谢 13
第2章 C++入门:数据类型、变量、操作符、算术、简单输入输出 14
软件开发简介 15
2.1 编程基础 15
2.1.1 算法设计 15
2.1.3 练习:如何给猫洗澡 17
2.1.2 走成功编程之路 17
2.1.4 三分原则 18
2.1.5 如何编程 19
2.2 术语及项目的建立 19
2.2.1 项目的建立步骤 20
2.3 C++程序的一般格式 21
2.3.1 Hello World!程序 21
2.3.2 注释 21
2.3.3 预处理指令 22
2.3.4 main函数 22
2.3.5 函数首行 22
2.3.6 C++语句 23
2.3.7 气象信息 23
2.3.8 空白字符与C++灵活的编程风格 24
2.3.9 语法与编译错误 25
2.3.10 C++关键字 26
2.3.11 大小写敏感 27
2.3.12 好的编程风格 27
2.3.13 坚持好的风格 27
2.3.14 关于程序中的注释 28
2.4 程序与数据:球与球拍 28
2.5 C++中的数据类型 29
2.5.1 物品架=内存,容器=数据类型,标签=变量名 30
2.5.2 数据类型修饰符 31
2.5.3 找错:整数有多大 31
2.6 C++中的变量声明 32
2.6.2 在哪里声明变量 33
2.6.1 C++中的命名规则 33
2.7.1 操作的优先级 34
2.7 C++中的操作符 34
2.7.2 赋值操作符 35
2.7.3 算术操作符 36
2.7.4 自增量和自减量操作符 41
2.7.5 累计操作符 42
2.7.6 C++中的其他操作符 43
2.8 其他话题:#define、const和数据类型转换 43
2.8.1 #define 43
2.8.2 const修饰符 44
2.8.3 const优于#define吗 45
2.8.4 数据类型转换 46
2.10.1 找错:赋值操作的摆放位置 48
2.9 键盘输入和屏幕输出 48
2.10 练习 48
2.10.2 计算圆柱体的体积 49
2.10.3 求余和距离换算 50
2.10.4 将字符数据表示为十进制、十六进制、八进制数,流格式化 51
复习题与作业 51
简答题 51
程序改错题 52
代码阅读 53
编程题 54
第3章 控制语句和循环 55
判断,还是判断 56
3.1 关系操作符和逻辑操作符 56
3.1.1 表达式求值和操作符优先级 57
3.2 if语句 59
3.2.1 if else语句 60
3.2.2 if语句中的括号错误 61
3.2.3 if—else if—else语句 62
3.2.4 低效率编程方法 64
3.2.5 if else:This Old Man编程举例 65
3.2.6 嵌套if else语句 66
3.2.7 “?”操作符 67
3.3 switch语句 68
3.3.1 找错:不要忘了break 69
3.4 循环语句概述 70
3.4.1 加括号还是不加括号 70
3.5 for循环 71
3.4.2 无法跳出无穷循环 71
3.5.1 不要更改循环指标 72
3.5.2 for循环举例 73
3.6 while循环 74
3.6.1 while循环举例 75
3.7 do while循环 76
3.7.1 do while举例 77
3.8 排除错误 79
3.8.1 4种常见错误 79
3.8.2 找错:循环无法中止 80
3.8.3 找错:分号和括号 82
3.8.4 找错:放错位置的else、非法else、文件不完整错误 83
3.9 总结 84
3.8.5 调试程序 84
3.10 练习 86
3.9.1 缩进原则 86
3.10.1 时间转换 87
3.10.2 数 89
3.10.3 输出图案 90
复习题与作业 92
简答题 92
找错题:编译错误 93
找错题:运行期错误 93
代码阅读 95
编程题 95
第4章 指针、地址、间接寻址操作符 97
4.2 变量与内存 98
泊车与指针 98
4.1 指针的重要性 98
4.2.1 sizeof操作符 99
4.2.2 分配内存 100
4.2.3 计算机内存与十六进制数 101
4.3 取地址操作符& 102
4.4 指针 104
4.4.1 指针与取地址操作符 104
4.4.2 小红帽与白宫 106
4.4.3 指针与间接寻址操作符 106
4.4.4 指针类型混用 109
4.5 指针有什么用 110
4.5.1 C++中的函数只返回一个值 110
4.5.2 高效处理大数据结构、数组、类 111
4.6 总结 112
4.6.1 指针:早学,勤练 113
4.7 练习 113
4.7.1 问候与指针 113
4.7.2 “This Old Man”与指针 114
4.7.3 金字塔的体积与指针 115
复习题与作 116
简答题 116
代码阅读 116
找错题 117
编程题 118
第5章 函数第Ⅰ部分:基本概念 119
5.1.1 使用函数之前 120
盖房子与开发软件 120
5.1 C++中的函数 120
5.1.2 有了函数以后 121
5.1.3 使用函数有很多优点 122
5.2 函数的基本格式 122
5.2.1 4个简单函数例子 123
5.2.2 调用函数与被调函数 124
5.3 写函数的要求 125
5.3.1 计算年龄 125
5.3.2 函数原型 126
5.3.3 函数调用 127
5.3.4 函数首行与函数体 127
5.3.5 传值调用 129
5.3.6 再看一个例子 130
5.3.7 回顾函数的一般形式 132
5.3.8 找错:类型失配 133
5.3.9 找错:调用语句中的数据类型 134
5.3.10 函数使用要求与C++库 135
5.4 局部变量、静态变量、全局变量 135
5.4.1 局部变量 136
5.4.2 找错:忘记声明变量 136
5.4.3 静态变量 137
5.4.4 全局变量 138
5.4.5 全局变量是危险的 139
5.4.6 找错:全局变量y1和math.h 139
5.5.1 传值调用复习 141
5.5 指针与函数 141
5.5.2 函数返回两个值 142
5.5.3 指针复习 142
5.5.4 传引用调用:将变量地址传给函数 143
5.6 总结 145
5.7 练习 146
5.7.1 素数 146
5.7.2 随机数 150
5.7.3 时间转换 151
5.7.4 猫和狗 152
复习题与作业 155
简答题 155
代码阅读 156
编程题 157
程序找错题 157
第6章 数组 159
跑得更快,跳得更高 160
6.1 使用单数据变量 160
6.2 数组基础 161
6.2.1 C++中的数组下标从零开始 162
6.2.2 数组不被自动初始化 162
6.2.3 初始化一维数组 162
6.2.4 for循环与数组 163
6.3 数组的伴随指针 165
6.3.1 数组指针 165
6.4 一维数组和函数 166
6.4.2 向函数传递一维数组 167
6.4.1 数组与数组指针 167
6.4.3 求数组元素的平均值 168
6.4.4 找错:不能从函数中“返回”数组 169
6.5 字符数组 172
6.5.1 字符数组的初始化 173
6.5.2 空字符 173
6.5.3 输入字符串 175
6.5.4 读取数值和字符数据 181
6.5.5 C++中的字符串函数 183
6.6 多维数组 184
6.6.1 二维数组的初始化 185
6.6.2 嵌套for循环和二维数组 186
6.6.3 二维数组的应用:水电杂费计算程序 186
6.7.1 重新设计水电杂费计算程序 188
6.7 多维数组与函数 188
6.7.2 白雪公主:用二维数组存储姓名 190
6.8 数组下标越界 190
6.8.1 数组下标越界等于灾难 192
6.9 从文件中读数据 192
6.10 总结 192
6.11 练习 194
6.11.1 常用单词 194
6.11.2 气象信息 195
复习题与作业 199
简答题 199
找错题:编译错误 199
找错题:运行期错误 200
编程题 201
第7章 用户定义的数据类型、结构与枚举 204
建城堡 205
7.1 用户定义的数据类型 205
7.1.1 将数据分组 205
7.1.2 结构与枚举 206
7.2 结构 206
7.2.1 数据类型基本概念回顾 206
7.2.2 创建并声明结构 207
7.2.3 结构说明 208
7.2.4 无名结构 209
7.3 访问结构成员 210
7.3.1 方框图 210
7.3.2 访问结构成员 210
7.4.1 结构数组举例 213
7.4 结构数组 213
7.5 结构中的结构 216
7.5.1 使用了时间结构的竞赛程序 216
7.5.2 嵌套了两个结构的结构 217
7.6 复制结构 219
7.7 结构与函数 220
7.7.1 时间结构举例 221
7.7.2 求线段的中点 222
7.8 传引用调用:将结构地址传递给函数 223
7.8.1 函数与指针:简要回顾 223
7.8.2 结构变量的赋值与返回 225
7.8.3 右箭操作符与点操作符 226
7.8.4 程序员的捷径 227
7.8.5 编程案例:观鸟 228
7.9 结构数组与函数 230
7.9.1 底线 230
7.9.2 举例:Student结构数组 231
7.10 枚举数据类型 232
7.10.1 通过枚举变量创建编号序列 233
7.10.2 枚举变量:赋值与比较 235
7.10.3 枚举变量找错:选择枚举值要谨慎 238
7.10.4 举例:数硬币 239
7.10.5 枚举变量的输入与输出 240
7.11 枚举类型与函数 242
7.11.1 举例:光学器件与错误代码 243
7.13.1 计算时间 245
7.12 多文件程序 245
7.13 练习 245
7.13.2 扑克牌 247
7.13.3 趣味狗秀 248
复习题与作业 251
简答题 251
找错:编译错误 252
找错:运行期错误 253
编程题 254
第8章 函数第Ⅱ部分:高级概念 256
8.1.1 基本要求 257
8.1.2 传值调用 257
8.1 函数复习 257
走进新世界 257
8.1.3 调用函数与被调函数 259
8.1.4 传引用调用:向函数传递变量地址 259
8.1.5 全局变量与函数 260
8.1.6 函数传递数据的4种方法 261
8.2 利用引用参数的传引用调用 262
8.2.1 通过引用参数进行函数的传引用调用 262
8.2.2 引用变量数组 269
8.3 函数重载 270
8.3.1 在过去的C时代 270
8.3.2 函数重载 271
8.4 可变长参数表函数 273
8.4.1 画线程序 274
8.4.2 参数顺序 275
8.4.3 找错:函数重载 278
8.4.4 不同类型的重载函数 280
8.5 内联函数 281
8.6 总结 282
复习题与作业 282
简答题 282
找错题:编译错误 283
找错题:运行期错误 285
编程题 287
第9章 类与对象 290
9.1 面向对象的原则和定义 291
9.1.1 简介 291
打蜡 291
9.1.2 面向对象语言的基本原则 293
9.1.3 对象存在于生活中 294
9.1.4 对象定义 295
9.2 类与对象 296
9.2.1 面向对象分析:特征、行为和功能 296
9.2.2 面向对象设计 297
9.2.3 结构化网球程序 298
9.2.4 类的声明 299
9.2.5 网球类 300
9.2.6 如何给数据成员赋值 302
9.3 定义成员函数 305
9.3.1 两种不同格式 305
9.3.2 举例:球体类 305
9.4.1 数据成员的初始化 308
9.4 类的构造函数 308
9.4.2 构造函数 309
9.4.3 举例:构造函数与时钟 310
9.4.4 构造函数注意事项 312
9.4.5 举例:两个日期 312
9.5 析构函数 315
9.6 一个简单例子 316
9.6.1 学习难点 316
9.6.2 举例:Gadgets程序 316
9.6.3 找错:与类相关的常见错误 320
9.7 对象数组 325
9.7.1 PhoneList对象数组 325
9.7.2 对象数组和扑克牌 328
9.8 操作符重载与对象 330
9.8.1 一元操作符重载 331
9.8.2 增量/减量操作符的前缀形式与后缀形式 332
9.8.3 二元操作符重载 333
9.9 指针与类 339
9.9.1 举例 340
9.10 总结 346
9.10.1 结构与类的比较 347
9.11 练习 348
9.11.1 足球运动员 348
复习题与作业 353
简答题 353
找错题:编译错误 353
找错题:运行期错误 356
编程题 358
第10章 类之间的关系 360
开心时刻 361
10.1 对象模型和类关系 361
10.2 使用C++的类 362
10.2.1 输入输出流类iostream 362
10.2.2 C++字符串类 362
10.2.3 C++数值类 362
10.2.4 使用名字空间std 363
10.2.5 名字空间举例 363
10.3 “有”关系和“使用”关系 365
10.3.1 例1:顾客与收银员 365
10.3.2 例2:掷色子 372
10.3.3 例3:教练的秒表 376
10.3.4 例4:可乐零售机 379
10.4 总结 387
作业 387
第11章 继承与虚函数 392
家长与孩子 393
11.1 为什么继承如此重要 393
11.1.1 举例:计数器类 393
11.1.2 答案是继承 395
11.2 继承基础 395
11.2.1 举例:Counter与NewCounter 395
11.2.2 受保护的成员 399
11.2.3 雇员、经理、执行总裁 401
11.3 存取说明符的特殊用法 408
11.5 继承、构造函数和析构函数 410
11.5.1 复习构造函数和析构函数 410
11.4 多重继承 410
11.5.2 基类和派生类的构造函数 411
11.5.3 基类和派生类的析构函数 411
11.5.4 基类和派生类构造函数的参数传递 412
11.5.5 找错:继承 419
11.6 继承举例 420
11.6.1 动物园 421
11.6.2 洗牌与发牌 424
11.6.3 面向对象程序设计 425
11.6.4 类声明 427
11.7.1 多态:一个界面,多种形式 434
11.7 多态与虚函数 434
11.7.2 什么是虚函数 435
11.7.3 纯虚函数 437
11.7.4 虚函数的应用 438
11.8 总结 443
复习题与作业 443
简答题 443
编程题 444
第12章 高级C++编程 446
冰山的启示 447
12.1 动态内存分配 447
12.1.1 概述 447
12.1.2 new和delete操作符 448
12.1.3 如果new操作失败,会出什么事 451
12.2 星球大战 452
12.2.1 为二维和三维数组分配内存 452
12.2.2 在函数之间多次传递地址 457
12.3 异常处理 458
12.3.1 举例 459
12.3.2 new操作符的异常处理 461
12.4 微软基础类库(MFC) 462
12.4.1 简述 462
12.4.2 快速构建一个会发声的Windows应用程序 463
12.5 JavaTM程序设计语言 465
12.5.1 JavaTM是没有指针的C++ 465
12.5.2 Java版“Hello World” 466
12.6 总结:模板、标准模板库、友元 466
12.6.1 cout<<″\n再见!″; 467
附录A Visual C++使用入门 468
附录B C++关键字 480
附录C C++中的操作符 492
附录D ASCII码 493
附录E 位、字节、内存及十六进制表示法 497
附录F 文件输入输出 502
附录G C++的string类 515
附录H 多文件程序 524
附录I 键盘输入和屏幕输出 532
附录J Microsoft Visual C++调试工具 544
附录K 例子程序索引 552
参考文献 559
词汇表 560
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019