当前位置:首页 > 工业技术
C++大学教程  第5版
C++大学教程  第5版

C++大学教程 第5版PDF电子书下载

工业技术

  • 电子书积分:27 积分如何计算积分?
  • 作 者:(美)H.M.Deitel,(美)P.J.Deitel著;张引等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121026570
  • 页数:1078 页
图书介绍:本书是一本C++编程方面的优秀教程,全面介绍了过程式编程与面向对象编程的原理与方法,细致地分析了各种性能问题、可移植性问题以及可能出错的情况。与第四版相比,本书从内容和结构上都做了较大幅度的修订与有意义的提升,特别是在“尽早接触类和对象”这一观点的指导下,从第1章就开始介绍类和对象的内容,突破了传统教学模式,使学生直接“考虑对象”和深入掌握面向对象的基本概念。作者通过大量的示例程序,重点突出了利用UML进行面向对象的设计,引入了流行的Web应用开发,并且帮助学生创建真实世界的C++应用程序。本书无论从广度和深度上来说都非常全面,并且从基础概念讲起,同样适合没有编程经验的读者学习。
《C++大学教程 第5版》目录
标签:教程 大学

第1章 计算机、Internet和万维网简介 1

1.1 简介 2

1.2 什么是计算机 2

1.3 计算机的组成 3

1.4 早期的操作系统 3

1.5 个人计算、分布式计算和客户/服务器计算 4

1.6 Internet和万维网 4

1.7 机器语言、汇编语言和高级语言 5

1.8 C和C++的历史 6

1.9 C++标准库 6

1.10 Java的历史 7

1.11 FORTRAN、COBOL、Pascal和Ada 8

1.12 Basic、Visual Basic、Visual C++、C#和.NET 8

1.13 主要的软件趋势:对象技术 8

1.14 典型的C++开发环境 9

1.15 关于C++和本书的几点说明 11

1.16 试运行一个C++应用程序 12

1.17 (必修章节)软件工程实例研究:对象技术和UML的介绍 17

1.18 本章小结 21

1.19 Web资源 21

第2章 C++编程入门 28

2.1 简介 28

2.2 第一个C++程序:打印一行文本 29

2.3 修改第一个C++程序 31

2.4 另一个C++程序:整数相加 32

2.5 内存的概念 36

2.6 算术运算 37

2.7 判断:相等运算符和关系运算符 39

2.8 (选修章节)软件工程实例研究:分析ATM的需求文档 43

2.9 本章小结 49

第3章 类和对象介绍 57

3.1 简介 58

3.2 类、对象、成员函数和数据成员 58

3.3 本章范例综述 59

3.4 定义具有成员函数的类 59

3.5 定义具有形参的成员函数 62

3.6 数据成员、设置函数和获取函数 64

3.7 使用构造函数初始化对象 69

3.8 一个类对应一个独立文件的可重用性 72

3.9 接口与实现的分离 75

3.10 使用设置函数确认数据的有效性 79

3.11 (选修章节)软件工程实例研究:确定ATM需求文档中的类 83

3.12 本章小结 88

第4章 控制语句(第Ⅰ部分) 94

4.1 简介 94

4.2 算法 95

4.3 伪代码 95

4.4 控制结构 96

4.5 if选择语句 99

4.6 if...else双路选择语句 100

4.7 while循环语句 104

4.8 算法详述:计数器控制的循环 105

4.9 算法详述:标记控制的循环 110

4.10 算法详述:嵌套的控制语句 118

4.11 赋值运算符 122

4.12 自增和自减运算符 122

4.13 (选修章节)软件工程实例研究:确定ATM系统中类的属性 125

4.14 本章小结 128

第5章 控制语句(第Ⅱ部分) 141

5.1 简介 142

5.2 计数器控制的循环的要素 142

5.3 for循环语句 143

5.4 使用for语句的例子 147

5.5 do...while循环语句 150

5.6 switch多路选择语句 152

5.7 break和continue语句 159

5.8 逻辑运算符 161

5.9 ==运算符与=运算符的混淆问题 164

5.10 结构化编程总结 165

5.11 (选修章节)软件工程实例研究:确定ATM系统中对象的状态和活动 169

5.12 本章小结 172

第6章 函数和递归入门 181

6.1 简介 182

6.2 C++的程序组件 182

6.3 数学库函数 183

6.4 多参数函数定义 184

6.5 函数原型和实参类型的强制转换 188

6.6 C++标准库头文件 190

6.7 实例研究:随机数生成 191

6.8 实例研究:博彩游戏和enum简介 194

6.9 存储类别 197

6.10 作用域规则 199

6.11 函数调用堆栈和活动记录 202

6.12 无参函数 205

6.13 内联函数 206

6.14 引用和引用参数 207

