图书介绍

国外计算机科学经典教材 C++基础教程 从问题分析到程序设计 第2版PDF|Epub|txt|kindle电子书版本网盘下载

国外计算机科学经典教材 C++基础教程 从问题分析到程序设计 第2版
  • (美)D.S.MALIK著;曹蓉蓉 宋红译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302121680
  • 出版时间:2006
  • 标注页数:993页
  • 文件大小:73MB
  • 文件页数:1012页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

国外计算机科学经典教材 C++基础教程 从问题分析到程序设计 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录1

第1章 计算机和编程语言概述1

1.1 简介1

1.2 概述计算机的发展史2

1.3 计算机系统的描述2

1.3.1 硬件2

1.3.2 软件4

1.4 计算机语言4

1.5 编程语言的发展史5

1.6 高级语言程序的执行6

1.7 问题分析-编码-执行周期的编程8

1.8 编程方法12

1.8.1 结构化编程12

1.8.2 面向对象编程12

1.9 ANSI/ISO标准C++13

1.10 快速回顾14

1.11 练习题15

第2章 C++的基本元素17

2.1 C++基础知识18

2.1.1 特殊字符19

2.1.2 关键字19

2.1.3 标识符19

2.2 数据类型20

2.2.1 基本数据类型21

2.2.2 浮点数据类型23

2.2.3 string数据类型24

2.3 算术运算符和运算符的优先级25

2.4 表达式28

2.4.1 混合表达式28

2.4.2 类型转换(强制转换)30

2.5.1 为常量和变量分配内存31

2.5 输入31

2.5.2 对变量赋值33

2.6 递增运算符和递减运算符40

2.7 输出42

2.8 预处理指令48

2.9 创建C++程序50

2.10 编程风格和方式53

2.10.1 语法53

2.10.2 文档55

2.11 更多的赋值语句56

2.12 编程示例:换算长度57

2.12.1 问题分析和算法设计57

2.12.4 主算法58

2.12.5 综合58

2.12.3 指定常量58

2.12.2 变量58

2.13 编程示例:美分找零60

2.13.1 问题分析和算法设计60

2.13.2 变量61

2.13.3 指定常量61

2.13.4 主算法62

2.14 快速回顾63

2.15 练习题65

2.16 编程练习71

第3章 输入/输出74

3.1 I/O流和标准I/O设备74

3.2 在程序中使用预定义函数79

3.2.1 cin和ignore函数………………8l3.2.2 putback和peek函数82

3.2.3 注意I/Ostream变量和I/O函数之间的点号84

3.3 输入错误84

3.4 输出和格式化输出87

3.4.3 操作符showpoint88

3.4.2 操作符fixed88

3.4.1 操作符setprecision88

3.4.4 操作符setw90

3.4.5 操作符flush92

3.5 附加的输出格式化工具93

3.5.1 操作符setfill93

3.5.2 操作符left和right95

3.6 输入/输出和string类型96

3.7 文件输入/输出97

3.8 编程示例:售电影票和向慈善机构捐赠100

3.8.1 问题分析和算法设计101

3.8.2 变量101

3.8.3 格式化输出102

3.8.4 主算法102

3.8.5 完整的程序清单103

3.9.2 变量105

3.9.1 问题分析和算法设计105

3.9 编程示例:学生分数105

3.9.3 主算法106

3.9.4 完整的程序清单106

3.10 快速回顾107

3.11 练习题109

3.12 编程练习111

第4章 控制结构Ⅰ114

4.1 控制结构114

4.2 关系运算符115

4.3 关系运算符和基本数据类型116

4.4 关系运算符和string类型118

4.5 逻辑(布尔)运算符和逻辑表达式119

4.6 优先顺序120

4.6.1 快速求值法124

4.6.2 int数据类型和逻辑(布尔)表达式124

4.6.3 bool数据类型和逻辑(布尔)表达式125

4.7.1 单选126

4.7 选择结构:if和if...else语句126

4.7.2 双选128

4.7.3 复合语句(块)131

4.7.4 多选:嵌套if语句131

4.7.5 将if...else语句与if语句进行比较134

4.7.6 使用伪代码开发、测验和调试程序135

4.7.7 输入失败和if语句137

4.7.8 等于运算符(=)和赋值运算符(=)之间的混淆140

4.7.9 条件运算符(?:)141

4.8 switch语句141

4.9 利用assert函数终止程序147

4.10 编程示例:有线电视公司的收费单148

4.10.1 问题分析和算法设计149

4.10.2 变量149

4.10.4 公式150

4.10.3 指定的常量150

4.10.5 主算法151

4.11 快速回顾153

4.12 练习题154

4.13 编程练习159

第5章 控制结构Ⅱ(循环)161

