书籍 程序设计基础的封面

程序设计基础PDF电子书下载

张瑞庆责任编辑;(中国)赵宏

购买点数

14

出版社

北京:清华大学出版社

出版时间

2019

ISBN

标注页数

411 页

PDF页数

427 页

图书目录

第1章 如何让计算机进行计算 1

1.1 计算思维和程序流程图 1

1.1.1 计算思维 1

1.1.2 程序流程图 2

1.2 程序设计的基本概念 4

1.2.1 用计算机求解问题的过程 4

1.2.2 程序设计方法 6

1.3 高级程序设计语言——C++ 7

1.4 初识C++程序 8

1.4.1 简单C++程序实例 9

1.4.2 C++源程序的组成 9

1.4.3 C++源程序的组成元素 12

1.5 集成开发环境——VS 2010 13

第2章 计算机如何表示与处理数据 16

2.1 常用数制及不同数制数值之间的转换 17

2.1.1 数制 17

2.1.2 不同数制之间的转换 18

2.2 整数在计算机中的表示 20

2.2.1 数据的单位 20

2.2.2 整数的表示方法 20

2.3 实数在计算机中的表示 24

2.4 非数值数据在计算机中的表示 25

2.4.1 字符型数据在计算机中的表示 25

2.4.2 字符串 27

2.4.3 逻辑型数据 27

2.5 C++中的基本数据类型和转义字符 27

2.5.1 C++的基本数据类型 27

2.5.2 C++中的转义字符 28

2.6 变量和常量 29

2.6.1 常量 29

2.6.2 变量 30

2.7 基本数据的处理 31

2.7.1 运算符和表达式 31

2.7.2 算术运算符与算术表达式 31

2.7.3 赋值运算符与赋值表达式 32

2.7.4 关系运算符与关系表达式 33

2.7.5 逻辑运算符与逻辑表达式 34

2.7.6 基本数据类型之间的转换 35

2.8 C++中的基本语句 38

2.8.1 定义/声明语句 38

2.8.2 表达式语句 41

2.8.3 复合语句和空语句 41

2.8.4 输入输出语句 42

2.9 C++中的几个特殊运算符 42

2.9.1 ++和-- 42

2.9.2 条件运算符 43

2.9.3 逗号运算符 45

2.9.4 sizeof运算符 45

2.10 更多关于C++的运算符和表达式 46

2.10.1 运算符的优先级和结合性 46

2.10.2 有副作用的表达式和无副作用的表达式 48

2.10.3 表达式的求值顺序 49

第3章 选择与迭代算法 50

3.1 单路选择算法及其C++实现 50

3.1.1 单路选择问题 50

3.1.2 用C++的if语句编程解决单路选择问题 51

3.2 双路选择算法及其C++实现 52

3.2.1 双路选择问题 52

3.2.2 用C++提供的if…else语句编程解决双路选择问题 53

3.3 嵌套选择及其C++实现 54

3.4 多路选择算法及其C++实现 56

3.4.1 多路选择问题 56

3.4.2 用C++提供的switch语句编程解决多路选择问题 56

3.5 迭代算法及其for语句的实现 58

3.5.1 迭代算法 59

3.5.2 用C++提供的for语句实现迭代算法 59

3.6 迭代算法及其while语句的实现 60

3.6.1 用C++提供的while语句实现迭代算法 60

3.6.2 用C++提供的do…while语句实现迭代算法 61

3.7 迭代嵌套及其C++实现 62

3.8 迭代与选择嵌套及其C++实现 64

3.8.1 迭代与选择嵌套及其C++实现 64

3.8.2 选择与迭代嵌套及其C++实现 65

3.9 C++中的转向语句 65

3.9.1 break语句 66

3.9.2 continue语句 66

3.9.3 return语句 67

3.9.4 goto语句 67

第4章 结构化数据的处理 69

4.1 一维数据及其C++实现 69

4.1.1 一维数据问题 69

4.1.2 用C++提供的一维数组存储一维数据 71

4.2 二维数据及其C++实现 73

4.2.1 二维数据问题 73

4.2.2 C++提供的一维数组或二维数组存储二维数据 74

4.3 字符串及其C++实现 77

4.3.1 字符串问题 77

4.3.2 用C++提供的一维数组存储字符串 78

4.4 多个字符串的处理 79

4.4.1 多个字符串问题 79

4.4.2 用C++提供的二维数组存储来多个字符串 80

4.5 多属性数据及其C++实现 81

4.5.1 多属性数据问题 81

4.5.2 用C++提供的结构体存储多属性数据 81

4.6 一组多属性数据的处理 84

4.6.1 一组多属性数据的问题 84

4.6.2 使用结构体数组对一组多属性数据进行存储和处理 84

4.7 C++中的枚举数据类型 85

