第1章 绪 论 1
1.1 计算学科 1
1.2 计算思维 3
1.3 程序=数据结构+算法 5
1.4 程序设计=数据结构+算法+程序设计方法 11
1.5 语言工具和环境 15
1.6 程序设计步骤与程序设计风格 22
1.7 算法设计与分析 24
1.8 课程设计相关知识 33
1.9 课程设计题目——求最大公因子 35
习题 36
第2章 C语言与C++语言 37
2.1 C语言的发展与特点 37
2.2 C语言应用程序结构 41
2.3 Visual C++6.0集成开发环境 42
2.4 运行C语言应用程序方法与上机操作步骤 46
2.5 从面向过程到面向对象 60
2.6 C++语言 62
2.7 课程设计题目——类与对象 77
习题 78
第3章 简单数据类型与表达式 79
3.1 数据类型 79
3.2 常量与变量 82
3.3 运算符与表达式 87
3.4 课程设计题目——求最小公倍数 93
习题 94
第4章 程序的基本控制结构 95
4.1 程序的基本控制结构 95
4.2 顺序结构程序设计 98
4.3 选择结构程序设计 101
4.4 循环结构程序设计 111
4.5 课程设计题目——求解方程的根 123
习题 124
第5章 构造数据类型 125
5.1 数组类型 125
5.2 结构体类型 142
5.3 其他构造数据类型 153
5.4 课程设计题目——排序算法 164
习题 165
第6章 结构化程序设计 167
6.1 结构化方法概述 167
6.2 模块化设计技术与方法 168
6.3 自顶向下设计技术与方法 172
6.4 逐步求精设计技术与方法 173
6.5 结构程序优化技术与方法 181
6.6 子程序与过程文件 185
6.7 函数 192
6.8 课程设计题目——学生成绩管理系统 207
习题 207
第7章 基本数据结构 209
7.1 顺序表 209
7.2 链表 220
7.3 栈 235
7.4 递归与非递归过程 242
7.5 队列 250
7.6 二叉树 258
7.7 课程设计题目——一元多项式计算器 275
习题 276
第8章 算法设计中的常用方法 279
8.1 问题的解空间 279
8.2 枚举法 281
8.3 递归与递推 290
8.4 分治法 304
8.5 动态规划法 312
8.6 贪心法 319
8.7 回溯法 325
8.8 分支限界法 333
8.9 课程设计题目——0—1背包问题 339
习题 340
第9章 以解决问题为中心 342
9.1 一元多项式问题 342
9.2 八皇后问题 349
9.3 骑士游历问题 360
9.4 哈夫曼树与哈夫曼编码 364
9.5 课程设计题目——哈夫曼编/译码系统 373
习题 374
参考文献 375