简介
本书从程序设计的一般过程与方法出发,以C++语言为媒介,重点讲述结构化程序设计与面向对象程序设计的基础知识。本书集算法分析与设计、面向对象分析与设计、软件工程基础、C++语言编程等多方面知识于一身,详细分析了产生相关理论与技术的起因,力求使读者不但知其然,而且知其所以然,因此本书适合作为程序设计的基础教程。
在编著风格上,本书从分析人类解决问题的思维过程为开端,介绍计算机的问题求解过程和方式;从人类认识世界的规律和方法入手,讲解面向对象技术理论和方法;通过对比,使读者加深对所学知识的理解和掌握。
本书是在作者多年教学工作的基础上,结合国内外多部优秀教材,通过深入分析、提炼和加工而成,适合作为计算机及相关专业的教材,也可供从事软件开发和应用的广大科技人员参考。
目录
第1章 程序设计概论
1.1 问题求解
1.1.1 思维与语言
1.1.2 算法
1.1.3 数据结构
1.1.4 程序
1.1.5 程序设计的一般过程
1.2 程序设计语言
1.2.1 发展历史
1.2.2 程序设计语言的实现
1.2.3 高级语言程序的基本结构
1.2.4 高级语言的语法规则
1.2.5 程序的编辑、编浑和运行
1.3 程序设计范式的演化
1.3.1 结构化程序设计
1.3.2 函数式程序设计
1.3.3 面向对象程序设计
1.3.4 事件驱动的程序设计
1.3.5 逻辑式程序设计
习题
.第2章 算法设计基础
2.1 算法的描述
2.1.1 自然语言方式
2.1.2 伪代码方式
2.1.3 程序流程图方式
2.1.4 n/s盒图方式
2.1.5 pad图方式
2.2 结构化算法设计初步
2.2.1 算法描述
2.2.2 算法设计
2.3 算法的计算复杂性
2.4 常用算法设计策略
2.4.1 分治法
2.4.2 递归技术
2.4.3 贪心法
2.4.4 回溯法
习题
第3章 基本数据类型
3.1 数据对象
3.1.1 数据的存储
3.1.2 生存期与值
3.2 基本数据类型
3.2.1 整型与浮点型
3.2.2 字符类型
3.2.3 逻辑型
3.2.4 空值型
3.3 变量与常量
3.3.1 常量
3.3.2 变量
3.4 指针类型
3.4.1 指针定义
3.4.2 指针的初始化
3.4.3 指针运算
3.4.4 指针与常量
3.5 引用类型
3.6 类型的意义
习题
第4章 操作及其控制
4.1 基本操作与运算符
4.1.1 赋值操作
4.1.2 算术操作
4.1.3 增1和减1操作
4.1.4 关系、逻辑操作
4.1.5 条件运算符
4.2 表达式
4.2.1 隐含类型转换
4.2.2 强制类型转换
4.2.3 表达式内的顺序控制
4.2.4 运算符的优先级
4.2.5 运算符的结合性
4.3 语句
4.3.1 表达式语句
4.3.2 语句间顺序控制
4.3.3 复合语句
4.3.4 选择语句
4.3.5 循环语句
4.3.6 直接顺序控制
4.4 预处理指令
4.4.1 文件包含指令
4.4.2 宏定义指令
4.4.3 条件编译指令
习题
第5章 函数与数据控制
5.1 函数定义与说明
5.1.1 函数定义
5.1.2 函数说明
5.1.3 函数的简单调用
5.1.4 函数的重载
5.2 数据控制
5.2.1 参数传递机制
5.2.2 数据对象的引用'
5.2.3 作用域
5.3 函数的顺序控制
5.3.1 函数执行模型
5.3.2 基于栈的实现
5.3.3 函数的自嵌套调用
5.4 相关的其他语法
5.4.1 数组作函数参数
5.4.2 函数指针
5.5 常用系统函数
5.5.1 终止程序运行
5.5.2 数学函数
5.5.3 字符串处理函数
5.5.4 面向对象的数据结构
习题
第6章 构造类型
6.1 数组类型
6.1.1 数组定义
6.1.2 数组的赋值与使用
6.1.3 数组的存储
6.1.4 数组的初始化
6.1.5 字符数组
6.1.6 指针与数组
6.2 枚举类型
6.2.1 枚举类型定义
6.2.2 枚举变量定义
6.2.3 类型转换
6.3 结构类型
6.3.1 结构的定义
6.3.2 结构的使用
6.3.3 结构的实现
6.4 结构化数据
6.4.1 单链表
6.4.2 栈
6.4.3 存储的动态分配
6.5 抽象数据类型
6.5.1 结构的扩展
6.5.2 c++的抽象数据类型
6.5.3 c++数据类型的层次
6.6 自定义类型
习题
第7章 结构化算法的实现
7.1 基本控制结构的c++实现
7.1.1 顺序结构的c++实现
7.1.2 分支结构的c++实现
7.1.3 循环结构的c++实现
7.1.4 复杂结构的c++实现示例
7.2 子算法设计与c++实现
7.2.1 参数为普通类型的子算法
7.2.2 参数为指针的子算法
7.2.3 参数为引用的子算法
7.2.4 子算法设计与c++实现示例
7.3 递归与迭代
7.3.1 递归
7.3.2 迭代
7.3.3 应用示例
习题
第8章 程序开发过程
8.1 软件开发方法概述
8.1.1 软件生存周期
8.1.2 软件开发方法
8.2 软件设计
8.2.1 概要设计
8.2.2 详细设计
8.3 软件编码
8.3.1 程序设计方法
8.3.2 程序设计语言
8.3.3 编码风格
8.4 软件测试与调试
8.4.1 调试工具及使用
8.4.2 调试过程
8.4.3 错误类型
8.4.4 异常处理
8.4.5 软件测试
8.5 程序运行效率
8.5.1 适当的算法
8.5.2 选择快速运算
8.5.3 函数
习题
第9章 面向对象程序设计
9.1 面向对象方法学
9.1.1 人类认知规律
9.1.2 面向对象基本原理
9.1.3 认知规律与面向对象
9. 1.4 面向对象软件开发
9.2 基本概念
9.2.1 对象
9.2.2 类
9.2.3 结构与关系
9.3 面向对象分析
9.3.1 主要原则
9.3.2 静态结构分析与对象模型
9.3.3 动态行为分析
9.4 面向对象设计
习题
第10章 类与对象的实现
10.1 c++中的类
10.1.1 类的说明
10.1.2 类的定义
10.2 对象及其成员的使用
10.2.1 对象实例
10.2.2 对象成员的引用
10.2.3 生命周期
10.2.4 类型转换
10.2.5 其他应用
10.3 类的特殊成员
10.3.1 静态成员
10.3.2 const成员
10.3.3 内联函数
10.3.4 友元
习题
第11章 类间关系的实现
11.1 一般-特殊关系的实现
11.1.1 类的继承与派生
11.1.2 赋值兼容规则
11.1.3 两义性与作用域分辨
11.2 多态性与虚函数
11.2.1 编译时刻的多态性
11.2.2 运行时刻的多态性
11.2.3 虚函数
11.2.4 纯虚函数与抽象类
11.3 整体-部分关系的实现
11.4 关联关系的实现
11.5 关于类层次的总结
11.5.1 认知规律与类层次
11.5.2 构造函数的一般形式
11.5.3 成员函数的特征
习题
第12章 面向对象程序设计的其他技术
12.1 运算符重载
12.1.1 友元运算符
12.1.2 类运算符
12.1.3 友元及类运算符的应用
12.1.4 ++和--运算符的重载
12.2 流类库
12.2.1 格式化输入输出
12.2.2 运算符[[和]]的重载
12.2.3 流式文件
12.2.4 流错误
12.3 模板
12.3.1 函数模板
12.3.2 类模板
12.3.3 模板应用实例
习题
附录a microson c++的保留字
附录b c++中的基本数据类型
附录c 扩展ascii字符集
附录d c++的运算符
词汇索引
参考文献
1.1 问题求解
1.1.1 思维与语言
1.1.2 算法
1.1.3 数据结构
1.1.4 程序
1.1.5 程序设计的一般过程
1.2 程序设计语言
1.2.1 发展历史
1.2.2 程序设计语言的实现
1.2.3 高级语言程序的基本结构
1.2.4 高级语言的语法规则
1.2.5 程序的编辑、编浑和运行
1.3 程序设计范式的演化
1.3.1 结构化程序设计
1.3.2 函数式程序设计
1.3.3 面向对象程序设计
1.3.4 事件驱动的程序设计
1.3.5 逻辑式程序设计
习题
.第2章 算法设计基础
2.1 算法的描述
2.1.1 自然语言方式
2.1.2 伪代码方式
2.1.3 程序流程图方式
2.1.4 n/s盒图方式
2.1.5 pad图方式
2.2 结构化算法设计初步
2.2.1 算法描述
2.2.2 算法设计
2.3 算法的计算复杂性
2.4 常用算法设计策略
2.4.1 分治法
2.4.2 递归技术
2.4.3 贪心法
2.4.4 回溯法
习题
第3章 基本数据类型
3.1 数据对象
3.1.1 数据的存储
3.1.2 生存期与值
3.2 基本数据类型
3.2.1 整型与浮点型
3.2.2 字符类型
3.2.3 逻辑型
3.2.4 空值型
3.3 变量与常量
3.3.1 常量
3.3.2 变量
3.4 指针类型
3.4.1 指针定义
3.4.2 指针的初始化
3.4.3 指针运算
3.4.4 指针与常量
3.5 引用类型
3.6 类型的意义
习题
第4章 操作及其控制
4.1 基本操作与运算符
4.1.1 赋值操作
4.1.2 算术操作
4.1.3 增1和减1操作
4.1.4 关系、逻辑操作
4.1.5 条件运算符
4.2 表达式
4.2.1 隐含类型转换
4.2.2 强制类型转换
4.2.3 表达式内的顺序控制
4.2.4 运算符的优先级
4.2.5 运算符的结合性
4.3 语句
4.3.1 表达式语句
4.3.2 语句间顺序控制
4.3.3 复合语句
4.3.4 选择语句
4.3.5 循环语句
4.3.6 直接顺序控制
4.4 预处理指令
4.4.1 文件包含指令
4.4.2 宏定义指令
4.4.3 条件编译指令
习题
第5章 函数与数据控制
5.1 函数定义与说明
5.1.1 函数定义
5.1.2 函数说明
5.1.3 函数的简单调用
5.1.4 函数的重载
5.2 数据控制
5.2.1 参数传递机制
5.2.2 数据对象的引用'
5.2.3 作用域
5.3 函数的顺序控制
5.3.1 函数执行模型
5.3.2 基于栈的实现
5.3.3 函数的自嵌套调用
5.4 相关的其他语法
5.4.1 数组作函数参数
5.4.2 函数指针
5.5 常用系统函数
5.5.1 终止程序运行
5.5.2 数学函数
5.5.3 字符串处理函数
5.5.4 面向对象的数据结构
习题
第6章 构造类型
6.1 数组类型
6.1.1 数组定义
6.1.2 数组的赋值与使用
6.1.3 数组的存储
6.1.4 数组的初始化
6.1.5 字符数组
6.1.6 指针与数组
6.2 枚举类型
6.2.1 枚举类型定义
6.2.2 枚举变量定义
6.2.3 类型转换
6.3 结构类型
6.3.1 结构的定义
6.3.2 结构的使用
6.3.3 结构的实现
6.4 结构化数据
6.4.1 单链表
6.4.2 栈
6.4.3 存储的动态分配
6.5 抽象数据类型
6.5.1 结构的扩展
6.5.2 c++的抽象数据类型
6.5.3 c++数据类型的层次
6.6 自定义类型
习题
第7章 结构化算法的实现
7.1 基本控制结构的c++实现
7.1.1 顺序结构的c++实现
7.1.2 分支结构的c++实现
7.1.3 循环结构的c++实现
7.1.4 复杂结构的c++实现示例
7.2 子算法设计与c++实现
7.2.1 参数为普通类型的子算法
7.2.2 参数为指针的子算法
7.2.3 参数为引用的子算法
7.2.4 子算法设计与c++实现示例
7.3 递归与迭代
7.3.1 递归
7.3.2 迭代
7.3.3 应用示例
习题
第8章 程序开发过程
8.1 软件开发方法概述
8.1.1 软件生存周期
8.1.2 软件开发方法
8.2 软件设计
8.2.1 概要设计
8.2.2 详细设计
8.3 软件编码
8.3.1 程序设计方法
8.3.2 程序设计语言
8.3.3 编码风格
8.4 软件测试与调试
8.4.1 调试工具及使用
8.4.2 调试过程
8.4.3 错误类型
8.4.4 异常处理
8.4.5 软件测试
8.5 程序运行效率
8.5.1 适当的算法
8.5.2 选择快速运算
8.5.3 函数
习题
第9章 面向对象程序设计
9.1 面向对象方法学
9.1.1 人类认知规律
9.1.2 面向对象基本原理
9.1.3 认知规律与面向对象
9. 1.4 面向对象软件开发
9.2 基本概念
9.2.1 对象
9.2.2 类
9.2.3 结构与关系
9.3 面向对象分析
9.3.1 主要原则
9.3.2 静态结构分析与对象模型
9.3.3 动态行为分析
9.4 面向对象设计
习题
第10章 类与对象的实现
10.1 c++中的类
10.1.1 类的说明
10.1.2 类的定义
10.2 对象及其成员的使用
10.2.1 对象实例
10.2.2 对象成员的引用
10.2.3 生命周期
10.2.4 类型转换
10.2.5 其他应用
10.3 类的特殊成员
10.3.1 静态成员
10.3.2 const成员
10.3.3 内联函数
10.3.4 友元
习题
第11章 类间关系的实现
11.1 一般-特殊关系的实现
11.1.1 类的继承与派生
11.1.2 赋值兼容规则
11.1.3 两义性与作用域分辨
11.2 多态性与虚函数
11.2.1 编译时刻的多态性
11.2.2 运行时刻的多态性
11.2.3 虚函数
11.2.4 纯虚函数与抽象类
11.3 整体-部分关系的实现
11.4 关联关系的实现
11.5 关于类层次的总结
11.5.1 认知规律与类层次
11.5.2 构造函数的一般形式
11.5.3 成员函数的特征
习题
第12章 面向对象程序设计的其他技术
12.1 运算符重载
12.1.1 友元运算符
12.1.2 类运算符
12.1.3 友元及类运算符的应用
12.1.4 ++和--运算符的重载
12.2 流类库
12.2.1 格式化输入输出
12.2.2 运算符[[和]]的重载
12.2.3 流式文件
12.2.4 流错误
12.3 模板
12.3.1 函数模板
12.3.2 类模板
12.3.3 模板应用实例
习题
附录a microson c++的保留字
附录b c++中的基本数据类型
附录c 扩展ascii字符集
附录d c++的运算符
词汇索引
参考文献
程序设计基础[电子资源.图书]
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×