4.7.1 枚举类型的定义 85

4.7.2 枚举变量的定义 86

4.7.3 枚举变量的使用 86

4.8 数组的应用——选择排序 87

4.8.1 选择排序算法 87

4.8.2 用C++实现选择排序算法 88

第5章 模块化 90

5.1 模块化及其C++实现 90

5.1.1 采用模块化思想处理问题 91

5.1.2 用C++实现结构化程序设计 91

5.1.3 函数的调用机制及内联函数 94

5.1.4 调用库函数 95

5.2 递归算法及其C++实现 95

5.2.1 递归算法 95

5.2.2 递归算法实例 96

5.3 默认形参值 98

5.3.1 指定默认形参值的位置 98

5.3.2 默认形参值的指定顺序 99

5.4 函数重载 99

5.5 编译预处理 101

5.5.1 文件包含 101

5.5.2 宏定义 102

5.5.3 条件编译 103

5.6 多文件结构 105

5.6.1 头文件 105

5.6.2 源文件 106

5.6.3 多文件结构程序实例 106

5.6.4 避免头文件被重复包含 108

5.7 变量和函数的作用域与生存期 109

5.7.1 全局变量的作用域与生存期 109

5.7.2 局部变量的作用域与生存期 110

5.7.3 函数的作用域 112

5.8 模块化应用实例——二分查找法 114

5.8.1 二分查找法 114

5.8.2 二分查找法应用实例 115

第6章 数据存储 117

6.1 数据存储的基本原理 117

6.2 地址与C++中的指针 118

6.2.1 指针变量的定义 119

6.2.2 指针变量的初始化 119

6.2.3 使用指针访问内存中的数据 120

6.3 指针与数组 123

6.3.1 数组在内存中的存储方式 123

6.3.2 使用指针操作数组 124

6.3.3 数组名与指针变量的区别 125

6.3.4 指向行的指针变量 126

6.4 指针与字符串 127

6.5 动态使用内存空间 129

6.6 二级指针 133

6.7 指针与函数 134

6.7.1 指针作为函数参数 134

6.7.2 指针作为函数返回值 140

6.8 引用与函数 141

6.8.1 引用的概念和声明 141

6.8.2 函数的传值调用 142

6.8.3 函数的引用调用 143

6.8.4 返回引用的函数 144

第7章 面向对象方法 146

7.1 面向对象方法的基本概念 147

7.2 C++中的类和对象 150

7.2.1 类的定义 150

7.2.2 构造函数 152

7.2.3 对象的定义和对象的访问 153

7.3 类成员的访问控制 156

7.4 析构函数 158

7.5 拷贝构造函数 160

7.6 类声明与实现的分离 162

7.7 类的静态成员 164

7.7.1 静态数据成员 164

7.7.2 静态成员函数 166

7.8 类的常量成员 168

7.8.1 常量数据成员 168

7.8.2 常量成员函数 168

7.9 this指针 169

7.10 类的友元 170

7.11 类的对象成员 174

7.12 自定义类的运算符重载 177

7.12.1 类成员函数形式的运算符重载 177

7.12.2 类友元形式的运算符重载 179

第8章 继承与多态 184

8.1 继承 184

8.1.1 继承概述 184

8.1.2 派生类的定义 185

8.1.3 访问控制方式和派生类的继承方式 187

8.1.4 成员函数重定义 189

8.1.5 派生类的构造函数和析构函数 190

8.1.6 多继承 192

8.2 多态 199

8.2.1 类型兼容和多态性的概念 199

8.2.2 多态性的实现 202

8.3 抽象类 204

8.3.1 抽象类的作用 204

8.3.2 抽象类的实现 205

第9章 输入输出流 207

9.1 输入输出流概述 207

9.2 cout和cin对象以及插入和提取运算符 208

9.2.1 标准流对象 208

9.2.2 >>和<<运算符与标准输入输出 208

9.3 使用成员函数进行标准输出和输入 210

9.3.1 使用put()函数进行标准输出 210

9.3.2 使用get()函数进行标准输入 210

9.3.3 getline()函数进行标准输入 212

9.4 文件流对象以及插入和提取运算符 213

9.4.1 文件流对象 213

9.4.2 <<和>>运算符与文件输入输出 216

9.5 使用成员函数进行文件的输出和输入 217

9.5.1 使用put()函数进行文本文件输出 217

