定 价:¥198.00
作 者: | (美)托尼·加迪斯,朱迪·沃尔特斯,戈德弗雷·穆甘达 |
出版社: | 清华大学出版社 |
丛编项: | 清华计算机图书译丛 |
标 签: | 暂缺 |
ISBN: | 9787302503163 | 出版时间: | 2018-08-01 | 包装: | 平装 |
开本: | 16开 | 页数: | 字数: |
第1章 计算机和编程简介 1
1.1 为什么要使用程序 1
1.2 计算机系统:硬件和软件 2
1.2.1 硬件 2
1.2.2 软件 5
1.2.3 思考题 6
1.3 程序和编程语言 6
1.3.1 程序的定义 7
1.3.2 编程语言 8
1.3.3 源代码、目标代码和可执行
代码 9
1.3.4 思考题 11
1.4 程序的组成 11
1.4.1 语言元素 11
1.4.2 代码行和语句 13
1.4.3 变量 14
1.4.4 变量定义 14
1.5 输入、处理和输出 15
思考题 15
1.6 编程过程 16
1.6.1 设计和创建程序 16
1.6.2 软件工程的定义 19
1.6.3 思考题 20
1.7 综合演练:显示个性化消息 20
1.7.1 复习和练习 21
1.7.2 编程挑战 23
第2章 C 简介 24
2.1 C 程序的部件 24
思考题 27
2.2 cout对象 27
2.3 #include指令 32
思考题 33
2.4 变量和赋值语句 33
2.5 常数 35
2.5.1 有时数字并不是数字 36
2.5.2 思考题 36
2.6 标识符 37
2.7 整型数据类型 39
2.7.1 整数和长整型常数 42
2.7.2 十六进制和八进制常数 43
2.7.3 思考题 43
2.8 浮点数据类型 44
2.8.1 浮点常数 45
2.8.2 将浮点值分配给整型变量 46
2.8.3 思考题 47
2.9 char数据类型 47
2.10 C string类 51
2.10.1 使用string类 51
2.10.2 思考题 52
2.11 bool数据类型 52
2.12 确定数据类型的大小 53
2.13 变量赋值和初始化详解 54
2.14 作用域 56
2.15 算术运算符 56
思考题 60
2.16 注释 60
2.16.1 单行注释 61
2.16.2 多行注释 61
2.17 编程风格 62
2.18 综合演练:笑脸! 63
2.18.1 复习和练习 64
2.18.2 编程挑战 68
第3章 表达式和交互 71
3.1 cin对象 71
3.1.1 输入多个值 74
3.1.2 思考题 76
3.2 数学表达式 77
3.2.1 运算符的优先级 79
3.2.2 关联性 80
3.2.3 用圆括号分组 80
3.2.4 将代数表达式转换为编程
语句 81
3.2.5 指数问题详解 81
3.2.6 思考题 83
3.3 数据类型转换和类型强制转换 85
3.3.1 类型强制转换 86
3.3.2 思考题 89
3.4 溢出和下溢 90
3.5 命名常量 91
思考题 93
3.6 多变量和组合赋值 94
3.6.1 组合赋值运算符 94
3.6.2 思考题 96
3.7 格式化输出 97
3.7.1 setprecision操作符 100
3.7.2 fixed操作符 103
3.7.3 showpoint操作符 104
3.7.4 left和right操作符 105
3.7.5 思考题 107
3.8 处理字符和字符串 107
3.8.1 输入字符串 108
3.8.2 输入一个字符 110
3.8.3 使用cin.get 110
3.8.4 混合使用cin >>和cin.get 112
3.8.5 使用cin.ignore 112
3.8.6 实用的string成员函数和
运算符 113
3.8.7 使用C字符串 115
3.8.8 为C字符串赋值 116
3.8.9 跟踪一个C字符串的大小 117
3.8.10 读取一行输入 119
3.8.11 思考题 120
3.9 更多数学库函数 120
3.10 随机数字 122
3.10.1 限制随机数的范围 125
3.10.2 思考题 125
3.11 关于调试:手动跟踪程序 126
3.12 Green Fields Landscaping案例
研究——第1部分 127
3.12.1 问题陈述 127
3.12.2 程序设计 128
3.12.3 程序 128
3.12.4 General Crates公司案例
研究 130
3.13 综合演练:单词游戏 130
3.13.1 复习和练习 132
3.13.2 编程挑战 137
第4章 条件选择 143
4.1 关系运算符 143
4.1.1 关系的值 144
4.1.2 真值和假值 145
4.1.3 思考题 147
4.2 if语句 148
4.2.1 编程风格和if语句 151
4.2.2 要注意的3个常见错误 151
4.2.3 真值详解 153
4.2.4 标记 154
4.2.5 整数标记 155
4.2.6 思考题 155
4.3 if-else语句 156
4.3.1 使用if 或if-else的时机 157
4.3.2 比较浮点数 159
4.3.3 思考题 161
4.4 if-else if语句 161
4.4.1 使用结尾else 166
4.4.2 思考题 167
4.5 菜单驱动程序 168
4.6 嵌套if语句 170
思考题 173
4.7 逻辑运算符 174
4.7.1 &&运算符 174
4.7.2 || 运算符 176
4.7.3 ! 运算符 178
4.7.4 布尔变量和?!运算符 179
4.7.5 逻辑运算符的优先级和
关联性 181
4.7.6 使用逻辑运算符检查数字
范围 182
4.7.7 思考题 182
4.8 验证用户输入 183
4.9 块和作用域详解 185
4.9.1 同名变量 186
4.9.2 思考题 187
4.10 字符和字符串详解 188
4.10.1 比较字符 188
4.10.2 比较string对象 189
4.10.3 测试字符 191
4.10.4 思考题 193
4.11 条件运算符 194
4.11.1 使用条件表达式的值 195
4.11.2 思考题 197
4.12 switch语句 197
4.12.1 在菜单驱动系统中使用
switch 203
4.12.2 思考题 205
4.13 枚举数据类型 206
思考题 209
4.14 关于测试和调试:验证输出结果 210
4.15 Green Fields Landscaping案例研
究——第2部分 212
4.15.1 问题陈述 212
4.15.2 程序设计 213
4.15.3 程序 214
4.15.4 Crazy A1的计算机商业
案例研究 216
4.16 综合演练:算命游戏 217
4.16.1 复习和练习 218
4.16.2 编程挑战 222
第5章 循环 228
5.1 循环介绍:while循环 228
5.1.1 while循环 228
5.1.2 while是一个预测试循环 230
5.1.3 无限循环 231
5.1.4 编程风格和while循环 232
5.1.5 思考题 234
5.2 使用while循环验证输入 235
5.3 递增和递减运算符 237
5.3.1 后缀和前缀模式 239
5.3.2 在数学表达式中使用递增
和递减运算符 241
5.3.3 在关系表达式中使用递增
和递减运算符 241
5.3.4 思考题 242
5.4 计数器 243
5.5 保持累计汇总 245
5.6 标记符号 247
思考题 248
5.7 do-while循环 249
5.7.1 toupper函数 251
5.7.2 与菜单一起使用do-while 252
5.7.3 思考题 254
5.8 for循环 254
5.8.1 for循环是一个预测试循环 257
5.8.2 避免修改for循环体中的
计数器变量 257
5.8.3 更新表达式的其他形式 258
5.8.4 定义for循环初始化表达式
中的变量 258
5.8.5 创建用户控制的for循环 258
5.8.6 在初始化和更新表达式中
使用多个语句 259
5.8.7 省略for循环的表达式或
循环体 260
5.8.8 思考题 260
5.9 关于软件工程:决定使用哪个
循环 261
5.9.1 while循环 261
5.9.2 do-while循环 262
5.9.3 for循环 262
5.10 嵌套循环 262
5.11 打破循环 265
5.11.1 在嵌套循环中使用break 266
5.11.2 continue语句 267
5.11.3 思考题 268
5.12 使用文件进行数据存储 269
5.12.1 文件类型 270
5.12.2 文件访问方法 271
5.12.3 文件名和文件流对象 271
5.12.4 为输入输出文件设置
程序 272
5.12.5 创建文件流对象并打开
文件 273
5.12.6 关闭文件 274
5.12.7 将数据写入文件 274
5.12.8 从文件读取数据 276
5.12.9 读取位置 278
5.12.10 让用户指定一个文件名 279
5.12.11 使用旧版本C 中的
c_str成员函数 280
5.12.12 检测文件的末尾 280
5.12.13 测试文件打开的错误 282
5.12.14 思考题 284
5.13 关于测试和调试:创建良好的
测试数据 284
5.14 Central Mountain Credit Union
案例研究 287
5.14.1 问题陈述 287
5.14.2 计算 287
5.14.3 变量 287
5.14.4 程序设计 288
5.14.5 详细伪代码 288
5.14.6 程序 289
5.14.7 测试程序 291
5.14.8 Lightening Lanes案例
研究 291
5.15 综合演练:多彩世界 291
5.15.1 复习和练习 294
5.15.2 编程挑战 299
第6章 函数 305
6.1 模块化编程 305
6.2 定义和调用函数 306
6.2.1 空函数 307
6.2.2 调用函数 307
6.2.3 思考题 313
6.3 函数原型 314
6.4 将数据发送到函数中 315
6.5 按值传递数据 320
思考题 322
6.6 使用return语句 323
6.7 从函数返回值 325
6.7.1 定义一个返回值函数 325
6.7.2 调用返回值函数 326
6.8 返回一个布尔值 330
思考题 332
6.9 在菜单驱动程序中使用函数 332
6.10 局部变量和全局变量 336
6.10.1 局部变量 336
6.10.2 局部变量生存期 338
6.10.3 使用形参值初始化本地
变量 338
6.10.4 全局变量 338
6.10.5 全局常数 340
6.10.6 具有相同名称的局部
变量和全局变量 342
6.11 静态局部变量 343
思考题 345
6.12 默认实参 346
6.13 使用引用变量作为形参 349
6.13.1 按引用传递实参和
按值传递实参的时机 353
6.13.2 将文件传递给函数 355
6.13.3 思考题 358
6.14 重载函数 359
6.15 使用exit()函数 364
思考题 365
6.16 桩模块和驱动模块 366
6.17 小乐透案例研究 369
6.17.1 问题陈述 369
6.17.2 程序设计 369
6.17.3 程序 371
6.17.4 High Adventrue Travel
Agency旅行社案例研究 374
6.18 综合演练:发光的南瓜灯 374
6.18.1 复习和练习 378
6.18.2 编程挑战 381
第7章 类和对象简介 388
7.1 抽象数据类型 388
7.1.1 抽象 388
7.1.2 在软件开发中使用抽象 389
7.1.3 抽象数据类型 389
7.2 面向对象编程 389
7.3 关于类的介绍 391
7.3.1 使用已经知道的类 391
7.3.2 创建自己的类 392
7.3.3 访问修饰符 393
7.3.4 private和public成员的
位置 393
7.4 创建和使用对象 394
7.4.1 访问对象的成员 395
7.4.2 访问器和设置器 396
7.5 定义成员函数 397
7.5.1 类成员函数的命名约定 399
7.5.2 避免陈旧数据 402
7.5.3 内联函数详解 402
7.5.4 思考题 403
7.6 构造函数 403
7.6.1 重载构造函数 407
7.6.2 默认构造函数 408
7.7 析构函数 409
思考题 410
7.8 私有成员函数 412
7.9 将对象传递给函数 415
7.9.1 常量引用形参 418
7.9.2 从函数返回一个对象 419
7.9.3 思考题 422
7.10 对象组合 422
思考题 425
7.11 关于软件工程:分离类规范、
实现和客户端代码 426
7.11.1 使用多个文件的优点 431
7.11.2 在类对象中执行输入
输出 432
7.11.3 思考题 432
7.12 结构 432
7.12.1 访问结构成员 433
7.12.2 显示和比较结构变量 435
7.12.3 初始化结构 436
7.12.4 嵌套结构 437
7.12.5 思考题 440
7.12.6 将结构传递给函数 441
7.12.7 从函数返回一个结构 443
7.12.8 思考题 444
7.13 枚举数据类型详解 445
7.13.1 在同一个语句中声明enum
数据类型并定义变量 445
7.13.2 将整数赋值给enum
变量 445
7.13.3 将枚举量赋值给int
变量 446
7.13.4 使用数学运算符改变
enum变量的值 446
7.13.5 使用枚举量输出值 446
7.13.6 使用枚举量控制循环 447
7.13.7 使用C 11中的强类型
enum 448
7.14 Home Software公司OOP案例
研究 449
7.14.1 私有成员变量 450
7.14.2 公共成员函数 450
7.14.3 类声明 450
7.14.4 withdraw会员函数 451
7.14.5 类接口 452
7.14.6 实现类 452
7.15 面向对象分析与设计介绍 456
7.15.1 寻找类 459
7.15.2 确定类的责任 462
7.15.3 这仅仅是个开始 465
7.15.4 对象的可重用性 465
7.15.5 面向对象与基于对象的
编程 465
7.15.6 思考题 465
7.16 屏幕控制 466
7.16.1 屏幕光标定位 466
7.16.2 创建一个屏幕输入表单 469
7.17 综合演练:溜溜球动画 471
7.17.1 复习和练习 473
7.17.2 编程挑战 479
第8章 数组 486
8.1 保存多个值的数组 486
8.2 访问数组元素 488
8.3 输入和显示数组内容 489
8.3.1 将数据从文件读入数组 491
8.3.2 将数组的内容写入文件 493
8.3.3 C 中没有数组边界检查 493
8.3.4 注意大小差一错误 495
8.3.5 思考题 496
8.4 数组初始化 497
8.4.1 从数组元素1开始 501
8.4.2 数组部分初始化 501
8.4.3 隐式数组大小 503
8.4.4 初始化变量的新方法 503
8.5 基于范围的for循环 504
8.6 处理数组内容 507
8.6.1 复制一个数组到另一个 509
8.6.2 比较两个数组 510
8.6.3 对数字数组中的值求和 511
8.6.4 查找数字数组中数值的
平均值 511
8.6.5 在数字数组中查找最高值
和最低值 512
8.6.6 部分填充数组 514
8.6.7 为什么要使用数组 515
8.6.8 处理字符串 517
8.7 使用并行数组 519
思考题 521
8.8 typedef声明 523
8.9 数组作为函数参数 523
8.9.1 使用const数组形参 529
8.9.2 一些有用的数组函数 529
8.9.3 思考题 532
8.10 二维数组 533
8.10.1 将二维数组传递给函数 537
8.10.2 对二维数组的所有元素
求和 539
8.10.3 对二维数组的行求和 539
8.10.4 对二维数组的列求和 540
8.11 三维或三维以上数组 541
思考题 543
8.12 矢量 544
8.12.1 定义和初始化矢量 545
8.12.2 存储和检索矢量中的值 546
8.12.3 使用C 11中基于范围
的for循环和vector 548
8.12.4 使用push_back成员
函数 549
8.12.5 确定矢量的大小 550
8.12.6 从矢量中删除元素 552
8.12.7 清理矢量 553
8.12.8 检测一个空矢量 554
8.12.9 矢量成员函数汇总 556
8.12.10 思考题 556
8.13 对象数组* 557
8.13.1 思考题 562
8.13.2 结构数组 563
8.13.3 思考题 566
8.14 National Commerce Bank案例
研究 567
8.15 综合演练:石头、剪刀、布 569
8.15.1 复习和练习 571
8.15.2 编程挑战 575
第9章 搜索、排序和算法分析 585
9.1 搜索算法简介 585
9.1.1 线性搜索 585
9.1.2 二分搜索 588
9.2 搜索对象数组 591
思考题 595
9.3 排序算法简介 595
9.3.1 冒泡排序 595
9.3.2 选择排序 599
9.3.3 思考题 604
9.4 对象数组排序 604
9.5 矢量排序和搜索 607
9.6 算法分析简介 609
9.6.1 计算问题和基本步骤 610
9.6.2 算法的复杂度 611
9.6.3 算法的最坏情况下的
复杂度 613
9.6.4 平均情况下的复杂度 615
9.6.5 渐近复杂度与大O表示法 615
9.6.6 思考题 617
9.7 案例研究 617
9.8 综合演练:秘密消息 617
9.8.1 复习和练习 622
9.8.2 编程挑战 623
第10章 指针 627
10.1 指针和地址运算符 627
10.2 指针变量 629
10.3 数组与指针之间的关系 632
10.4 指针的算术运算 637
10.5 初始化指针 638