5.1 为什么需要循环语句161

5.2 while循环结构162

5.2.1 案例1:使用控制计数器的while循环165

5.2.2 案例2:使用标记控制的while循环167

5.2.3 案例3:标志控制的while循环171

5.2.4 案例4:EOF控制的while循环171

5.3 编程示例:检查支票账户余额173

5.3.1 问题分析和算法设计173

5.3.2 主算法176

5.3.3 完整的程序清单177

5.4 编程示例:斐波纳契数列180

5.4.1 问题分析和算法设计181

5.4.2 主算法181

5.4.3 完整的程序清单182

5.5 for循环结构184

5.6 编程示例:分类数字189

5.6.1 问题分析和算法设计189

5.6.2 主算法190

5.6.3 完整的程序清单190

5.7 do...while循环结构192

5.8 break语句和continue语句195

5.9 嵌套控制结构196

5.10 快速回顾203

5.11 练习题204

5.12 编程练习214

6.1 预定义函数216

第6章 用户定义的函数Ⅰ216

6.2 用户定义的函数218

6.3 返回值函数219

6.3.1 return语句221

6.3.2 函数原型224

6.3.3 程序的执行流程229

6.4 编程示例:最大数229

6.4.1 问题分析和算法设计230

6.4.2 完整的程序清单230

6.5 编程示例:有线电视公司231

6.5.1 问题分析和算法设计231

6.5.2 主算法(main函数):233

6.5.3 完整的程序清单233

6.6 快速回顾236

6.7 练习题237

6.8 编程练习241

第7章 用户定义的函数Ⅱ243

7.1 void函数243

7.1.1 不带参数的void函数243

7.1.2 带参数的void函数246

7.2 值参数249

7.3 将引用变量作为参数251

7.4 值参数和引用参数以及内存分配254

7.5 引用参数和返回值函数265

7.6 标识符的作用域265

7.7 全局变量的副作用268

7.8 静态变量和自动变量269

7.9 函数重载概述270

7.10 带默认参数的函数271

7.11 编程示例:分类数字273

7.11.2 完整的程序清单275

7.11.1 主算法275

7.12 编程示例:数据比较277

7.12.1 问题分析和算法设计278

7.12.2 主算法:函数main281

7.12.3 完整的程序清单282

7.12.4 条形图285

7.12.5 函数printBar286

7.13 快速回顾287

7.14 练习题288

7.15 编程练习294

第8章 用户定义的简单数据类型、命名空间及字符串类型297

8.1 枚举类型297

8.1.1 声明变量299

8.1.2 赋值299

8.1.3 枚举类型的操作299

8.1.6 枚举类型的输入和输出300

8.1.5 枚举类型及循环300

8.1.4 关系运算符300

8.1.7 函数和枚举类型302

8.1.8 在定义枚举类型时声明变量303

8.1.9 匿名数据类型303

8.1.10 typedef语句304

8.2 编程示例:石头、纸和剪刀的游戏305

8.2.1 问题分析和算法设计305

8.2.2 主算法310

8.2.3 完整的程序清单310

8.3 命名空间314

8.4 字符串类型319

8.5 编程示例:大拉丁字符串328

8.5.1 问题分析和算法设计329

8.5.2 主算法331

8.5.3 完整的程序清单331

8.6 快速回顾333

8.7 练习题335

8.8 编程练习338

第9章 数组以及字符串340

9.1 数组341

9.1.1 访问数组元素342

9.1.2 一维数组的处理344

9.1.3 数组索引越界348

9.1.4 声明时初始化数组348

9.1.5 处理数组时的一些限制349

9.1.6 将数组作为函数的参数350

9.1.7 整型数据类型以及数组索引355

9.2 C-string(字符数组)356

9.2.1 字符串比较358

9.2.2 字符串的读写359

9.2.3 字符串输入359

9.2.5 在执行期间指定输入/输出文件360

9.2.4 字符串输出360

9.4 平行数组361

9.3 二维数组和多维数组362

9.4.1 访问数组元素364

9.4.2 声明时初始化二维数组365

9.4.3 二维数组和枚举类型365

9.4.4 二维数组的处理367

9.4.5 将二维数组作为参数传递给函数372

9.4.6 字符串数组374

9.4.7 声明二维数组的其他方法376

9.5 多维数组377

9.6 编程示例:代码检测377

9.6.1 问题分析和算法设计378

9.6.2 完整的程序清单381

9.7 编程示例:文本处理383

9.7.1 问题分析和算法设计384

9.7.2 完整的程序清单386

9.8 快速回顾389

9.9 练习题390

9.10 编程练习395

第10章 数组和vector类型的应用400

10.1 列表处理400

10.1.1 查找400

