《程序设计基础》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:何炎祥,石莹,王娜编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302133700
  • 页数:427 页
图书介绍:本书介绍程序设计基础方面的知识,包括:程序设计的基本概念、风格、语言、结构、面向对象程序设计、网络程序设计、分布式程序设计、编译过程等。

第1章 绪论 1

1.1 程序设计的应用 1

1.1.1 科学计算 2

1.1.2 信息处理 3

1.1.3 计算机辅助系统 4

1.1.4 计算机控制与仿真系统 5

1.1.5 人工智能 5

1.2 程序设计的基本概念 6

1.2.1 程序设计的本质 6

1.2.2 问题求解的基本流程 8

1.3 程序设计的环境 10

1.3.1 程序设计与编程环境的关系 10

1.3.2 程序设计环境的发展 11

1.4 程序设计的发展 11

1.4.1 程序设计简史 12

1.4.2 程序设计的发展趋势 14

1.5 程序设计的要素 15

1.5.1 程序设计的辅助知识 15

1.5.2 标准化基础知识 16

1.5.3 良好的程序设计风格 17

1.6 本书所用的工具语言 18

1.6.1 C程序设计语言简述 18

1.6.2 Java程序设计语言简述 19

小结 20

习题 20

第2章 程序的结构 22

2.1 程序的基本结构 22

2.2 程序语言的字符集 25

2.2.1 字符集的概念 25

2.3.1 常量 26

2.2.2 关键字 26

2.3 常量和变量 26

2.3.2 变量 27

2.4 基本数据类型 28

2.4.1 数值类型 28

2.4.2 字符型 30

2.4.3 布尔型 31

2.4.4 枚举型 32

2.5 表达式 34

2.5.1 运算符 34

2.5.2 赋值表达式 37

2.5.3 输入输出语句 38

2.6 典型的逻辑结构 41

2.6.1 顺序 41

2.6.2 条件 41

2.6.3 循环 46

2.6.4 goto语句 53

小结 54

习题 55

第3章 程序设计语言翻译基础 58

3.1 什么是编译程序 58

3.2 与编译器相关的程序 60

3.3 编译过程概述 62

3.3.1 词法分析 62

3.3.2 语法分析 63

3.3.3 语义分析 63

3.3.4 中间代码生成 64

3.3.5 代码优化 64

3.3.6 目标代码生成 64

3.4 编译器中的主要数据结构 65

3.3.7 符号表管理 65

3.3.8 出错处理 65

3.5 编译器结构中的其他问题 67

3.6 编译运行时的环境 69

3.6.1 程序执行时的存储器组织 70

3.6.2 完全静态运行时环境 71

3.6.3 基于栈的运行时环境 72

3.6.4 动态存储器 73

3.7 参数传递机制 74

3.7.1 值传递 75

3.7.2 引用传递 75

3.7.3 值结果传递 75

3.7.4 名字传递 75

3.8.1 并行计算机 76

3.8 并行编译基础 76

3.8.2 并行编译系统的结构 77

小结 78

习题 78

第4章 算法 80

4.1 算法的概念 80

4.1.1 算法设计在程序设计中的角色 80

4.1.2 算法的特征 81

4.1.3 算法的复杂度 81

4.2 算法的描述 82

4.2.1 用自然语言描述算法 82

4.2.2 用流程图描述算法 83

4.2.3 用N-S图描述算法 84

4.2.4 用PAD图描述算法 84

4.2.5 用伪代码描述算法 85

4.3.1 算法的正确性 89

4.3 算法分析 89

4.3.2 算法的复杂度 91

4.4 P与NP问题简介 94

4.5 算法设计 97

4.5.1 回溯法 97

4.5.2 分支限界法 102

4.5.3 贪婪法 105

4.5.4 分而治之法 110

4.5.5 动态规划法 116

4.5.6 局部搜索法 123

小结 126

习题 127

第5章 数据类型 130

5.1 程序设计中的数据对象 130

5.2.1 数据类型的描述 132

5.2 数据类型的基本概念 132

5.2.2 数据类型的实现 133

5.2.3 声明 134

5.2.4 类型检查和类型转换 136

5.3 构造数据类型 138

5.3.1 数组 138

5.3.2 指针 148

5.3.3 记录(结构体) 163

5.4 抽象数据类型 166

5.4.1 数据的抽象 167

5.4.2 抽象数据类型的定义 168

5.4.3 抽象数据类型的实现 170

小结 173

习题 173

