《软件技术基础 离散数学、数据结构、C++编程实训》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:来可伟编
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2004
  • ISBN:7040147653
  • 页数:251 页
图书介绍:本书是教育部新世纪高职高专教育人才培养模式和教学内容体系改革与建设项目成果,是组织有关教育部高职高专教育专业教学改革试点院校编写的。本教材系统地介绍了离散数学、数据结构、C++语言编程等组成软件技术的三个知识领域。在理论方面,将离散数学和数据结构作为编程技术必要的数学基础进行了深入浅出的介绍,以培养学员将实际问题抽象为数学表达式的抽象思维能力。在实验技能方面,采用以案例为中心(casebased)的方式,通过完整的编程全过程练习,使读者能按现代软件工业一线编程人员的要求掌握编程的基本技能,养成良好的规范化作业的习惯。教材对各种常见数据结构采用了基于C++语言类模板的实现方法,不但方法新颖、充分体现基础理论对编程的指导作用,而且有很高的实用价值。本书适用于高等职业学校、高等专科学校、成人高校、示范性软件职业技术学院、本科院校及举办的二级职业技术学院、教育学院以及民办高校使用,不仅可以作为计算机、信息技术、电子商务等专业的教材,也可作为相关工程技术人员培训和自学的参考书。

第1章 绪论 1

1.1 本课程的知识结构 1

1.2 离散数学 1

目录 1

1.3 数据结构与算法设计 2

1.4 C++语言 2

1.5 学习要求和方法 3

1.6 书后配盘 4

1.7 软件技术教育 4

习题 6

2.1 命题逻辑的基本概念 7

2.1.1 命题 7

第2章 命题逻辑 7

2.1.2 复合命题 8

2.2 命题公式与真值表 12

2.2.1 命题公式 12

2.2.2 真值表 12

2.2.3 永真式、永假式及可满足公式 13

2.3 命题演算 13

2.3.1 命题公式的化简 13

*2.3.2 命题推理规则与方法 15

2.4 命题模型 17

2.4.1 命题建模 17

*2.4.2 命题模型推理 19

习题 20

3.1 谓词命题和谓词公式演算 22

3.1.1 谓词和个体词 22

第3章 谓词逻辑 22

3.1.2 量词 23

3.1.3 谓词公式演算 24

3.2 谓词模型 27

3.2.1 谓词建模 27

*3.2.2 谓词推理 28

习题 29

第4章 集合论 31

4.1 集合的概念 31

4.1.1 集合 31

4.1.2 集合的描述方法 32

4.2 集合运算 33

4.2.1 集合的运算 33

4.1.3 集合间的关系 33

4.2.2 集合的运算定律 34

4.3 集合模型 35

4.3.1 集合建模 36

*4.3.2 集合命题推理 37

*4.4 集合基数推理 38

习题 39

第5章 图论 42

5.1 图与树 42

5.1.1 图 42

5.1.2 图的性质 43

5.1.3 完全图和子图 44

5.1.4 图的同构 45

5.1.5 平面图 45

5.1.7 树和根树 46

5.1.6 有权图和网络 46

5.1.8 二叉树 48

5.2 图的运算 48

5.2.1 图的连通性 48

5.2.2 欧拉回路 49

5.2.3 哈密顿回路 51

5.2.4 生成树和最小费用生成树 52

5.2.5 狄克斯特算法 53

5.2.6 图的遍历 54

5.2.7 树的遍历 56

5.2.8 二叉树的遍历 56

5.3 图论建模 57

5.3.1 用图表示网络关系 57

5.3.2 用树表示分类的层次关系 59

5.3.3 搜索树 60

习题 62

第6章 C++编程作业入门 64

6.1 程序编写作业概述 64

6.1.1 编程语言 64

6.1.2 编译器与编译作业流程 65

6.2 用VC++编译器进行编程作业 66

6.2.1 建立VC++项目 66

6.2.2 编辑源代码文件 69

6.2.3 编译和查错 71

6.2.4 连编和运行程序 73

6.2.6 向项目中添加文件和从项目中 74

删除文件 74

6.2.5 项目的关闭和再打开 74

6.3 C++语言词法概要 76

6.3.1 基本词汇 77

6.3.2 标点符号 77

6.3.3 关键词 78

6.3.4 标识符 78

6.3.5 常数 79

6.3.6 运算符 81

6.3.7 注释 83

6.4 C++语言句法概要 84

6.4.1 定义语句 84

6.4.2 数据类型的转换 86

6.4.3 导出数据类型 87

6.4.4 函数和函数调用机制 88

6.4.5 运算式 92

6.4.6 程序控制语句 93

6.4.7 应用数理逻辑设计程序控制 96

语句 96

6.4.8 指针变量 99

