C++精解和程序设计PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:(美)弗里德曼(Friedman,F L),(美)考夫曼(Koffman,E.B.)著;温秀梅等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2008
- ISBN:9787111238942
- 页数:509 页
第1章 计算机、问题求解及程序设计导言 1
1.1计算机概述 1
1.1.1早期的计算机 1
1.1.2计算机的分类 2
1.1.3计算机资源共享 2
1.2计算机硬件 3
1.2.1存储器 4
1.2.2中央处理器CPU 6
1.2.3输入/输出设备 7
1.2.4计算机网络 7
1.2.5万维网 8
1.3计算机软件 9
1.3.1操作系统 9
1.3.2应用软件 11
1.3.3程序设计语言 11
1.3.4面向对象程序设计 12
1.4高级语言程序设计的处理 13
1.5软件开发方法 16
1.5.1明确问题需求阶段 16
1.5.2分析问题阶段 16
1.5.3设计阶段 17
1.5.4实现 17
1.5.5测试 18
1.5.6维护 18
1.5.7如何面对软件开发过程中的失败 18
1.6应用软件开发方法 18
1.7计算机程序员的职业道德 20
1.7.1隐私和数据误用 20
1.7.2计算机黑客 20
1.7.3剽窃和软件盗版 21
1.7.4计算机资源的误用 21
本章小结 22
快速检测习题 22
复习题 23
采访Bjarne Stroustrup 23
第2章C++概述 26
2.1 C++语言基本语法成分 26
2.1.1注释 27
2.1.2编译预处理命令#include 27
2.1.3命名空间Namespace std 28
2.1.4 main函数 28
2.1.5声明语句 29
2.1.6可执行语句 29
2.2保留字和标识符 30
2.2.1保留字 30
2.2.2标识符 31
2.2.3大写字母和小写字母 31
2.2.4程序风格——选择标识符的名称 31
2.3数据类型和声明 32
2.3.1数据类型 32
2.3.2 string类 34
2.3.3数据类型的意义 35
2.3.4声明 35
2.3.5常量声明 36
2.4可执行语句 38
2.4.1内存中的程序 38
2.4.2赋值语句 38
2.4.3输入/输出操作 39
2.4.4输入语句 40
2.4.5程序输出 41
2.4.6 return语句 42
2.5 C++程序的一般形式 43
2.5.1程序风格——程序中的空格 44
2.5.2程序中的注释 44
2.5.3程序风格——使用注释 44
2.6算术表达式 46
2.6.1“/和“%”运算符 46
2.6.2混合类型表达式的数据类型 47
2.6.3混合类型的赋值语句 47
2.6.4包含多个运算符的表达式 48
2.6.5C++中数学公式的写法 50
2.7交互模式、批处理模式和数据文件 54
2.7.1输入重定向 55
2.7.2程序风格——提示与回显输出 55
2.7.3输出重定向 56
2.8常见的程序设计错误 57
2.8.1语法错误 57
2.8.2运行时错误 58
2.8.3未检测到的错误 59
2.8.4逻辑错误 59
本章小结 60
快速检测习题 61
复习题 62
程序设计题 62
采访Josée Lajoie 64
第3章 使用函数和类进行自顶向下设计 66
3.1根据已有信息构建程序 66
3.2库函数 72
3.2.1程序风格——加下划线强调新结构 73
3.2.2 C++库函数 74
3.2.3预习 75
3.3自顶向下设计和结构图 76
3.4无参函数 77
3.4.1函数原型 78
3.4.2函数定义 78
3.4.3函数在程序中的布局 79
3.4.4程序风格——在函数声明和定义中使用注释 81
3.4.5函数的执行顺序 81
3.4.6使用函数子程序的优点 81
3.5带输入参数的函数 84
3.5.1带输入参数的void函数 84
3.5.2带输入参数并有一个返回值的函数 85
3.5.3程序风格——函数接口注释 87
3.5.4程序风格——问题输入与输入参数 87
3.5.5带多个参数的函数 88
3.5.6实参和形参列表的对应 89
3.5.7函数的数据区 89
3.5.8使用驱动程序测试函数 90
3.6名称作用域 91
3.7通过类扩展C++:使用string类 93
3.7.1 string类 93
3.7.2声明string对象 94
3.7.3读取和显示string对象 94
3.7.4字符串的赋值和连接 94
3.7.5运算符重载 95
3.7.6点表示法(函数length和at的调用) 95
3.7.7用于字处理操作的成员函数 95
3.7.8把子串赋给string对象 96
3.8常见程序设计错误 97
本章小结 99
快速检测习题 100
复习题 101
程序设计题 101
采访Mark Hall 103
第4章 选择结构:if和switch语句 105
4.1控制结构 105
4.2逻辑表达式 106
4.2.1使用关系和相等运算符的逻辑表达式 106
4.2.2使用逻辑运算符的逻辑表达式 107
4.2.3运算符的优先级 108
4.2.4书写C++条件 109
4.2.5字符和字符串的比较 110
4.2.6布尔类型赋值 110
4.2.7布尔类型值的表示 111
4.2.8用整数表示逻辑值 111
4.3 if控制语句概述 112
4.3.1带两个分支的if语句 112
4.3.2简单if语句 113
4.3.3带有字符和字符串的if语句条件 114
4.3.4 if语句的格式 115
4.4带复合选项的if语句 116
4.4.1程序风格——使用复合的true或false语句编写if语句 117
4.4.2跟踪if语句 117
4.5算法的决策步骤 119
4.5.1程序风格——使用全局常量增强程序的可读性和可维护性 124
4.5.2关于标识符作用域的注意事项 124
4.5.3在结构图中添加数据流信息 124
4.5.4关于软件开发方法的说明 125
4.6检查算法的正确性 125
4.7嵌套if语句和多分支条件判断 127
4.7.1嵌套if语句和if语句序列的比较 127
4.7.2把嵌套if语句写成多分支条件判断语句 128
4.7.3条件顺序 128
4.7.4程序风格——验证变量值 130
4.7.5逻辑表达式的短路检测 131
4.8 switch控制语句 132
4.8.1正确使用break关键字 134
4.8.2嵌套if语句和switch语句的比较 134
4.8.3使用switch语句选择候选函数 134
4.9常见的程序设计错误 136
本章小结 136
快速检测习题 138
复习题 139
程序设计题 140
第5章 重复和循环语句 143
5.1计数循环和while语句 143
5.1.1while语句 144
5.1.2while语句的语法规则 145
5.2在循环中累计求和或乘积 147
5.2.1程序风格——编写通用的循环 148
5.2.2求一组数据的乘积 149
5.2.3复合赋值运算符 149
5.3 for语句 151
5.3.1程序风格——for语句的格式 152
5.3.2自增/自减运算符 152
5.3.3程序风格——局部变量的声明 153
5.3.4步长不为1的自增/自减 154
5.3.5将结果以表格形式显示 154
5.4条件循环 156
5.4.1循环控制变量递减的循环 157
5.4.2执行次数为零的循环 160
5.4.3程序风格——在函数子程序中执行循环 160
5.4.4更为通用的条件循环 160
5.5循环设计和循环模式 161
5.5.1哨兵值控制的循环 161
5.5.2计算平均值 162
5.5.3标志控制的循环 162
5.6 do-while语句 166
5.7 while、for和do-while循环回顾 169
5.8循环嵌套 171
5.9调试、测试程序 174
5.9.1使用调试器 174
5.9.2不使用调试器调试程序 175
5.9.3差1错误 176
5.9.4测试 176
5.10常见的程序设计错误 176
本章小结 178
快速检测习题 180
复习题 181
程序设计题 182
采访Mike Weisert 184
第6章 模块化程序设计 186
6.1值和引用参数 186
6.1.1值调用参数与引用调用参数 188
6.1.2 void类型的函数能够返回结果 189
6.1.3使用引用参数或值参数的时机 189
6.1.4程序风格——书写形参列表 189
6.1.5值参数和引用参数的比较 190
6.1.6值参数提供的保护 190
6.1.7实参/形参列表对应关系回顾 190
6.2具有输入和输出参数的函数 193
6.3使用函数进行逐步设计 198
6.3.1程序中标识符的多次声明 204
6.3.2程序风格——使用函数实现相对简单的算法步骤 204
6.3.3程序风格——内聚函数 204
6.4在函数中使用对象 205
6.5程序系统的调试和测试 207
6.5.1自顶向下测试和桩模块 207
6.5.2自底向上测试和驱动器 207
6.5.3程序系统的调试提示 208
6.5.4标识符的作用域和观察窗口变量 209
6.5.5黑盒测试与白盒测试 209
6.6递归函数(选学) 210
6.7常见程序设计错误 212
本章小结 213
快速检测习题 214
复习题 215
程序设计题 215
采访Robert Sebesta 218
第7章 简单数据类型 220
7.1常量复习 220
7.2数值数据类型的内部表示 221
7.2.1数据类型的定点表示和浮点表示 221
7.2.2整型 222
7.2.3浮点类型 222
7.2.4数值型值常量的数据类型 222
7.2.5整型和浮点类型的取值范围 222
7.2.6数值误差 223
7.2.7混合类型:类型提升 223
7.2.8类型转换 224
7.2.9强制类型转换 224
7.3字符数据和函数 225
7.4布尔类型数据和逻辑表达式 228
7.4.1逻辑表达式求补 228
7.4.2布尔类型函数 229
7.4.3布尔类型数据的输入与输出 230
7.5枚举类型 231
7.5.1字符作为枚举元素值 232
7.5.2枚举类型的比较 232
7.5.3整数类型之间的差别 232
7.5.4读写枚举类型值 233
7.5.5程序风格——在switch语句中使用return语句 234
7.5.6枚举类型声明语句的放置位置 234
7.5.7枚举类型的强制类型转换 235
7.6常见程序设计错误 236
本章小结 237
快速检测习题 238
复习题 239
程序设计题 239
第8章 流和文件 242
8.1标准输入/输出流 242
8.1.1每次读取一个字符 244
8.1.2程序风格——使用流作为条件 246
8.2外部文件 247
8.2.1交互式与批处理 247
8.2.2外部文件的目录名 248
8.2.3将流连接到文件 248
8.2.4copyLine函数 250
8.2.5换行符的更多信息 250
8.2.6使用getline处理文件流 251
8.2.7程序风格——读取文件名 252
8.3使用外部文件进行程序间的通信 252
8.4关于读取字符串数据的更多信息 256
8.5输入/输出控制符 258
8.6常见程序设计错误 260
本章小结 261
快速检测习题 262
复习题 262
程序设计题 263
采访Anita Borg 266
第9章 数据结构:数组和结构体 268
9.1数组数据类型 268
9.1.1数组声明 268
9.1.2数组的初始化 270
9.1.3数组下标 271
9.2数组元素的顺序存取 273
9.3数组参数 277
9.3.1数组元素作为函数参数 277
9.3.2传递数组参数 278
9.4读取部分数组元素 281
9.5查找和排序数组 283
9.5.1查找数组中的最小值 283
9.5.2程序风格——作为注释的断言 284
9.5.3数组查找 285
9.5.4对数组按升序进行排序 286
9.6 Big-O方法分析算法 288
9.6.1查找算法的分析 288
9.6.2排序算法的分析 288
9.7结构体数据类型 289
9.7.1声明结构体类型和结构体变量 289
9.7.2访问结构体成员 291
9.8结构体作为操作数和参数 292
9.8.1结构体复制或赋值 292
9.8.2结构体作为参数进行传递 292
9.8.3读取结构体 293
9.8.4引用参数的效率 294
9.9字符串作为字符数组(选学) 294
9.9.1声明和初始化字符数组 295
9.9.2读写字符数组 295
9.9.3一些有用的字符数组函数 296
9.10常见的程序设计错误 297
本章小结 297
快速检测习题 298
复习题 299
程序设计题 300
第10章 用户自定义类 304
10.1类的定义和使用 304
10.1.1 counter类 304
10.1.2 counter类的定义 305
10.1.3头文件counter.h中的编译预处理命令 307
10.1.4使用counter类 307
10.1.5文件CounterTest.cpp中的编译预处理命令 308
10.2类的实现 309
10.2.1构造函数 311
10.2.2访问器和修改器函数 311
10.2.3文件counter.cpp中的编译预处理命令 311
10.3类和对象的使用规则总结 312
10.3.1对象作为类的实例 312
10.3.2公有访问和私有访问 312
10.3.3类和成员函数定义的语法 313
10.3.4结构体和类的比较 314
10.3.5工程文件和独立编译 315
10.3.6数组、结构体和类的组合 315
10.3.7函数重载和多态性 315
10.4类对象作为操作数和参数 316
10.5fraction类 317
10.5.1fraction类的设计 317
10.5.2使用fraction类 319
10.5.3fraction类的实现文件 320
10.6circle类 323
10.6.1circle类的设计 323
10.6.2使用circle类 325
10.6.3circle类的实现文件 325
10.7SimpleString类 327
10.7.1simplestring类的设计 327
10.7.2simpleString类的定义 328
10.7.3测试simplestring类的成员函数 329
10.7.4simplestring类的实现文件 330
10.8储蓄账户类 338
10.9常见的程序设计错误 338
本章小结 339
快速检测习题 340
复习题 340
程序设计题 341
采访Timothy Budd 343
第11章 数据抽象和面向对象设计 345
11.1多维数组 345
11.1.1声明二维数组 345
11.1.2初始化二维数组 346
11.1.3使用循环嵌套处理二维数组 346
11.1.4二维数组作为函数参数 347
11.1.5多维数组 348
11.2结构体数组 349
11.3模板类 351
11.3.1模板类的定义 351
11.3.2模板类的实现 353
11.3.3支持独立编译的编译指令 355
11.4索引表抽象数据类型 355
11.4.1为何使用索引表类 355
11.4.2索引表类的分析和设计 356
11.4.3使用indexList类 358
11.5实现索引表类 360
11.6面向对象设计举例 365
11.7运算符重载和友元 371
11.7.1运算符重载 371
11.7.2友元 372
11.7.3实现电话号码簿entry类 373
11.8 vector类 375
11.8.1 vector类的成员函数 376
11.8.2通过迭代器访问向量 376
11.8.3标准算法 377
11.8.4在电话号码簿程序中使用vector和algorithm类 378
11.9常见的程序设计错误 381
本章小结 382
快速检测习题 383
复习题 383
程序设计题 384
采访John Lakos 387
第12章 递归 389
12.1递归的特点 389
12.2跟踪递归函数 391
12.2.1跟踪递归函数 391
12.2.2逆序显示字符 392
12.2.3函数调用中的栈 394
12.2.4 C++中参数栈的实现 395
12.3递归的数学函数 396
12.4带有数组参数的递归函数 400
12.5使用递归方法解决问题 404
12.6常见的程序设计错误 408
本章小结 409
快速检测习题 409
复习题 410
程序设计题 410
采访Marshall Cline 411
第13章 指针和动态数据结构 414
13.1指针和new运算符 414
13.1.1通过指针访问数据 415
13.1.2指针操作 415
13.1.3指向结构体的指针 416
13.2堆操作 418
13.2.1 new运算符对堆的影响 418
13.2.2将内存单元返还给堆 418
13.3链表和list类 419
13.3.1声明结点 420
13.3.2链接结点 420
13.3.3在链表中插入结点 421
13.3.4在表头插入结点 422
13.3.5在表尾插入结点 422
13.3.6删除结点 422
13.3.7遍历链表 423
13.3.8循环链表和双向链表(选学) 424
13.3.9 list类 425
13.4栈抽象数据类型 427
13.4.1 C++的stack类 427
13.4.2实现stack模板类 430
13.4.3实现栈操作 431
13.4.4测试栈ADT 432
13.5队列抽象数据类型 433
13.5.1 C++中的queue类 434
13.5.2实现队列ADT 434
13.6二叉树 438
13.6.1二叉搜索树 439
13.6.2在二叉搜索树中进行查找 439
13.6.3创建二叉搜索树 440
13.6.4显示二叉搜索树 441
13.7二叉搜索树的抽象数据类型 443
13.7.1二又树类的设计 443
13.7.2二叉树类的实现 444
13.8二又搜索树的效率 448
13.9常见的程序设计错误 449
13.9.1语法错误 449
13.9.2运行时错误 449
本章小结 450
快速检测习题 450
复习题 451
程序设计题 453
第14章 使用进程和线程进行多重处理 456
14.1多任务处理 456
14.1.1串行程序设计和并行程序设计 456
14.1.2时间共享多任务处理 457
14.1.3抢占式多任务处理 457
14.1.4时间片与并行关系 458
14.1.5并发程序设计 459
14.2进程 459
14.2.1创建进程 460
14.2.2等待线程 461
14.2.3由进程执行另一程序 462
14.3进程间通信与管道 463
14.3.1管道 463
14.3.2使用管道 464
14.3.3使用标准输入进行进程间通信 465
14.3.4举例说明父进程与子进程间的通信 466
14.4线程 469
14.4.1创建线程 469
14.4.2线程同步 471
14.4.3互斥锁 472
14.4.4死锁 474
14.5常见程序设计错误 486
本章小结 486
C++结构复习 487
快速检测习题 488
复习题 488
程序设计题 488
附录AASCII字符集 490
附录B保留字和特殊字符 491
附录CC++库函数精选 492
附录D运算符 496
附录E继承和多态性简介 497
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019