《C++程序开发与设计》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)Gary J.Bronson著;刘勇译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2002
  • ISBN:711510087X
  • 页数:844 页
图书介绍:本书介绍了从C++面向过程编程到面向对象编程的技术方法,详细分析了C++的各种常用数据结构。

第1章 计算机与程序设计简介 1

1.1 硬件和软件 1

1.1.1 计算机硬件 3

1.1.2 硬件的发展 6

1.1.3 计算机软件 8

练习1.1 10

1.2 编程语言 11

1.3 问题解决与软件开发 13

1.3.1 阶段一:开发与设计 14

1.3.2 阶段二:编写文档 15

1.3.3 阶段三:维护 16

1.3.4 深入探讨开发与设计 16

1.3.5 备份 20

练习1.3 21

1.4 算法 21

练习1.4 24

1.5 为对象做准备:面向对象的程序设计 25

练习1.5 26

1.6 深入探讨数字式存储的概念 29

1.6.1 二进制补码 29

1.6.2 字与地址 30

1.7 常见编程错误 30

1.8 章节回顾 31

1.8.1 关键术语 31

1.8.2 概要 31

1.8.3 练习 32

第一部分 C++面向过程的程序设计 35

第2章 用C++解决问题 37

2.1 C++简介 37

2.1.1 main()函数 39

2.1.2 cout对象 40

练习2.1 42

2.2 程序设计风格 44

练习2.2 46

2.3 数据值与算术运算 47

2.3.1 整数值 47

2.3.2 浮点数 48

2.3.3 字符值 49

2.3.4 转义序列 50

2.3.5 算术运算 51

2.3.6 整数的除法 53

2.3.7 一元运算符 53

2.3.8 运算符的优先级和结合性 54

练习2.3 55

2.4 变量与声明语句 57

2.4.1 声明语句 58

2.4.2 多重声明 60

2.4.3 内存分配 62

2.4.4 显示一个变量的地址 63

练习2.4 65

2.5 整数限定符 67

2.5.1 数据类型转换 68

2.5.2 确定存储长度 68

练习2.5 69

2.6 软件开发过程运用 70

2.6.1 步骤一:分析问题 71

2.6.2 步骤二:研究解决方案 71

2.6.3 步骤三:方案的代码化 71

2.6.4 步骤四:程序的测试与更正 72

练习2.6 72

2.7 注重解决问题 74

2.7.1 问题一:钟摆 74

2.7.2 问题二:直通电话网络 75

练习2.7 76

2.8 为对象做准备:关于“抽象”的简介 77

2.9 常见编程错误 80

2.10.2 概要 81

2.10 章节回顾 81

2.10.1 关键术语 81

2.10.3 练习 82

第3章 基础知识介绍 86

3.1 赋值操作 86

3.1.1 赋值的各种形式 89

3.1.2 累加和 90

3.1.3 计数 91

练习3.1 93

3.2 指定输出数的格式 96

练习3.2 102

3.3 利用数学库函数 104

练习3.3 107

3.4 用cin对象接收程序输入 109

练习3.4 112

3.5 const限定符 115

练习3.5 117

3.6 注重解决问题 118

3.6.1 问题一:酸雨 118

3.6.2 问题二:指数函数的逼近 120

练习3.6 123

3.7 为对象做准备:程序性能衡量和面向对象技术 125

3.7.1 程序性能的衡量 126

3.7.2 转向面向对象技术 127

3.8.1 编译时和运行时错误 128

3.8.2 语法和逻辑错误 128

3.8 深入探讨错误 128

练习3.7 128

3.9 常见编程错误 131

3.10 章节回顾 131

3.10.1 关键术语 131

3.10.2 概要 132

3.10.3 练习 133

第4章 选择结构 137

4.1 选择标准 137

4.1.1 逻辑运算符 139

4.1.2 数的精度问题 141

练习4.1 142

4.2 if-else语句 143

4.2.1 复合语句 145

4.2.3 单选择 147

4.2.2 代码块的作用范围 147

4.2.4 与if-else语句相关的问题 149

练习4.2 150

练习4.3 157

4.3 嵌套if语句 160

4.4 switch语句 160

练习4.4 163

4.5 注重解决问题 164

4.5.1 问题一:数据有效性检验 165

4.5.2 问题二:解二次方程 166

练习4.5 169

4.6 为对象做准备:内部和外部 170

4.6.2 代码重用和扩展 172

4.6.1 抽象与封装 172

练习4.6 173

4.7 深入探讨程序测试 174

4.8 常见编程错误 175

4.9 章节回顾 176

4.9.1 关键术语 176

4.9.2 概要 176

4.9.3 练习 178

第5章 循环结构 181

5.1 引言 181

5.1.1 先判断循环与后判断循环 181

5.1.2 固定计数循环与可变条件循环 181

5.2 while循环 183

练习5.2 188

5.3 交互式while循环 189

5.3.1 标记 195