10.1.2 排序列表:冒泡法排序404

10.1.3 排序列表:选择排序407

10.1.4 对有序列表进行顺序查找413

10.1.5 二分查找法415

10.2 vector类型(类)419

10.3 编程示例:选举结果423

10.3.1 问题分析和算法设计424

10.3.2 完整的程序清单432

10.4 快速回顾437

10.5 练习题438

10.6 编程练习440

第11章 记录(结构体)442

11.1 记录(结构体)442

11.1.1 访问结构体成员444

11.1.2 赋值445

11.1.3 比较(关系运算符)446

11.1.4 输入/输出447

11.1.5 结构体变量和函数447

11.1.6 数组与结构体的比较448

11.1.7 结构体中的数组448

11.1.8 数组中的结构体450

11.1.9 结构体中的结构体452

11.2 编程示例:销售数据分析455

11.2.1 问题分析和算法设计456

11.2.2 主算法463

11.2.3 完整的程序清单464

11.3 快速回顾469

11.4 练习题470

11.5 编程练习472

第12章 类和数据抽象475

12.1 类475

12.1.1 统一建模语言图478

12.1.2 变量(对象)声明478

12.1.3 访问类成员479

12.1.4 对类执行的内置操作480

12.1.5 赋值运算符和类480

12.1.6 类的作用域481

12.1.7 函数和类481

12.1.8 成员函数的实现482

12.1.9 访问函数和赋值函数485

12.1.10 类公有成员和私有成员的次序491

12.1.11 构造函数493

12.1.12 调用构造函数494

12.1.13 类和构造函数499

12.1.14 类对象(变量)数组和构造函数500

12.1.15 析构函数501

12.2 数据抽象化、类和抽象数据类型502

12.3 结构体和类的比较504

12.4 信息隐藏504

12.5 可执行代码507

12.6 类的静态成员510

12.7 编程示例:糖果机515

12.7.1 问题分析和算法设计515

12.7.2 主程序519

12.7.3 完整的程序清单522

12.8 快速回顾527

12.9 练习题529

12.10 编程练习533

第13章 继承和组合536

13.1 继承536

13.1.1 重定义(重写)基类的成员函数538

13.1.2 派生类和基类的构造函数544

13.1.3 派生类的头文件550

13.1.4 头文件的多次包含551

13.1.5 C++流类552

13.1.6 类的保护成员553

13.1.7 public、protected或private继承553

13.2 组合556

13.3 面向对象设计(OOD)和面向对象的程序设计(OOP)560

13.4 编程示例:成绩单562

13.4.1 问题分析和算法设计564

13.4.2 主程序573

13.4.3 程序清单575

13.6 练习题581

13.5 快速回顾581

13.7 编程练习587

第14章 指针、类和虚函数590

14.1 指针数据类型和指针变量590

14.2 取地址运算符(&)591

14.3 复引用运算符(*)592

14.4 类、结构体和指针变量597

14.5 初始化指针变量600

14.6 动态变量600

14.6.1 运算符new600

14.6.2 运算符delete601

14.7 指针变量操作603

14.8 动态数组605

14.8.2 指针和函数返回值607

14.8.1 函数和指针607

14.9 表层与深层复制和指针608

14.10 类和指针的一些特性610

14.10.1 析构函数610

14.10.2 赋值运算符611

14.10.3 复制构造函数612

14.11 继承、指针和虚函数619

14.12 取地址运算符和类625

14.13 快速回顾627

14.14 练习题629

14.15 编程练习635

第15章 重载和模板636

15.1 为什么需要运算符重载636

15.2 运算符重载637

15.2.1 运算符函数的语法637

15.2.3 指针this638

15.2.2 重载运算符的一些限制638

15.2.4 类的友元函数643

15.2.5 作为成员函数和非成员函数的运算符函数645

15.2.6 重载二元运算符648

15.2.7 重载流插入运算符(<<)和流提取运算符(>>)653

15.2.8 重载赋值运算符(=)657

15.2.9 重载一元运算符664

15.2.10 重载自增(++)和自减(-)运算符664

15.2.11 运算符重载:成员和非成员670

15.2.12 类和指针数据成员(回顾)670

15.2.13 运算符重载:小结671

15.3 编程示例clockType671

15.4 编程示例:复数677

15.5 重载数组索引(下标)运算符([])682

15.6 编程示例:newString683

15.8.1 函数模板689

15.8 模板689

15.7 函数重载689

15.8.2 类模板691

15.9 快速回顾698

15.10 练习题700

15.11 编程练习704

第16章 异常处理710

16.1 处理程序中的异常710

16.1.1 C++的异常处理机制714

16.1.2 try/catch块714

16.1.3 在程序中使用try/catch块716

16.1.4 使用C++异常类720