6.15 默认实参 210

6.16 一元作用域分辨运算符 212

6.17 函数重载 213

6.18 函数模板 215

6.19 递归 217

6.20 递归应用示例:Fibonacci数列 219

6.21 递归与迭代 221

6.22 (选修章节)软件工程实例研究:确定ATM系统类的操作 224

6.23 本章小结 228

第7章 数组与C++标准库类模板vector 245

7.1 简介 245

7.2 数组 246

7.3 声明数组 247

7.4 使用数组的范例 248

7.5 将数组传递给函数 260

7.6 实例研究:利用数组存放成绩的GradeBook类 263

7.7 采用线性查找法查找数组 268

7.8 采用插值排序法排序数组 269

7.9 多维数组 271

7.10 实例研究:利用二维数组的GradeBook类 273

7.11 C++标准库类模板vector的介绍 278

7.12 (选修章节)软件工程实例研究:ATM系统中对象之间的协作 281

7.13 本章小结 287

第8章 指针和基于指针的字符串 301

8.1 简介 302

8.2 指针变量的声明和初始化 302

8.3 指针运算符 303

8.4 使用指针通过按引用传递方式将参数传递给函数 305

8.5 使用const修饰指针 308

8.6 使用按引用传递方式实现的选择排序 313

8.7 sizeof运算符 315

8.8 指针表达式和指针算术运算 318

8.9 指针和数组之间的联系 320

8.10 指针数组 323

8.11 实例研究:洗牌和发牌的模拟程序 323

8.12 函数指针 328

8.13 基于指针的字符串处理概述 332

8.14 本章小结 339

第9章 类的深入剖析(第Ⅰ部分) 360

9.1 简介 361

9.2 Time类实例研究 361

9.3 类的作用域和类成员的访问 366

9.4 接口与实现的分离 367

9.5 访问函数和工具函数 368

9.6 Time类实例研究:默认实参的构造函数 370

9.7 析构函数 374

9.8 何时调用构造函数和析构函数 375

9.9 Time类实例研究:一个微妙的陷阱——返回对private数据成员的引用 377

9.10 默认的逐个成员赋值 379

9.11 软件重用 381

9.12 (选修章节)软件工程实例研究:开始对ATM系统的类进行编程 381

9.13 本章小结 386

第10章 类的深入剖析(第Ⅱ部分) 392

10.1 简介 393

10.2 const对象和const成员函数 393

10.3 组成:对象作为类的成员 400

10.4 friend函数和friend类 405

10.5 使用this指针 408

10.6 使用new和delete运算符进行内存的动态管理 412

10.7 static类成员 413

10.8 数据抽象和信息隐藏 417

10.9 容器类和迭代器 420

10.10 代理类 420

10.11 本章小结 422

第11章 运算符重载:字符串和数组对象 428

11.1 简介 429

11.2 运算符重载的基础知识 429

11.3 运算符重载的限制 430

11.4 作为类成员函数和全局函数的运算符函数之比较 431

11.5 重载流插入运算符和流提取运算符 432

11.6 重载一元运算符 435

11.7 重载二元运算符 435

11.8 实例研究:Array类 436

11.9 类型转换 445

11.10 实例研究:String类 446

11.11 重载++和--运算符 455

11.12 实例研究:Date类 456

11.13 标准库中的string类 459

11.14 explicit构造函数 462

11.15 本章小结 465

第12章 面向对象编程:继承 475

12.1 简介 476

12.2 基类和派生类 477

12.3 protected成员 478

12.4 基类和派生类之间的关系 479

12.5 派生类中的构造函数和析构函数 501

12.6 public、protected和private继承 507

12.7 关于继承的软件工程 508

12.8 本章小结 509

第13章 面向对象编程:多态性 513

13.1 简介 514

13.2 多态性实例 515

13.3 类继承层次中对象之间的关系 516

13.4 类型域和switch语句 529

13.5 抽象类和纯virtual函数 529

13.6 实例研究:应用多态性的工资发放系统 531

13.7 (选修章节)多态性、virtual函数和动态绑定的底层实现机制 543

13.8 实例研究:应用向下强制类型转换、dynamic_cast、typeid和type_info并使用多态性和运行时类型信息的工资发放系统 546

13.9 virtual析构函数 549

13.10 (选修章节)软件工程实例研究:在ATM系统中引入继承 549

13.11 本章小结 555

第14章 模板 559

14.1 简介 559

14.2 函数模板 560

14.3 重载函数模板 562

14.4 类模板 563

14.5 类模板的非类型参数和默认类型参数 567

14.6 模板和继承的注意事项 568

14.7 模板与友元的注意事项 569

14.8 模板和静态成员的注意事项 570

14.9 本章小结 570

第15章 输入/输出流 574