5.3.2 break语句与continue语句 196

5.3.3 空语句 197

练习5.3 197

5.4 for循环 199

练习5.4 205

5.5 循环编程技术 208

5.5.1 技术一:在循环中交互输入 208

5.5.2 技术二:在循环中选择 208

5.5.3 技术三:计算单变量函数 210

5.5.4 技术四:交互式循环控制 212

练习5.5 213

5.6 嵌套循环 214

练习5.6 216

5.7 do-while循环 217

练习5.7 219

5.8 为对象做准备:对象建模技术 220

5.8.1 对象图 221

5.8.2 关系 223

练习5.8 224

5.9 常见编程错误 225

5.10 章节回顾 225

5.10.1 关键术语 225

5.10.2 概要 226

5.10.3 练习 227

6.1 函数声明与参数声明 231

第6章 用函数实现模块化 231

6.1.1 函数原型 232

6.1.2 调用一个函数 233

6.1.3 定义一个函数 234

6.1.4 语句的位置 237

6.1.5 函数占位符 238

6.1.6 带有空参数列表的函数 239

6.1.7 缺省参数 240

6.1.8 函数模板 240

6.1.9 重用函数名(重载) 244

练习6.1 245

6.2 返回值 246

练习6.2 251

6.3 变量的作用范围 253

6.3.1 范围解析运算符 256

6.3.2 全局变量的误用 256

练习6.3 257

6.4 变量存储类型 259

6.4.1 局部变量存储类型 260

6.4.2 全局变量存储类型 263

练习6.4 264

6.5 使用引用参数的引用传递 265

练习6.5 272

6.6 递归 273

6.6.1 数学递归 273

6.6.2 计算是如何执行的 275

6.6.3 递归与迭代 276

6.7 注重解决问题 277

6.7.1 产生伪随机数 277

练习6.6 277

6.7.2 问题一:模拟抛硬币 279

6.7.3 问题二:编写一个HiLo游戏 281

6.7.4 问题三:用蒙特卡洛模拟估计曲线下的面积 283

练习6.7 287

6.8 为对象做准备:动态OMT模型 290

6.8.1 动态模型 290

6.8.2 一个例子 292

练习6.8 293

6.10.1 关键术语 294

6.10.2 概要 294

6.10 章节回顾 294

6.9 常见编程错误 294

6.10.3 练习 295

第二部分 C++面向对象的程序设计 303

第7章 类的介绍 305

7.1 C++中的抽象数据类型(类) 305

7.1.1 抽象数据类型 305

7.1.2 类的构造 307

7.1.3 术语 313

练习7.1 313

7.2 构造函数 315

7.2.1 构造函数的调用 316

7.2.2 重载和内联构造函数 317

7.2.3 析构函数 320

练习7.2 321

7.3 注重解决问题 321

7.3.1 问题一:构造一个电梯对象 322

7.3.2 问题二:汽油泵对象的仿真 326

练习7.3 331

7.4 常见编程错误 332

7.5 章节回顾 332

7.5.1 关键术语 332

7.5.2 概要 332

7.5.3 练习 333

第8章 类的函数和转换 335

8.1 赋值 335

8.1.1 复制构造函数 338

8.1.2 基础/成员初始化 340

练习8.1 341

8.2 类的其他特征 341

8.2.1 类的作用范围 341

8.2.2 静态类成员 343

8.2.3 友元函数 346

练习8.2 348

8.3 运算符函数 349

练习8.3 355

8.4 用户的两种选择:operator()和operator[] 356

练习8.4 359

8.6 数据类型转换 359

8.5.2 内置数据类型转换成类 360

8.5.1 内置数据类型转换成内置数据类型 360

8.5.3 类转换成内置数据类型 362

8.5.4 类转换成类 363

练习8.5 366

8.6 注重解决问题 367

8.6.1 问题一:多个对象的汽油泵仿真 367

8.6.2 应用一:重载插入(<<)和提取(>>)运算符 372

练习8.6 375

8.7 常见编程错误 376

8.8 章节回顾 377

8.8.1 关键术语 377

8.8.2 概要 377

8.8.3 练习 378

9.1 类的继承 381

第9章 继承和动态内存分配 381

9.1.1 访问标志 383

9.2.2 一个例子 383

练习9.1 387

9.2 多态性 387

练习9.2 390

9.3 this指针 391

练习9.3 396

9.4 注重解决问题 396

9.4.1 应用一:对象的动态生成与销毁 396

9.4.2 问题一:汽油泵的动态仿真 401

练习9.4 405

9.5 作为类成员的指针 406

9.6 常见编程错误 412

练习9.5 412

9.7 章节回顾 413

9.7.1 关键术语 413

9.7.2 概要 413

9.7.3 练习 413

第10章 I/O文件流和数据文件 415

10.1 I/O文件流对象和方法 415

10.1.1 文件 415

10.1.2 文件流对象和模式 416

10.1.3 文件流的方法 417