6.4.9 字符串的运算 101

6.4.10 数据的输入输出函数 103

习题 109

第7章 用类编写面向对象的程序 111

7.1 C++语言中类的概念 111

7.1.1 概述 111

7.1.2 类定义 114

7.1.3 构造函数和析构函数 115

7.1.4 成员函数的定义与调用 117

7.1.5 引用数据类型和左值成员函数 119

7.1.6 成员函数的重载与运算符成员函数 121

7.1.7 案例——用类的运算符函数解 122

线性方程组 122

7.2 面向对象程序设计方法与C++的类 126

7.2.1 人的抽象思维方法 126

7.2.2 C++的类的聚集机制 127

7.2.3 C++的类的继承机制 128

7.2.4 按C++的类划分程序模块 131

习题 134

第8章 用类模板实现线性数据结构 138

8.1 类模板 138

8.1.1 数据结构和离散数学 138

8.1.2 固定长度的List模板 139

8.1.3 模板的实例化 141

8.1.4 长度可自动改变的List模板 143

8.1.5 List模板三 146

8.1.6 Linked List 149

8.2 矢量、矩阵和线性方程组的C++模板 150

8.2.1 矢量和矩阵的数学概念 150

8.2.2 矢量和矩阵的模板 151

8.3 排序和检索 153

8.3.1 气泡法排序和函数模板 153

8.3.2 对分检索法 156

8.3.3 插入排序 157

8.4 队列和堆栈 158

8.4.1 Stack模板 159

8.4.2 Queue模板 160

习题 162

第9章 编程作业全过程 164

9.1 软件系统开发过程 164

9.1.1 系统分析、系统设计和系统实施 164

9.1.2 UML方法 165

9.2 用类图建立数据模型 166

9.2.1 类和实例 167

9.2.2 属性 167

9.2.3 运算 167

9.2.4 类的图形表示 168

9.2.5 关联 168

9.2.7 关联的约束 169

9.2.6 关联类 169

9.2.8 继承 170

9.2.9 聚集 171

9.2.10 案例——学籍管理系统的数据模型 172

9.3 由数据模型设计C++程序 172

9.3.1 类的映射规则 172

9.3.2 继承的映射规则 173

9.3.3 聚集的映射规则 173

9.3.4 关联的映射规则 175

9.3.5 关联类的映射规则 182

9.3.6 通过计算获取冗余信息 184

9.4 数据模型的一致性和完整性 185

9.4.1 数据模型的概念一致性 185

9.4.2 数据一致性和完整性的动态维护 187

9.5.1 用户界面的作用 189

9.5 用户界面的设计 189

9.5.2 UCD 190

9.5.3 设计用户菜单 192

9.5.4 验证用户输入 194

9.5.5 输出数据的可读性 195

9.6 程序的检测 195

9.6.1 程序错误的种类和原因 195

9.6.2 程序运行检测步骤 197

9.6.3 用VC++编译器的调试功能跟踪 197

程序运行过程 197

9.7 编程作业的文档工作 201

习题 201

9.6.4 测试数据 201

第10章 树和图的C++模板 203

10.1 根树模板 203

10.1.1 根树的数据模型和C++模板 203

10.1.2 根树的广度优先遍历函数 205

10.1.3 根树的深度优先遍历函数 206

10.1.4 求根树中所有路径 207

10.2 二叉树 208

10.2.1 二叉树的数据模型和C++模板 208

10.2.2 二叉树的遍历算法 209

10.2.3 二叉检索树简介 210

10.3 递归 210

10.3.1 递归的数学概念 210

*10.3.2 递归算法的化解 212

10.4.1 图的数据模型和C++模板 215

10.4 图的C++模板和程序 215

10.4.2 无向图的最小费用生成树和克鲁斯克尔函数 216

习题 219

第11章 课程作业 221

11.1 课程作业一——学籍管理系统 221

11.1.1 根据系统数据模型设计C++类 221

定义 221

11.1.2 定义管理实例的序列 221

11.1.3 完成UCD 222

11.1.4 设计菜单函数 222

11.1.5 设计交互式数据输入函数 224

11.1.6 划分程序模块 226

11.2.1 程序工作原理分析 227

11.2 课程作业二——五子棋游戏 227

11.1.9 其他要求 227

11.1.8 编写完整的文档 227

11.1.7 测试程序 227

11.2.2 数据建模 228

11.2.3 函数Win()的实现 229

11.2.4 显示棋盘和棋子的函数 230

11.2.5 主函数控制逻辑 231

11.2.6 产生棋着的算法 232

11.2.7 其他要求 235

附录一 名词索引 236

附录二 离散数学部分习题参考 243

答案和提示 243

附录三 如何阅读用形式文法描述的 248

C++语法规则 248

参考文献 251