15.1 简介 575

15.2 流 575

15.3 输出流 578

15.4 输入流 579

15.5 使用read、write和gcount的非格式化的I/O 582

15.6 流操纵符简介 583

15.7 流的格式状态和流操纵符 587

15.8 流的错误状态 594

15.9 将输出流连接到输人流 596

15.10 本章小结 596

第16章 异常处理 605

16.1 简介 606

16.2 异常处理总览 606

16.3 实例:处理除数为0的异常 607

16.4 什么时候使用异常处理 611

16.5 重新抛出异常 612

16.6 异常说明 613

16.7 处理意料之外异常 614

16.8 堆栈展开 614

16.9 构造函数、析构函数和异常处理 615

16.10 异常和继承 616

16.11 处理new失败 616

16.12 类auto_ptr和动态内存分配 619

16.13 标准库异常类层次 621

16.14 其他异常处理技术 622

16.15 本章小结 623

第17章 文件处理 628

17.1 简介 628

17.2 数据层次 629

17.3 文件和流 630

17.4 创建顺序文件 631

17.5 从顺序文件读取数据 634

17.6 更新顺序文件 638

17.7 随机存取文件 639

17.8 创建随机存取文件 639

17.9 向随机存取文件随机写入数据 643

17.10 从随机存取文件顺序读取数据 645

17.11 实例研究:事务处理程序 646

17.12 输入/输出对象 651

17.13 本章小结 652

第18章 string类和字符串流处理 659

18.1 简介 660

18.2 字符串的赋值和连接 661

18.3 字符串的比较 662

18.4 子串 664

18.5 交换字符串 665

18.6 string类的特征 665

18.7 查找字符串和字符串中的字符 667

18.8 在字符串中替换字符 669

18.9 在字符串中插入字符 670

18.10 转化成C风格的基于指针的char*字符串 671

18.11 迭代器 672

18.12 字符串流处理 673

18.13 本章小结 675

第19章 Web编程 681

19.1 简介 682

19.2 HTTP请求类型 682

19.3 多层体系结构 683

19.4 访问Web服务器 684

19.5 Apache HTTP服务器 685

19.6 请求XHTML文件 685

19.7 CGI介绍 685

19.8 简单的HTTP传输事务 686

19.9 简单的CGI脚本 687

19.10 向CGI脚本发送输入 693

19.11 使用XHTML表单发送输入 695

19.12 其他的头 700

19.13 实例研究:一个交互的网页 701

19.14 cookie 703

19.15 服务器端文件 708

19.16 实例研究:购物车 711

19.17 本章小结 722

19.18 Internet和网络资源 722

第20章 搜索和排序 727

20.1 简介 727

20.2 搜索算法 728

20.3 排序算法 733

20.4 本章小结 739

第21章 数据结构 744

21.1 简介 744

21.2 自引用类 745

21.3 动态内存分配和数据结构 746

21.4 链表 746

21.5 堆栈 757

21.6 队列 760

21.7 树 763

21.8 本章小结 769

第22章 位、字符、C字符串和结构体 787

22.1 简介 787

22.2 结构体的定义 788

22.3 初始化结构体 789

22.4 在函数中使用结构体 790

22.5 typedef 790

22.6 例子:高性能的洗牌发牌模拟 790

22.7 位运算符 792

22.8 位域 799

22.9 字符处理库 802

22.10 基于指针的字符串转换函数 805

22.11 基于指针的字符串处理库中的搜索函数 809

22.12 基于指针的字符串处理库中的内存函数 812

22.13 本章小结 815

第23章 标准模板库 825

23.1 标准模板库(STL)简介 826

23.2 序列容器 834

23.3 关联容器 844

23.4 容器适配器 850

23.5 算法 854

23.6 bitset类 876

23.7 函数对象 879

23.8 本章小结 881

23.9 Internet上的STL资源 881

第24章 其他主题 889

24.1 简介 889

24.2 const_cast运算符 890

24.3 名字空间 891

24.4 运算符关键字 894

24.5 mutable类成员 895

24.6 指向类成员的指针(.*和->*) 897

24.7 多继承 898

24.8 多继承和虚基类 902

24.9 本章小结 905

24.10 结束语 905

附录A 运算符的优先级与结合律 910

附录B ASCII字符集 912

附录C 基本数据类型 913

附录D 计数系统 914

附录E C语言遗留代码问题 924

附录F 预处理器 943

附录G ATM实例研究代码 952

附录H 其他的UML 2示图类型 976

附录I Internet和万维网上的C++资源 977

附录J XHTML简介 982

附录K XHTML的特殊字符 1010

附录L 使用Visual Studio.NET调试器 1011

附录M 使用GNU C++调试器 1023

参考文献 1036

索引 1040

返回顶部