10.1.4 嵌入程序和交互输入的文件名 421

10.1.5 关闭文件 423

练习10.1 423

10.2 读文件和写文件 424

10.2.1 标准设备文件 429

10.2.2 其他设备 429

练习10.2 430

10.3 文件的随机访问 431

练习10.3 434

10.4 将文件流作为函数的输入参数 434

练习10.4 437

10.5 注重解决问题 437

10.5.1 问题一:花粉统计的单文件更新 437

10.5.2 问题二:主文件/事务文件更新 442

练习10.5 446

10.6.2 iostream类库的组件 448

10.6.1 文件流传输机制 448

10.6 深入探讨iostream类库 448

10.6.3 iostream在内存中的格式 449

10.7 常见编程错误 451

10.8 章节回顾 451

10.8.1 关键术语 451

10.8.2 概要 451

10.8.3 练习 452

第三部分 数据结构 455

第11章 数组 457

11.1 一维数组 457

练习11.1 463

11.2 数组的初始化 464

练习11.2 466

11.3 用数组作为函数参数 467

练习11.3 470

11.4 声明和使用二维数组 471

11.4.1 数组内部元素定位算法 476

11.4.2 多维数组 477

练习11.4 478

11.5 注重解决问题 479

11.5.1 应用一:统计分析 479

11.5.2 应用二:表的维护 482

练习11.5 485

11.6 查找和排序 485

11.6.1 查找算法 486

11.6.2 线性查找 486

11.6.3 二分法查找 487

11.6.4 大O表示法 491

11.6.5 排序算法 491

11.6.6 选择排序 491

11.6.7 交换(起泡)排序 494

11.6.8 快速排序 496

练习11.6 502

11.7 常见编程错误 504

11.8 章节回顾 504

11.8.1 关键术语 504

11.8.2 概要 504

11.8.3 练习 505

12.1.1 字符串的输入和输出 509

12.1 字符串基础 509

第12章 字符串 509

12.1.2 字符串的处理 511

12.1.3 逐个字符输入 515

练习12.1 517

12.2 库函数 518

12.2.1 字符例程 521

12.2.2 转换例程 523

练习12.2 524

12.3 注重解决问题 525

12.3.1 问题一:字符统计 525

12.3.2 问题二:词数统计 527

练习12.3 529

12.4 深入探讨CString类 530

12.5 常见编程错误 534

12.6 章节回顾 535

12.6.1 关键术语 535

12.6.2 摘要 535

12.6.3 练习 535

第13章 地址、指针和数组 538

13.1 地址和指针 538

13.1.1 地址的存储 538

13.1.2 使用地址 539

13.1.3 声明指针 540

13.1.4 引用和指针 541

练习13.1 544

13.2 数组名作为指针 547

练习13.2 553

13.3 指针运算 554

练习13.3 557

13.4 传递地址 557

13.4.1 传递数组 561

13.4.2 高级指针表示法 563

练习13.4 565

13.5 指针和字符串库函数 566

练习13.5 567

13.6 字符串定义和指针数组 568

练习13.6 572

13.7 常见编程错误 573

13.8.1 关键术语 574

13.8.2 概要 574

13.8 章节回顾 574

13.8.3 练习 575

第14章 作为数据结构的记录 577

14.1 单个记录 577

练习14.1 581

14.2 结构体数组 582

练习14.2 584

14.3 记录结构用作函数参数 585

14.3.1 传递指针 587

14.3.2 返回结构体 589

练习14.3 590

14.4 链表 591

14.5 结构体动态数据分配 597

练习14.4 597

练习14.5 601

14.6 注重解决问题 602

14.6.1 问题一:填充和处理单个记录 602

14.6.2 问题二:记录数组的排序和查找 607

练习14.6 610

14.7 联合体 612

练习14.7 613

14.8 常见编程错误 613

14.9 章节回顾 614

14.9.1 关键术语 614

14.9.2 总结 614

14.9.3 练习 614

15.1 堆栈介绍 617

第15章 面向对象的堆栈和队列 617

15.1.1 创建椎栈 618

15.1.2 数组实现 618

练习15.1 624

15.2 动态链接堆栈的实现 624

练习15.2 630

15.3 队列介绍 631

15.3.1 创建队列 631

15.3.2 数组实现 632

练习15.3 638

15.4 动态链接队列的实现 638

15.6.1 关键术语 645

15.6 章节回顾 645

15.5 常见编程错误 645

练习15.4 645

15.6.2 概要 646

15.6.3 练习 646

附录A 运算符优先顺序表 648

附录B ASCII字符编码 649

附录C 程序的输入、编译和执行 650

附录D 输入、输出和标准错误重定向 654

附录E 浮点数的存储 656

附录F 名称空间 658

附录G 标准模板库 660

附录H 使用 Visual C++6.0 665

附录I 使用 C++ Builder 672

附录J 附加性能 674

附录K 部分奇数编号习题的答案 683