图书介绍
C++程序设计原理与实践2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)斯特劳斯特鲁普著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111303220
- 出版时间:2010
- 标注页数:649页
- 文件大小:105MB
- 文件页数:666页
- 主题词:C语言-程序设计
PDF下载
下载说明
C++程序设计原理与实践PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第0章 致读者1
0.1 本书结构1
0.1.1 一般方法2
0.1.2 简单练习、习题等2
0.1.3 进阶学习3
0.2 讲授和学习本书的方法4
0.2.1 本书内容顺序的安排6
0.2.2 程序设计和程序设计语言7
0.2.3 可移植性7
0.3 程序设计和计算机科学8
0.4 创造性和问题求解8
0.5 反馈方法8
0.6 参考文献8
0.7 作者简介9
第1章 计算机、人与程序设计11
1.1 介绍11
1.2 软件11
1.3 人13
1.4 计算机科学15
1.5 计算机已无处不在15
1.5.1 有屏幕和没有屏幕16
1.5.2 船舶16
1.5.3 电信17
1.5.4 医疗18
1.5.5 信息领域19
1.5.6 一种垂直的视角20
1.5.7 与C++程序设计有何联系21
1.6 程序员的理想21
第一部分 基本知识25
第2章 Hello,World!25
2.1 程序25
2.2 经典的第一个程序26
2.3 编译27
2.4 链接29
2.5 编程环境30
第3章 对象、类型和值34
3.1 输入34
3.2 变量35
3.3 输入和类型36
3.4 运算和运算符37
3.5 赋值和初始化39
3.5.1 实例:删除重复单词41
3.6 组合赋值运算符42
3.6.1 实例:重复单词统计42
3.7 命名43
3.8 类型和对象44
3.9 类型安全45
3.9.1 安全类型转换46
3.9.2 不安全类型转换46
第4章 计算51
4.1 计算51
4.2 目标和工具52
4.3 表达式53
4.3.1 常量表达式54
4.3.2 运算符55
4.3.3 类型转换56
4.4 语句56
4.4.1 选择语句57
4.4.2 循环语句61
4.5 函数64
4.5.1 使用函数的原因65
4.5.2 函数声明66
4.6 向量67
4.6.1 向量空间增长67
4.6.2 一个数值计算的例子68
4.6.3 一个文本处理的例子70
4.7 语言特性71
第5章 错误75
5.1 介绍75
5.2 错误的来源76
5.3 编译时错误77
5.3.1 语法错误77
5.3.2 类型错误77
5.3.3 警告78
5.4 连接时错误78
5.5 运行时错误79
5.5.1 调用者处理错误80
5.5.2 被调用者处理错误81
5.5.3 报告错误82
5.6 异常83
5.6.1 错误参数83
5.6.2 范围错误84
5.6.3 输入错误85
5.6.4 截断错误87
5.7 逻辑错误88
5.8 估计89
5.9 调试90
5.9.1 实用调试技术91
5.10 前置条件和后置条件94
5.10.1 后置条件95
5.11 测试96
第6章 编写一个程序100
6.1 一个问题100
6.2 对问题的思考100
6.2.1 程序设计的几个阶段101
6.2.2 策略101
6.3 回到计算器问题102
6.3.1 第一步尝试103
6.3.2 单词104
6.3.3 实现单词106
6.3.4 使用单词107
6.3.5 重新开始108
6.4 文法109
6.4.1 英文文法112
6.4.2 设计一个文法113
6.5 将文法转换为程序114
6.5.1 实现文法规则114
6.5.2 表达式115
6.5.3 项117
6.5.4 基本表达式118
6.6 试验第一个版本119
6.7 试验第二个版本122
6.8 单词流123
6.8.1 实现Token_stream124
6.8.2 读单词125
6.8.3 读数值126
6.9 程序结构127
第7章 完成一个程序131
7.1 介绍131
7.2 输入和输出131
7.3 错误处理133
7.4 处理负数135
7.5 模运算:%136
7.6 清理代码138
7.6.1 符号常量138
7.6.2 使用函数139
7.6.3 代码格式140
7.6.4 注释141
7.7 错误恢复143
7.8 变量145
7.8.1 变量和定义145
7.8.2 引入单词name148
7.8.3 预定义名字150
7.8.4 我们到达目的地了吗150
第8章 函数相关的技术细节153
8.1 技术细节153
8.2 声明和定义154
8.2.1 声明的类别156
8.2.2 变量和常量声明157
8.2.3 默认初始化158
8.3 头文件158
8.4 作用域160
8.5 函数调用和返回163
8.5.1 声明参数和返回类型163
8.5.2 返回一个值164
8.5.3 传值参数165
8.5.4 传常量引用参数166
8.5.5 传引用参数168
8.5.6 传值与传引用的对比169
8.5.7 参数检查和转换171
8.5.8 实现函数调用172
8.6 求值顺序175
8.6.1 表达式求值176
8.6.2 全局初始化176
8.7 名字空间177
8.7.1 using声明和using指令178
第9章 类相关的技术细节183
9.1 用户自定义类型183
9.2 类和成员184
9.3 接口和实现184
9.4 演化一个类185
9.4.1 结构和函数185
9.4.2 成员函数和构造函数187
9.4.3 保持细节私有性188
9.4.4 定义成员函数189
9.4.5 引用当前对象191
9.4.6 报告错误191
9.5 枚举类型192
9.6 运算符重载193
9.7 类接口195
9.7.1 参数类型195
9.7.2 拷贝197
9.7.3 默认构造函数197
9.7.4 const成员函数199
9.7.5 类成员和“辅助函数”200
9.8 Date类201
第二部分 输入和输出207
第10章 输入/输出流207
10.1 输入和输出207
10.2 I/O流模型208
10.3 文件209
10.4 打开文件210
10.5 读写文件211
10.6 I/O错误处理213
10.7 读取单个值215
10.7.1 将程序分解为易管理的子模块216
10.7.2 将人机对话从函数中分离218
10.8 用户自定义输出操作符219
10.9 用户自定义输入操作符220
10.10 一个标准的输入循环220
10.11 读取结构化的文件222
10.11.1 内存表示222
10.11.2 读取结构化的值224
10.11.3 改变表示方法226
第11章 定制输入/输出230
11.1 有规律的和无规律的输入和输出230
11.2 格式化输出230
11.2.1 输出整数231
11.2.2 输入整数232
11.2.3 输出浮点数232
11.2.4 精度233
11.2.5 域234
11.3 文件打开和定位235
11.3.1 文件打开模式235
11.3.2 二进制文件236
11.3.3 在文件中定位238
11.4 字符串流238
11.5 面向行的输入239
11.6 字符分类240
11.7 使用非标准分隔符241
11.8 还有很多未讨论的内容246
第12章 一个显示模型249
12.1 为什么要使用图形用户界面249
12.2 一个显示模型250
12.3 第一个例子250
12.4 使用GUI库252
12.5 坐标系253
12.6 形状253
12.7 使用形状类254
12.7.1 图形头文件和主函数254
12.7.2 一个几乎空白的窗口255
12.7.3 坐标轴256
12.7.4 绘制函数图257
12.7.5 Polygon257
12.7.6 Rectangle258
12.7.7 填充259
12.7.8 文本259
12.7.9 图片259
12.7.10 还有很多未讨论的内容260
12.8 让图形程序运行起来261
12.8.1 源文件261
第13章 图形类264
13.1 图形类概览264
13.2 Point和Line265
13.3 Lines267
13.4 Color268
13.5 Line_style270
13.6 Open_polyline271
13.7 Closed_polyline271
13.8 Polygon272
13.9 Rectangle273
13.10 管理未命名对象276
13.11 Text277
13.12 Circle278
13.13 Ellipse279
13.14 Marked_polyline280
13.15 Marks281
13.16 Mark282
13.17 Image283
第14章 设计图形类288
14.1 设计原则288
14.1.1 类型288
14.1.2 操作289
14.1.3 命名290
14.1.4 可变性291
14.2 Shape类291
14.2.1 一个抽象类292
14.2.2 访问控制293
14.2.3 绘制形状295
14.2.4 拷贝和可变性297
14.3 基类和派生类298
14.3.1 对象布局299
14.3.2 类的派生和虚函数定义300
14.3.3 覆盖301
14.3.4 访问302
14.3.5 纯虚函数302
14.4 面向对象程序设计的好处303
第15章 绘制函数图和数据图307
15.1 介绍307
15.2 绘制简单函数图307
15.3 Function类309
15.3.1 默认参数310
15.3.2 更多的例子311
15.4 Axis类311
15.5 近似313
15.6 绘制数据图316
15.6.1 读取文件317
15.6.2 一般布局318
15.6.3 数据比例319
15.6.4 构造数据图319
第16章 图形用户界面324
16.1 用户界面的选择324
16.2 “Next”按钮325
16.3 一个简单的窗口325
16.3.1 回调函数327
16.3.2 等待循环328
16.4 Button和其他Widget329
16.4.1 Widget329
16.4.2 Button330
16.4.3 In_box和Out_box330
16.4.4 Menu331
16.5 一个实例332
16.6 控制流的反转334
16.7 添加菜单335
16.8 调试GUI代码338
第三部分 数据结构和算法343
第17章 向量和自由空间343
17.1 介绍343
17.2 向量的基本知识344
17.3 内存、地址和指针345
17.3.1 运算符sizeof347
17.4 自由空间和指针347
17.4.1 自由空间分配348
17.4.2 通过指针访问数据349
17.4.3 指针范围349
17.4.4 初始化350
17.4.5 空指针351
17.4.6 自由空间释放351
17.5 析构函数353
17.5.1 生成的析构函数354
17.5.2 析构函数和自由空间355
17.6 访问向量元素356
17.7 指向类对象的指针356
17.8 类型混用:无类型指针和指针类型转换357
17.9 指针和引用359
17.9.1 指针参数和引用参数359
17.9.2 指针、引用和继承360
17.9.3 实例:列表360
17.9.4 列表的操作362
17.9.5 列表的使用363
17.10 this指针364
17.10.1 关于Link使用的更多讨论365
第18章 向量和数组369
18.1 介绍369
18.2 拷贝369
18.2.1 拷贝构造函数370
18.2.2 拷贝赋值372
18.2.3 拷贝术语373
18.3 必要的操作374
18.3.1 显示构造函数375
18.3.2 调试构造函数与析构函数376
18.4 访问向量元素377
18.4.1 对const对象重载运算符378
18.5 数组379
18.5.1 指向数组元素的指针380
18.5.2 指针和数组381
18.5.3 数组初始化383
18.5.4 指针问题383
18.6 实例:回文385
18.6.1 使用string实现回文386
18.6.2 使用数组实现回文386
18.6.3 使用指针实现回文387
第19章 向量、模板和异常391
19.1 问题391
19.2 改变向量大小393
19.2.1 方法描述393
19.2.2 reserve和capacity394
19.2.3 resize394
19.2.4 push_back395
19.2.5 赋值395
19.2.6 到现在为止我们设计的vector类397
19.3 模板397
19.3.1 类型作为模板参数398
19.3.2 泛型编程399
19.3.3 容器和继承401
19.3.4 整数作为模板参数402
19.3.5 模板参数推导403
19.3.6 一般化vector类403
19.4 范围检查和异常405
19.4.1 附加讨论:设计上的考虑406
19.4.2 使用宏407
19.5 资源和异常408
19.5.1 潜在的资源管理问题409
19.5.2 资源获取即初始化410
19.5.3 保证411
19.5.4 auto_ptr412
19.5.5 vector类的RAII412
第20章 容器和迭代器417
20.1 存储和处理数据417
20.1.1 处理数据417
20.1.2 一般化代码418
20.2 STL建议420
20.3 序列和迭代器423
20.3.1 回到实例424
20.4 链表425
20.4.1 列表操作426
20.4.2 迭代427
20.5 再次一般化vector428
20.6 实例:一个简单的文本编辑器429
20.6.1 处理行431
20.6.2 迭代431
20.7 vector、list和string434
20.7.1 insert和erase435
20.8 调整vector类达到STL版本的功能436
20.9 调整内置数组达到STL版本的功能438
20.10 容器概览439
20.10.1 迭代器类别440
第21章 算法和映射444
21.1 标准库中的算法444
21.2 最简单的算法:find444
21.2.1 一些一般的应用446
21.3 通用搜索算法:find_if()447
21.4 函数对象448
21.4.1 函数对象的抽象视图449
21.4.2 类成员上的谓词450
21.5 数值算法450
21.5.1 累积451
21.5.2 一般化accumulate()452
21.5.3 内积453
21.5.4 一般化inner_product()453
21.6 关联容器454
21.6.1 映射454
21.6.2 map概览456
21.6.3 另一个map实例458
21.6.4 unordered_map459
21.6.5 集合461
21.7 拷贝操作462
21.7.1 拷贝462
21.7.2 流迭代器462
21.7.3 使用集合保持顺序464
21.7.4 copy_if464
21.8 排序和搜索465
第四部分 拓宽视野471
第22章 理念和历史471
22.1 历史、理念和专业水平471
22.1.1 程序设计语言的目标和哲学471
22.1.2 编程理念473
22.1.3 风格/范型477
22.2 程序设计语言历史概览479
22.2.1 最早的程序语言480
22.2.2 现代程序设计语言的起源481
22.2.3 Algol家族485
22.2.4 Simula490
22.2.5 C491
22.2.6 C++493
22.2.7 今天的程序设计语言495
22.2.8 参考资源496
第23章 文本处理499
23.1 文本499
23.2 字符串499
23.3 I/O流502
23.4 映射503
23.4.1 实现细节507
23.5 一个问题508
23.6 正则表达式的思想510
23.7 用正则表达式进行搜索511
23.8 正则表达式语法513
23.8.1 字符和特殊字符514
23.8.2 字符集514
23.8.3 重复515
23.8.4 子模式516
23.8.5 可选项516
23.8.6 字符集和范围516
23.8.7 正则表达式错误518
23.9 与正则表达式进行模式匹配519
23.10 参考文献522
第24章 数值计算525
24.1 介绍525
24.2 大小、精度和溢出525
24.2.1 数值限制527
24.3 数组528
24.4 C风格的多维数组528
24.5 Matrix库529
24.5.1 矩阵的维和矩阵访问530
24.5.2 一维矩阵532
24.5.3 二维矩阵534
24.5.4 矩阵I/O536
24.5.5 三维矩阵536
24.6 实例:求解线性方程组537
24.6.1 经典的高斯消去法538
24.6.2 选取主元539
24.6.3 测试539
24.7 随机数540
24.8 标准数学函数541
24.9 复数542
24.10 参考文献543
第25章 嵌入式系统程序设计547
25.1 嵌入式系统547
25.2 基本概念549
25.2.1 可预测性551
25.2.2 理想551
25.2.3 生活在故障中552
25.3 内存管理553
25.3.1 动态内存分配存在的问题554
25.3.2 动态内存分配的替代方法556
25.3.3 存储池实例557
25.3.4 栈实例557
25.4 地址、指针和数组558
25.4.1 未经检查的类型转换559
25.4.2 一个问题:不正常的接口559
25.4.3 解决方案:接口类561
25.4.4 继承和容器564
25.5 位、字节和字566
25.5.1 位和位运算566
25.5.2 bitset569
25.5.3 有符号数和无符号数570
25.5.4 位运算573
25.5.5 位域574
25.5.6 实例:简单加密575
25.6 编码规范579
25.6.1 编码规范应该是怎样的579
25.6.2 编码原则实例580
25.6.3 实际编码规范584
第26章 测试589
26.1 我们想要什么589
26.1.1 说明590
26.2 程序正确性证明590
26.3 测试590
26.3.1 回归测试591
26.3.2 单元测试591
26.3.3 算法和非算法596
26.3.4 系统测试601
26.3.5 测试类604
26.3.6 寻找不成立的假设606
26.4 测试方案设计607
26.5 调试607
26.6 性能607
26.6.1 计时609
26.7 参考文献610
第27章 C语言613
27.1 C和C++:兄弟613
27.1.1 C/C++兼容性614
27.1.2 C不支持的C++特性615
27.1.3 C标准库616
27.2 函数617
27.2.1 不支持函数名重载617
27.2.2 函数参数类型检查618
27.2.3 函数定义619
27.2.4 C++调用C和C调用C++620
27.2.5 函数指针621
27.3 小的语言差异622
27.3.1 结构标签名字空间622
27.3.2 关键字623
27.3.3 定义623
27.3.4 C风格类型转换624
27.3.5 void*的转换625
27.3.6 枚举626
27.3.7 名字空间626
27.4 动态内存分配626
27.5 C风格字符串628
27.5.1 C风格字符串和const629
27.5.2 字节操作630
27.5.3 实例:strcpy()630
27.5.4 一个风格问题630
27.6 输入/输出:stdio631
27.6.1 输出631
27.6.2 输入632
27.6.3 文件633
27.7 常量和宏633
27.8 宏634
27.8.1 类函数宏635
27.8.2 语法宏636
27.8.3 条件编译636
27.9 实例:侵入式容器637
术语表644
参考书目648