C++入门经典(第10版 英文限量版)
- ISBN:9787302582076
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:1116
- 出版时间:2021-07-01
- 条形码:9787302582076 ; 978-7-302-58207-6
本书特色
适读人群 :可作为高校C++程序设计课程的教材,也适合自学。畅销十余年的C++编程经典 结构严谨、清晰,行文诙谐幽默,妙趣横生 80+技巧提示,30+生动有趣的编程实例 60+精彩视频,410+自测题,220+编程项目
内容简介
作为C++入门经典教材,《C++入门经典(0版 英文限量版)》结合作者多年的教学经验,清楚梳理出一个有利于教与学的结构体系,从各章开头的内容总览,到随处可见的自测题、小结框、编程提示和编程陷阱,再到章末的小结、习题、编程练习和编程项目,由浅入深,从简到繁,可以帮助初学者渐入佳境,逐步理解并掌握重要的编程概念。 《C++入门经典(0版 英文限量版)》共18章,8个附录。在讲解C++基础知识之后,循序渐进地引导读者深入函数、I/O流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类、异常以及标准模板库。《C++入门经典(0版 英文限量版)》前几版被全国100多所高校选作C++程序设计课程的教材,很受师生欢迎。《C++入门经典(0版 英文限量版)》也适合自学,不同层次的知识点和测试练习,可以帮助读者以自己的节奏进入美妙的C++编程世界。
目录
目 录
第1章 计算机和C++编程入门 1
1.1 计算机系统 2
硬件 2
软件 5
高级语言 6
编译器 7
历史回顾 9
1.2 编程和问题求解 9
算法 10
程序设计 11
面向对象编程 12
软件生命周期 12
1.3 C++入门 13
C++语言的起源 13
一个C++示范程序 14
陷阱:在\n中错误地使用斜杠 17
编程提示:输入和输出语法 17
简单C++程序的布局 17
陷阱:在include的文件名前错误地添加一个空格 19
编译和运行C++程序 19
陷阱:编译C++11程序 19
编程提示:让程序运行起来 20
1.4 测试和调试 22
各种程序错误 22
陷阱:错误地假定程序正确 23
小结 24
自测题答案 25
编程练习 26
编程项目 27
第2章 C++基础知识 29
2.1 变量和赋值 30
变量 30
名称:标识符 32
变量声明 33
赋值语句 34
陷阱:未初始化的变量 35
编程提示:使用有意义的名称 36
2.2 输入和输出 37
使用cout进行输出 37
include预编译指令和命名空间 38
转义序列 39
编程提示:用\n或endl终止每一个程序 40
格式化带小数点的数字 41
用cin进行输入 42
设计输入和输出 43
编程提示:I/O中的换行 43
2.3 数据类型和表达式 44
int类型和double类型 44
其他数值类型 45
C++11类型 46
char类型 47
bool类型 48
string类简介 48
类型的兼容性 49
算术操作符和表达式 50
陷阱:除法中的整数 52
更多赋值语句 53
2.4 简单控制流程 54
一个简单的分支机制 54
陷阱:连续的不等式 58
陷阱:该用==的时候用了= 58
复合语句 59
简单的循环机制 61
递增操作符和递减操作符 63
编程实例:信用卡余额 64
陷阱:无限循环 65
2.5 程序风格 67
缩进 67
注释 67
为常量命名 69
小结 71
自测题答案 72
编程练习 75
编程项目 76
第3章 更多的控制流程 81
3.1 使用布尔表达式 82
布尔表达式求值 82
陷阱:将布尔表达式转换成int值 85
枚举类型(选读) 87
3.2 多路分支 87
嵌套语句 88
编程提示:在嵌套语句中使用花括号 88
多路if-else语句 90
编程实例:州收入税 91
switch语句 94
陷阱:忘记在switch语句中添加break 96
为菜单使用switch语句 97
代码块 98
陷阱:疏忽局部变量 100
3.3 C++循环语句详解 101
while语句回顾 101
再论递增操作符和递减操作符 102
for语句 104
陷阱:for语句中多余的分号 108
应该使用哪种循环 108
陷阱:未初始化的变量和无限循环 110
break语句 110
陷阱:嵌套循环中的break语句 111
3.4 设计循环 111
求和与求乘积的循环 112
终止循环 113
嵌套循环 115
调试循环 116
小结 119
自测题答案 120
编程练习 123
编程项目 124
第4章 过程抽象和返回值的函数 129
4.1 自顶向下设计 130
4.2 预定义函数 130
使用预定义函数 131
随机数生成 134
强制类型转换 135
强制类型转换的古老形式 137
陷阱:整数除法丢弃了小数部分 137
4.3 程序员自定义函数 138
函数定义 138
返回布尔值的函数 142
另一种形式的函数声明 142
陷阱:实参顺序错误 143
函数定义语法小结 144
再论函数定义的位置 144
编程提示:在分支语句中使用函数调用 145
4.4 过程抽象 146
黑盒的比喻 146
编程提示:选择形参名称 147
编程提示:嵌套循环 148
案例分析:购买比萨 150
编程提示:使用伪代码 154
4.5 作用域和局部变量 155
函数如同小程序 155
编程实例:豌豆试验田 157
全局常量和全局变量 157
传值形参是局部变量 158
块作用域 160
再论命名空间 161
编程实例:阶乘函数 163
4.6 重载函数名称 164
重载入门 164
编程实例:购买比萨(修订版) 166
自动类型转换 168
小结 170
自测题答案 171
编程练习 173
编程项目 174
第5章 用函数完成所有子任务 177
5.1 void函数 178
void函数的定义 178
编程实例温度换算 180
void函数中的return语句 181
5.2 传引用参数 182
初探传引用调用 182
传引用调用详解 184
编程实例:swapValues函数 187
混合的参数列表 188
编程提示:应该使用哪种参数 189
陷阱:疏忽造成的局部变量 190
5.3 使用过程抽象 192
在函数中调用其他函数 192
前条件和后条件 193
案例分析:超市定价系统 194
5.4 测试和调试函数 198
存根和驱动程序 198
5.5 常规调试技术 201
不抱成见 201
检查常见错误 202
定位错误 202
assert宏 203
小结 205
自测题答案 206
编程练习 208
编程项目 209
第6章 I/O流——对象和类入门 213
6.1 流和基本文件I/O 214
为什么要用文件来I/O 215
文件I/O 215
类与对象入门 218
编程提示:检查文件是否成功打开 219
文件I/O技术 222
追加到文件(选读) 223
文件名作为输入(选读) 225
6.2 流I/O工具 227
用流函数格式化输出 227
操纵元 230
流作为函数实参 232
编程提示:检查文件尾 233
命名空间的问题 234
编程实例:整理文件格式 235
6.3 字符I/O 236
get和put成员函数 236
putback成员函数(选读) 239
编程实例:检查输入 239
陷阱:输入中不期而遇的'\n' 241
编程实例:另一个newLine函数 242
函数的默认实参(选读) 243
eof成员函数 246
编程实例:编辑文本文件 247
预定义字符函数 249
陷阱:toupper和tolower返回值 250
小结 252
自测题答案 253
编程练习 257
编程项目 258
第7章 数组 263
7.1 数组入门 264
声明和引用数组 264
编程提示:为数组使用for循环 266
陷阱:数组索引总是从零开始 266
编程提示:为数组长度使用已定义常量 266
数组在内存中的表示 267
陷阱:数组索引越界 268
初始化数组 269
编程提示:C++11基于范围的for语句 270
7.2 函数中的数组 272
索引变量作为函数参数 272
整个数组作为函数参数 274
const参数修饰符 276
陷阱:const参数修饰符的使用不一致 277
返回数组的函数 278
案例分析:产量图 278
7.3 数组编程 287
部分填充数组 287
编程提示:不要吝啬形参 289
编程实例:搜索数组 290
编程实例:数组排序 291
编程实例:冒泡排序 294
7.4 多维数组 297
多维数组基础 297
多维数组参数 298
编程实例:二维打分程序 299
陷阱:在数组索引之间使用逗号 302
小结 303
自测题答案 304
编程练习 306
编程项目 307
第8章 字符串和向量 315
8.1 字符串的数组类型 316
C字符串值和C字符串变量 317
陷阱:为C字符串使用=和== 319
中的其他函数 321
陷阱:使用strcpy复制C字符串越界 322
C字符串输入和输出 324
C字符串到数值的转换和可靠输入 326
8.2 标准string类 330
标准类string简介 330
string类的I/O 332
编程提示:getline的其他版本 334
陷阱:混合使用cin>>变量;和getline 335
用string类进行字符串处理 336
编程实例:回文测试 338
string对象和C字符串之间的转换 341
字符串和数字之间的转换 342
8.3 向量 342
向量基础知识 342
陷阱:使用方括号时超出向量长度 345
编程提示:向量赋值具有良好行为 345
效率问题 345
小结 347
自测题答案 348
编程练习 349
编程项目 350
第9章 指针和动态数组 355
9.1 指针 356
指针变量 357
基本内存管理 362
陷阱:虚悬指针 362
静态变量和自动变量 362
编程提示:定义指针类型 363
9.2 动态数组 364
数组变量和指针变量 365
创建和使用动态数组 366
指针运算(选读) 370
多维动态数组(选读) 371
小结 373
自测题答案 374
编程练习 374
编程项目 375
第10章 定义类 379
10.1 结构 380
用于异种数据的结构 380
陷阱:结构定义中忘记添加分号 383
结构作为函数参数 384
编程提示:使用层次化结构 384
对结构进行初始化 386
10.2 类 388
定义类和成员函数 388
公共成员和私有成员 391
编程提示:将所有成员变量设为私有 396
编程提示:定义取值函数和赋值函数 397
编程提示:将赋值操作符用于对象 398
编程实例:BankAccount类(版本1) 398
总结类的一些特征 402
用于初始化的构造函数 403
编程提示:总是包括默认构造函数 408
陷阱:无参构造函数 409
C++11的成员初始化器和构造函数委托 410
10.3 抽象数据类型 411
用于生成抽象数据类型的类 412
编程实例:类的另一种实现 414
10.4 继承 418
派生类 418
定义派生类 419
小结 423
自测题答案 424
编程练习 428
编程项目 428
第11章 类中的友元函数、重载操作符和数组 433
第12章 独立编译和命名空间 491
第13章 指针和链表 517
第14章 递归 553
第15章 继承 585
第16章 异常处理 627
第17章 模板 651
第18章 标准模板库 675
附录A C++关键字 729
附录B 操作符的优先级 730
附录C ASCII字符集 731
附录D 部分库函数 732
附录E 内联函数 736
附录F 重载数组索引方括号 737
附录G this指针 738
附录H 将操作符重载为成员操作符 740
作者简介
Walter Savitch,美国加州大学圣迭戈分校荣誉退休教授。拥有加州大学伯克利分校博士学位,曾担任加州大学圣迭戈分校计算机科学系教授和认知科学跨学科博士项目主任。他在复杂性理论和并行计算模型方面具有贡献,其研究领域包括形式语言理论和计算语言学等。
-
全图解零基础word excel ppt 应用教程
¥16.3¥48.0 -
C Primer Plus 第6版 中文版
¥62.6¥108.0 -
零信任网络:在不可信网络中构建安全系统
¥34.2¥59.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
情感计算
¥71.2¥89.0 -
大模型RAG实战 RAG原理、应用与系统构建
¥74.3¥99.0 -
大学计算机基础实验教程(MS Office版)——面向数据分析能力培养
¥29.1¥39.8 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥51.8¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥65.6¥89.8 -
LINUX实战——从入门到精通
¥49.0¥69.0 -
剪映AI
¥52.8¥88.0 -
快速部署大模型:LLM策略与实践(基于ChatGPT等大语言模型)
¥56.9¥79.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
数据存储架构与技术(第2版)
¥62.9¥89.8 -
纹样之美:中国传统经典纹样速查手册
¥81.8¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
实战知识图谱
¥48.3¥69.0 -
做好课题申报:AI辅助申请书写作
¥48.9¥69.8 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0