16.2 创建自己的异常类723

16.3 异常处理技巧732

16.3.1 终止程序732

16.3.2 修复错误并继续执行732

16.4 栈展开734

16.3.3 记录错误并继续执行734

16.5 快速回顾737

16.6 练习题738

16.7 编程练习740

第17章 递归741

17.1 递归定义741

17.1.1 直接和间接递归743

17.1.2 无限递归743

17.2 使用递归解决问题743

17.3 递归或迭代各自的用途752

17.4 编程示例:将一个数从二进制转化为十进制753

17.5 编程示例:将一个数从十进制转化为二进制756

17.6 快速回顾759

17.7 练习题759

17.8 编程练习762

18.1 链表765

第18章 链表765

18.1.1 链表的属性766

18.1.2 遍历链表768

18.1.3 项插入和删除769

18.1.4 构建链表772

18.2 作为ADT的链表776

18.2.1 列表的长度781

18.2.2 检索第一个节点的数据781

18.2.3 检索最后一个节点的数据781

18.2.4 查找列表781

18.2.5 插入第一个节点782

18.2.6 插入最后一个节点783

18.2.7 复制列表787

18.2.9 复制构造函数789

18.2.10 重载赋值运算符789

18.2.8 析构函数789

18.3 有序链表790

18.4 双向链表801

18.4.1 默认的构造函数803

18.4.2 isEmptyList804

18.4.3 销毁列表804

18.4.4 初始化列表804

18.4.5 列表的长度804

18.4.6 输出列表805

18.4.7 反向输出列表805

18.4.8 查找列表805

18.4.9 第一个和最后一个元素806

18.5 编程示例:录像带出租店810

18.5.1 录像带成员811

18.5.2 顾客成员821

18.5.3 主程序823

18.5.4 主程序清单824

18.6 快速回顾828

18.7 练习题828

18.8 编程练习832

第19章 栈和队列835

19.1 栈835

19.2 将栈实现为数组839

19.2.1 复制栈845

19.2.2 构造函数和析构函数846

19.2.3 复制构造函数846

19.2.4 重载赋值运算符(=)847

19.2.5 栈的头文件847

19.3 编程示例:最高GPA852

19.3.1 程序分析和算法设计852

19.3.2 完整的程序清单853

19.4 栈的链实现855

19.4.1 返回栈顶元素861

19.4.2 复制栈863

19.4.3 从类linkedListType派生的栈867

19.5 栈的应用:后缀表达式计算器868

19.5.1 主算法871

19.5.2 完整的程序清单873

19.6 删除递归:使用非递归算法反向输出链表877

19.7 队列882

19.7.1 队列操作882

19.7.2 将队列实现为数组883

19.7.3 队列的链实现892

19.7.4 从类linkedListType派生的队列896

19.8 队列应用:模拟899

19.8.1 设计排队系统900

19.8.2 顾客901

19.8.3 服务器903

19.8.4 服务器列表906

19.8.5 等待顾客队列909

19.8.6 主程序911

19.9 快速回顾917

19.10 练习题918

19.11 编程练习921

附录A 保留字924

附录B 运算符优先级925

附录C 字符集926

C.1 ASCII(美国标准信息交换码)926

C.2 EBCDIC(扩展二进制编码十进制互换代码)927

附录D 运算符重载928

附录E 其他C++主题929

E.1 关于文件输入/输出的更多内容929

E.1.1 二进制文件929

E.1.2 随机文件访问934

E.2 ANSI/ISO标准C++和标准C++中头941

附录F 头文件943

F.1 头文件cassert(assert.h)943

F.2 头文件cctype(ctype.h)943

F.3 头文件cfloat(float.h)944

F.4 头文件climits(limits.h)946

F.5 头文件cmath(math.h)947

F.6 头文件cstddef(stddef.h)948

F.7 头文件cstring(string.h)948

F.8 头文件string948

附录G 系统上的内存大小和随机数生成器951

附录H 标准模板库(STL)953

H.1 STL的组成部分953

H.2 容器类型953

H.2.1 顺序容器953

H.2.2 顺序容器:向量954

H.2.3 所有容器中常见的成员函数960

H.2.4 顺序容器中常见的成员函数961

H.2.5 复制算法961

H.2.6 顺序容器:双端队列965

H.2.7 顺序容器:列表967

H.3 迭代器971

H.3.1 IOStream迭代器971

H.3.2 容器适配器972

H.4 算法975

H.4.1 STL算法分类975

H.4.2 STL算法976

H.4.3 函数fill和fill_n976

H.4.4 函数find和find_if978

H.4.5 函数remove和replace979

H.4.6 函数search、sort和binary_search980

附录I 部分练习题的答案983

热门推荐