6.1 数据结构的基本概念 177

6.1.1 数据的逻辑结构 177

第6章 程序设计中常用的数据结构 177

6.1.2 数据的存储结构 178

6.1.3 数据的运算 179

6.2 链表 180

6.2.1 结点 181

6.2.2 链表的构造 182

6.2.3 链表的相关运算 184

6.2.4 双链表和循环链表 187

6.3 队列 189

6.3.1 队列的定义 189

6.3.2 队列的运算 191

6.3.3 队列在程序设计中的应用 193

6.4 树 193

6.4.1 树的定义 193

6.4.2 二叉树的概念 194

6.4.3 二叉树的遍历 197

6.4.4 线索二叉树 200

6.4.5 二叉树在程序设计中的应用 203

小结 205

习题 206

第7章 堆栈与递归程序设计 208

7.1 堆栈 208

7.1.1 堆栈的定义 208

7.1.2 堆栈的应用 211

7.2 递归程序设计 216

7.2.1 递归的定义 216

7.2.2 递归程序的设计 219

7.2.3 递归函数的调用与堆栈 228

7.2.4 递归程序的性能 229

7.2.5 非递归化 231

小结 232

习题 233

第8章 输入输出 234

8.1 流和文件 234

8.1.1 流和文件的概念 234

8.1.2 流和文件的读写 235

8.2 数据库 244

8.2.1 数据库的概念 244

8.2.2 数据库在程序设计中的应用 246

小结 266

习题 267

第9章 程序正确性证明 269

9.1 概述 269

9.2 程序测试 271

9.2.1 黑盒测试 271

9.2.2 白盒测试 275

9.3 数理逻辑基础 277

9.3.1 命题逻辑 278

9.3.2 谓词逻辑 279

9.4 部分正确性证明 281

9.4.1 不变式断言法 281

9.4.2 子目标断言法 286

9.4.3 公理化方法 289

9.5 终止性证明 294

9.5.1 良序集法 294

9.5.2 计数器法 298

9.6 结构化程序的正确性证明 300

9.6.1 结构化程序 300

9.6.2 正确性定理 302

9.6.3 证明程序正确性的代数方法 304

9.6.4 产生循环不变式的一种方法 311

9.7.1 递归程序的模型 313

9.7 递归程序的正确性证明 313

9.7.2 结构归纳法 315

9.7.3 良序归纳法 316

小结 317

习题 318

第10章 结构化程序设计 321

10.1 结构化分析/结构化设计编程思想 321

10.1.1 结构化分析/结构化设计思想简介 321

10.1.2 结构化程序设计思想简介 327

10.2 函数的定义 329

10.3 函数的调用 333

10.3.1 函数调用的一般格式 333

10.3.2 嵌套 337

10.3.3 递归 338

10.4 作用域规则 340

10.5.1 标准库函数 346

10.5 库函数 346

10.5.2 自定义库函数 347

10.6 编译预处理 348

10.6.1 宏 348

10.6.2 编译 351

小结 353

习题 354

第11章 面向对象程序设计 356

11.1 面向对象的思想 356

11.1.1 面向对象的思想及其产生过程 356

11.1.2 面向对象的基本概念 359

11.2 面向对象建模 362

11.2.1 面向对象建模的概念 362

11.2.2 面向对象分析 363

11.2.3 面向对象设计 365

11.2.4 常用的面向对象建模技术 366

11.3 面向对象程序设计 376

11.3.1 面向对象程序语言 376

11.3.2 程序语言中的OOP机制 378

11.4 面向对象技术的发展 393

11.4.1 构件 393

11.4.2 分布式对象中间件 396

11.4.3 基于面向对象技术的应用软件体系结构 397

11.4.4 并发面向对象技术 398

11.5 面向对象技术面临的问题 400

小结 400

习题 401

12.1.2 对等网络程序设计 404

12.1.1 联机多用户程序设计 404

12.1 网络程序设计的发展 404

第12章 网络程序设计 404

12.1.3 客户机/服务器程序设计 405

12.1.4 远程过程调用程序设计 405

12.1.5 浏览器/服务器程序设计 406

12.1.6 分布式程序设计 406

12.2 UNIX环境网络编程 406

12.2.1 基本概念 406

12.2.2 socket编程 409

12.2.3 TCP和UDP协议编程 413

12.3 Windows环境下socket编程 419

12.3.1 Winsock套接字 420

12.3.2 Windows Sockets编程 420

小结 425

习题 425

参考文献 427