C++程序设计:思想与方法(第2版) / 高等院校计算机教材系列
¥49.00定价
作者: 翁惠玉
出版时间:2012年1月
出版社:人民邮电出版社
- 人民邮电出版社
- 9787115268761
- 2
- 147971
- 平装
- 16开
- 2012年1月
- 358
内容简介
《高等院校计算机教材系列·C++程序设计:思想与方法(第2版)》以C++为语言环境,全面介绍结构化程序设计和面向对象程序设计。书中注重实践性,强调解决问题的方法,让读者不但学会知识而且还会灵活运用知识。为此,作者采用以问题求解引出知识点的方法,在介绍C++语言要素的同时,重点讲授程序设计的思想和方法,目标是让学生先了解学习的目的,提高学习的兴趣,最后能利用学到的知识解决某些应用领域的问题。
本书内容丰富,覆盖面广,而且在内容的安排上采用了模块化的结构,教学时可以根据实际情况灵活选取和合理安排,不影响整个知识的连贯性。第2版增加了更多的习题和实例,更加注重问题求解过程的分析,很多章还增加了“编程规范与常见错误”一节,指导学生养成良好的编程习惯。
本书内容丰富,覆盖面广,而且在内容的安排上采用了模块化的结构,教学时可以根据实际情况灵活选取和合理安排,不影响整个知识的连贯性。第2版增加了更多的习题和实例,更加注重问题求解过程的分析,很多章还增加了“编程规范与常见错误”一节,指导学生养成良好的编程习惯。
目录
第1章 绪论
1.1 计算机硬件
1.2 计算机软件
1.3 程序设计
1.3.1 算法设计
1.3.2 编码
1.3.3 程序的编译和调试
小结
习题
第2章 通过例子学习
2.1 第一个程序:输出Hello world
2.1.1 注释
2.1.2 预编译
2.1.3 主程序
2.1.4 名字空间
2.2 第二个程序:计算圆的面积和周长
2.3 数据类型
2.3.1 整型
2.3.2 实型
2.3.3 字符型
2.3.4 布尔型
2.3.5 枚举类型
2.3.6 用typedef 重新命名类型名
2.3.7 变量赋初值
2.3.8 用sizeof 了解占用的内存量
2.4 符号常量
2.5 算术运算
2.5.1 主要的算术运算符
2.5.2 各种类型的数值间的混合运算
2.5.3 整数除法和取模运算符
2.5.4 优先级与结合性
2.5.5 数学函数库
2.6 赋值运算
2.6.1 赋值运算符
2.6.2 赋值时的自动类型转换
2.6.3 赋值的嵌套
2.6.4 多重赋值
2.6.5 复合赋值运算
2.7 自增和自减运算符
2.8 强制类型转换
2.9 数据的输入/输出
2.9.1 数据的输入
2.9.2 数据的输出
2.1 0 编程规范及常见错误
小结
习题
第3章 逻辑思维--分支程序设计
3.1 关系运算
3.1.1 关系运算符
3.1.2 关系表达式
3.2 逻辑运算
3.3 if 语句
3.3.1 if 语句的形式
3.3.2 if 语句的嵌套
3.3.3 if 语句的应用
3.3.4 条件表达式
3.4 switch 语句及其应用
3.5 编程规范及常见错误
小结
习题
第4章 重复控制--循环程序设计
4.1 for 循环
4.1.1 重复n 次操作
4.1.2 for 语句的进一步讨论
4.1.3 for 循环的嵌套
4.2 while 循环
4.3 do-while 循环
4.4 循环的中途退出
4.5 枚举法
4.6 贪婪法
4.7 编程规范和常见错误
小结
习题
第5章 批量数据处理--数组
5.1 一维数组
5.1.1 一维数组的定义
5.1.2 数组元素的引用
5.1.3 一维数组的初始化
5.1.4 一维数组在内存中的表示
5.1.5 一维数组的应用
5.2 查找和排序
5.2.1 查找
5.2.2 排序
5.3 二维数组
5.3.1 二维数组的定义
5.3.2 二维数组的初始化
5.3.3 二维数组在内存中的表示
5.3.4 二维数组的应用
5.4 字符串
5.4.1 字符串的存储及初始化
5.4.2 字符串的输入/输出
5.4.3 字符串处理函数
5.4.4 字符串的应用
5.5 编程规范及常见错误
小结
习题
第6章 过程封装--函数
6.1 函数的定义
6.1.1 return 语句
6.1.2 函数示例
6.2 函数的使用
6.2.1 函数原型的声明
6.2.2 函数的调用
6.2.3 将函数与主程序放在一起
6.2.4 函数调用过程
6.3 数组作为函数的参数
6.4 带默认值的函数
6.5 内联函数
6.6 重载函数
6.7 函数模板
6.8 变量的作用域
6.9 变量的存储类别
6.9.1 自动变量
6.9.2 静态变量
6.9.3 寄存器变量
6.9.4 外部变量
6.1 0 递归函数
6.1 0.1 递归函数的基本概念
6.1 0.2 递归函数的应用
6.1 1 基于递归的算法
6.1 1.1 回溯法
6.1 1.2 分治法
6.1 1.3 动态规划
6.1 2 编程规范及常见错误
小结
习题
第7章 间接访问--指针
7.1 指针的概念
7.1.1 指针变量的定义
7.1.2 指针的基本操作
7.2 指针运算与数组
7.2.1 指针运算
7.2.2 用指针访问数组
7.3 指针与动态内存分配
7.3.1 动态变量的创建
7.3.2 动态变量的回收
7.3.3 内存泄漏
7.3.4 查找new 操作的失误
7.4 字符串再讨论
7.5 指针与函数
7.5.1 指针作为形式参数
7.5.2 数组名作为形式参数的再讨论
7.5.3 字符串作为函数的参数
7.5.4 返回指针的函数
7.5.5 引用与引用传递
7.5.6 返回引用的函数
7.6 指针数组与多级指针
7.6.1 指针数组
7.6.2 main 函数的参数
7.6.3 多级指针
7.7 多维数组和指向数组的指针
7.8 指向函数的指针
7.8.1 作为函数的参数
7.8.2 用于菜单选择
7.9 编程规范与常见错误
小结
习题
第8章 数据封装--结构体
8.1 记录的概念
8.2 C++语言中记录的使用
8.2.1 结构体类型的定义
8.2.2 结构体类型的变量的定义
8.2.3 结构体类型的变量的使用
8.2.4 结构体数组
8.3 结构体作为函数的参数
8.4 链表
8.4.1 链表的概念
8.4.2 单链表的存储
8.4.3 单链表的操作
8.5 编程规范及常见错误
小结
习题
第9章 模块化开发
9.1 自顶向下分解
9.1.1 顶层分解
9.1.2 prn_instruction 函数的实现
9.1.3 play 函数的实现
9.1.4 get_call_from_user 函数的实现
9.2 模块划分
9.3 设计自己的库
9.4 编程规范及常见错误
小结
习题
第10章 创建工具--类的定义与使用
10.1 从过程化到面向对象
10.1.1 抽象的过程
10.1.2 面向对象程序设计的特点
10.1.3 库和类
10.2 类的定义
10.3 对象的使用
10.3.1 对象的定义
10.3.2 对象的操作
10.3.3 this 指针
10.3.4 对象的构造与析构
10.4 常量对象与常量成员函数
10.5 常量数据成员
10.6 静态数据成员与静态成员函数
10.6.1 静态数据成员的定义
10.6.2 静态成员函数
10.6.3 静态常量成员
10.7 友元
10.8 编程规范及常见错误
小结
习题
第11章 运算符重载
11.1 什么是运算符重载
11.2 运算符重载的方法
11.3 几个特殊运算符的重载
11.3.1 赋值运算符的重载
11.3.2 下标运算符的重载
11.3.3 函数调用运算符重载
11.3.4 ++和--运算符的重载
11.3.5 输入/输出运算符的重载
11.3.6 重载函数的原型设计考虑
11.4 自定义类型转换函数
11.4.1 内置类型到类类型的转换
11.4.2 类类型到其他类型的转换
11.5 运算符重载的应用
11.5.1 完整的Rational 类的定义和使用
11.5.2 完整的DoubleArray类的定义和使用
11.6 编程规范与常见错误
小结
习题
第12章 组合与继承
12.1 组合
12.2 继承
12.2.1 单继承
12.2.2 基类成员在派生类中的访问特性
12.2.3 派生类对象的构造、析构与赋值操作
12.2.4 重定义基类的函数
12.2.5 派生类作为基类
12.2.6 将派生类对象隐式转换为基类对象
12.3 多态性与虚函数
12.3.1 多态性
12.3.2 虚函数
12.3.3 虚析构函数
12.4 纯虚函数和抽象类
12.4.1 纯虚函数
12.4.2 抽象类
12.5 多继承
12.5.1 多继承的格式
12.5.2 名字冲突
12.5.3 虚基类
12.6 面向对象设计范例
12.7 编程规范和常见错误
小结
习题
第13章 泛型机制--模板
13.1 类模板的定义
13.2 类模板的实例化
13.3 模板的编译
13.4 非类型参数和参数的默认值
13.5 类模板的友元
13.5.1 普通友元
13.5.2 模板的特定实例的友元
13.6 类模板作为基类
13.7 编程规范及常见错误
小结
习题
第14章 输入/输出与文件
14.1 流与标准库
14.2 输入/输出缓冲
14.3 基于控制台的输入/输出
14.3.1 输出流
14.3.2 输入流
14.3.3 格式化的输入/输出
14.4 基于文件的输入/输出
14.4.1 文件的概念
14.4.2 文件和流
14.4.3 文件的顺序访问
14.4.4 文件的随机处理
14.4.5 用流式文件处理含有记录的文件
14.5 基于字符串的输入/输出
14.6 编程规范及常见错误
小结
习题
第15章 异常处理
15.1 传统的异常处理方法
15.2 异常处理机制
15.2.1 异常抛出
15.2.2 异常捕获
15.3 异常规格说明
15.4 编程规范和常见错误
小结
习题
第16章 容器和迭代器
16.1 容器
16.2 迭代器
16.3 容器和迭代器的设计示例
16.3.1 用数组实现的容器
16.3.2 用链表实现的容器
小结
习题
附录 ASCII 表
参考文献
1.1 计算机硬件
1.2 计算机软件
1.3 程序设计
1.3.1 算法设计
1.3.2 编码
1.3.3 程序的编译和调试
小结
习题
第2章 通过例子学习
2.1 第一个程序:输出Hello world
2.1.1 注释
2.1.2 预编译
2.1.3 主程序
2.1.4 名字空间
2.2 第二个程序:计算圆的面积和周长
2.3 数据类型
2.3.1 整型
2.3.2 实型
2.3.3 字符型
2.3.4 布尔型
2.3.5 枚举类型
2.3.6 用typedef 重新命名类型名
2.3.7 变量赋初值
2.3.8 用sizeof 了解占用的内存量
2.4 符号常量
2.5 算术运算
2.5.1 主要的算术运算符
2.5.2 各种类型的数值间的混合运算
2.5.3 整数除法和取模运算符
2.5.4 优先级与结合性
2.5.5 数学函数库
2.6 赋值运算
2.6.1 赋值运算符
2.6.2 赋值时的自动类型转换
2.6.3 赋值的嵌套
2.6.4 多重赋值
2.6.5 复合赋值运算
2.7 自增和自减运算符
2.8 强制类型转换
2.9 数据的输入/输出
2.9.1 数据的输入
2.9.2 数据的输出
2.1 0 编程规范及常见错误
小结
习题
第3章 逻辑思维--分支程序设计
3.1 关系运算
3.1.1 关系运算符
3.1.2 关系表达式
3.2 逻辑运算
3.3 if 语句
3.3.1 if 语句的形式
3.3.2 if 语句的嵌套
3.3.3 if 语句的应用
3.3.4 条件表达式
3.4 switch 语句及其应用
3.5 编程规范及常见错误
小结
习题
第4章 重复控制--循环程序设计
4.1 for 循环
4.1.1 重复n 次操作
4.1.2 for 语句的进一步讨论
4.1.3 for 循环的嵌套
4.2 while 循环
4.3 do-while 循环
4.4 循环的中途退出
4.5 枚举法
4.6 贪婪法
4.7 编程规范和常见错误
小结
习题
第5章 批量数据处理--数组
5.1 一维数组
5.1.1 一维数组的定义
5.1.2 数组元素的引用
5.1.3 一维数组的初始化
5.1.4 一维数组在内存中的表示
5.1.5 一维数组的应用
5.2 查找和排序
5.2.1 查找
5.2.2 排序
5.3 二维数组
5.3.1 二维数组的定义
5.3.2 二维数组的初始化
5.3.3 二维数组在内存中的表示
5.3.4 二维数组的应用
5.4 字符串
5.4.1 字符串的存储及初始化
5.4.2 字符串的输入/输出
5.4.3 字符串处理函数
5.4.4 字符串的应用
5.5 编程规范及常见错误
小结
习题
第6章 过程封装--函数
6.1 函数的定义
6.1.1 return 语句
6.1.2 函数示例
6.2 函数的使用
6.2.1 函数原型的声明
6.2.2 函数的调用
6.2.3 将函数与主程序放在一起
6.2.4 函数调用过程
6.3 数组作为函数的参数
6.4 带默认值的函数
6.5 内联函数
6.6 重载函数
6.7 函数模板
6.8 变量的作用域
6.9 变量的存储类别
6.9.1 自动变量
6.9.2 静态变量
6.9.3 寄存器变量
6.9.4 外部变量
6.1 0 递归函数
6.1 0.1 递归函数的基本概念
6.1 0.2 递归函数的应用
6.1 1 基于递归的算法
6.1 1.1 回溯法
6.1 1.2 分治法
6.1 1.3 动态规划
6.1 2 编程规范及常见错误
小结
习题
第7章 间接访问--指针
7.1 指针的概念
7.1.1 指针变量的定义
7.1.2 指针的基本操作
7.2 指针运算与数组
7.2.1 指针运算
7.2.2 用指针访问数组
7.3 指针与动态内存分配
7.3.1 动态变量的创建
7.3.2 动态变量的回收
7.3.3 内存泄漏
7.3.4 查找new 操作的失误
7.4 字符串再讨论
7.5 指针与函数
7.5.1 指针作为形式参数
7.5.2 数组名作为形式参数的再讨论
7.5.3 字符串作为函数的参数
7.5.4 返回指针的函数
7.5.5 引用与引用传递
7.5.6 返回引用的函数
7.6 指针数组与多级指针
7.6.1 指针数组
7.6.2 main 函数的参数
7.6.3 多级指针
7.7 多维数组和指向数组的指针
7.8 指向函数的指针
7.8.1 作为函数的参数
7.8.2 用于菜单选择
7.9 编程规范与常见错误
小结
习题
第8章 数据封装--结构体
8.1 记录的概念
8.2 C++语言中记录的使用
8.2.1 结构体类型的定义
8.2.2 结构体类型的变量的定义
8.2.3 结构体类型的变量的使用
8.2.4 结构体数组
8.3 结构体作为函数的参数
8.4 链表
8.4.1 链表的概念
8.4.2 单链表的存储
8.4.3 单链表的操作
8.5 编程规范及常见错误
小结
习题
第9章 模块化开发
9.1 自顶向下分解
9.1.1 顶层分解
9.1.2 prn_instruction 函数的实现
9.1.3 play 函数的实现
9.1.4 get_call_from_user 函数的实现
9.2 模块划分
9.3 设计自己的库
9.4 编程规范及常见错误
小结
习题
第10章 创建工具--类的定义与使用
10.1 从过程化到面向对象
10.1.1 抽象的过程
10.1.2 面向对象程序设计的特点
10.1.3 库和类
10.2 类的定义
10.3 对象的使用
10.3.1 对象的定义
10.3.2 对象的操作
10.3.3 this 指针
10.3.4 对象的构造与析构
10.4 常量对象与常量成员函数
10.5 常量数据成员
10.6 静态数据成员与静态成员函数
10.6.1 静态数据成员的定义
10.6.2 静态成员函数
10.6.3 静态常量成员
10.7 友元
10.8 编程规范及常见错误
小结
习题
第11章 运算符重载
11.1 什么是运算符重载
11.2 运算符重载的方法
11.3 几个特殊运算符的重载
11.3.1 赋值运算符的重载
11.3.2 下标运算符的重载
11.3.3 函数调用运算符重载
11.3.4 ++和--运算符的重载
11.3.5 输入/输出运算符的重载
11.3.6 重载函数的原型设计考虑
11.4 自定义类型转换函数
11.4.1 内置类型到类类型的转换
11.4.2 类类型到其他类型的转换
11.5 运算符重载的应用
11.5.1 完整的Rational 类的定义和使用
11.5.2 完整的DoubleArray类的定义和使用
11.6 编程规范与常见错误
小结
习题
第12章 组合与继承
12.1 组合
12.2 继承
12.2.1 单继承
12.2.2 基类成员在派生类中的访问特性
12.2.3 派生类对象的构造、析构与赋值操作
12.2.4 重定义基类的函数
12.2.5 派生类作为基类
12.2.6 将派生类对象隐式转换为基类对象
12.3 多态性与虚函数
12.3.1 多态性
12.3.2 虚函数
12.3.3 虚析构函数
12.4 纯虚函数和抽象类
12.4.1 纯虚函数
12.4.2 抽象类
12.5 多继承
12.5.1 多继承的格式
12.5.2 名字冲突
12.5.3 虚基类
12.6 面向对象设计范例
12.7 编程规范和常见错误
小结
习题
第13章 泛型机制--模板
13.1 类模板的定义
13.2 类模板的实例化
13.3 模板的编译
13.4 非类型参数和参数的默认值
13.5 类模板的友元
13.5.1 普通友元
13.5.2 模板的特定实例的友元
13.6 类模板作为基类
13.7 编程规范及常见错误
小结
习题
第14章 输入/输出与文件
14.1 流与标准库
14.2 输入/输出缓冲
14.3 基于控制台的输入/输出
14.3.1 输出流
14.3.2 输入流
14.3.3 格式化的输入/输出
14.4 基于文件的输入/输出
14.4.1 文件的概念
14.4.2 文件和流
14.4.3 文件的顺序访问
14.4.4 文件的随机处理
14.4.5 用流式文件处理含有记录的文件
14.5 基于字符串的输入/输出
14.6 编程规范及常见错误
小结
习题
第15章 异常处理
15.1 传统的异常处理方法
15.2 异常处理机制
15.2.1 异常抛出
15.2.2 异常捕获
15.3 异常规格说明
15.4 编程规范和常见错误
小结
习题
第16章 容器和迭代器
16.1 容器
16.2 迭代器
16.3 容器和迭代器的设计示例
16.3.1 用数组实现的容器
16.3.2 用链表实现的容器
小结
习题
附录 ASCII 表
参考文献