9.5.2 使用get()get(函数进行文本文件输入 218

9.5.3 使用getline()函数进行文本文件输入 218

9.6 按数据块进行输出和输入 220

9.6.1 使用write()函数按数据块进行输出 220

9.6.2 使用read()函数按数据块进行输入 221

9.7 文件的随机读写 225

9.8 自定义数据类型的输入输出 227

第10章 模板 231

10.1 函数模板 231

10.1.1 函数模板的定义 232

10.1.2 函数模板的使用 232

10.2 类模板 234

10.2.1 类模板的定义 235

10.2.2 类模板的使用 236

10.2.3 类模板的静态成员和友元 238

第11章 数据结构和算法的基本概念 240

11.1 数据结构的基本概念 240

11.1.1 基本术语 241

11.1.2 数据的逻辑结构 242

11.1.3 数据的存储结构 244

11.1.4 数据的操作 245

11.2 抽象数据类型 246

11.3 算法设计与算法分析基础 248

11.3.1 算法的基本概念 248

11.3.2 算法分析 249

11.3.3 算法分析实例 254

11.4 算法设计基本方法与策略基础 256

11.4.1 算法设计的方法 256

11.4.2 算法设计策略 260

第12章 线性表 269

12.1 线性表及其抽象数据类型 269

12.1.1 线性表的基本概念 270

12.1.2 线性表的抽象数据类型 270

12.2 线性表的顺序存储结构及其实现 271

12.2.1 线性表的顺序表示 271

12.2.2 顺序表的实现 273

12.2.3 顺序表代码复用实例 277

12.3 线性表的链式表示方法及实现 281

12.3.1 链式存储结构 281

12.3.2 单向链表及其基本操作 281

12.3.3 单向链表代码复用实例 288

12.3.4 线性表的顺序存储与链式存储的比较 291

12.3.5 循环链表及其基本操作 292

12.3.6 双向链表及其基本操作 294

第13章 栈和队列 297

13.1 栈的基本概念 297

13.1.1 栈的基本概念 297

13.1.2 栈的抽象数据类型 298

13.2 栈的表示及实现 299

13.2.1 栈的顺序表示及实现 299

13.2.2 顺序栈代码复用实例 303

13.2.3 栈的链式表示及实现 304

13.3 队列的基本概念 307

13.3.1 队列的基本概念 307

13.3.2 队列的抽象数据类型 308

13.4 队列的表示及实现 308

13.4.1 队列的顺序表示及实现 309

13.4.2 循环队列代码复用实例 313

13.4.3 队列的链式表示及实现 315

第14章 树和二叉树 319

14.1 树的基本概念 319

14.1.1 树的定义 321

14.1.2 树的表示形式 321

14.1.3 树的基本术语 322

14.2 二叉树及其基本性质 324

14.2.1 二叉树的定义 324

14.2.2 二叉树的基本性质 325

14.3 二叉树的抽象数据类型和表示方式 327

14.3.1 二叉树的顺序表示及实现 328

14.3.2 二叉树的链式表示及实现 333

14.4 二叉树的遍历及常用操作 339

14.4.1 二叉树的遍历及其实现 339

14.4.2 二叉树其他常用操作的实现 345

14.5 二叉排序树 350

14.5.1 二叉排序树的定义 350

14.5.2 二叉排序树的生成 350

14.5.3 二叉排序树的查找 353

14.6 二叉树排序树应用示例 355

14.7 哈夫曼树和哈夫曼码 356

14.7.1 基本术语 356

14.7.2 哈夫曼树及其构造方法 357

14.7.3 哈夫曼码及其编解码方法 358

第15章 图 360

15.1 图的基本概念及特性 360

15.2 图的抽象数据类型和表示方式 364

15.2.1 图的抽象数据类型 364

15.2.2 图的表示法 365

15.2.3 图的邻接矩阵表示法的实现 367

15.3 图的遍历 370

15.3.1 广度优先遍历及其实现 371

15.3.2 深度优先遍历及其实现 373

15.4 应用实例 376

15.4.1 图的应用 376

15.4.2 用图来描述和求解实际问题 377

第16章 算法设计策略及应用实例 380

16.1 分治策略 380

16.1.1 分治策略概述 380

16.1.2 分治策略的算法设计步骤和程序模式 381

16.1.3 分治策略应用实例 382

16.2 贪心策略 385

16.2.1 最优化问题与最优化原理 385

16.2.2 贪心策略概述 385

16.2.3 贪心策略的算法设计步骤及程序模式 386

16.2.4 贪心策略应用实例 387

16.3 动态规划策略 389

16.3.1 动态规划策略概述 390

16.3.2 动态规划策略的相关概念 392

16.3.3 动态规划策略算法设计步骤及程序模式 394

16.3.4 动态规划策略应用实例 395

16.4 回溯策略 398

16.4.1 回溯策略概述 398

16.4.2 回溯策略算法设计步骤及程序模式 399

16.4.3 回溯策略应用实例 400

16.5 分支限界策略 401

16.5.1 堆 401

16.5.2 分支限界策略概述 404

16.5.3 分支限界策略算法设计步骤及程序模式 405

16.5.4 分支限界策略应用实例 405

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包