简介
本书在内容组织上,除条理清晰、逻辑严谨外,还尽量做到重点突出、难点分散、循序渐进,使学生易于理解。在文字叙述上,不仅概念准确、语言流畅,更重要的是能够深入浅出地叙述复杂概念,说明难点问题。有了这样一个好帮手,你一定可以很快地学会如何用C++语言来设计程序!
本书通过介绍和剖析大量程序示例,系统地阐述c++语言的各种类型的数据结构与语句特性,以及用c++语言进行程序设计的基本方法、技巧及应用,努力使读者既能熟悉一种优良的语言工具,又能掌握如何发挥这一工具效能的方法与技巧,增强灵活运用语言的能力,为读者今后进一步的程序设计实践打下坚实的基础。
全书共12章,内容翔实、信息量大、结构严谨、编排合理、文字流畅、示例众多、实用性强。书中的程序均已在Microsoft Visual C++6.0系统下编译运行。
本书配有用PowerPoint制作的电子教案,教师可以根据情况任意修改,如有需要,可从中国水利水电出版社网站(http://www.waterpub.com.cn/softdown/)下载。
目录
目录
总序
前言
第1章 C++语言基础
1.1 C++程序的基本结构
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.4 运算符与表达式
1.4.1 算术运算符与算术表达式
1.4.2 关系运算符与关系表达式
1.4.3 逻辑运算符与逻辑表达式
1.4.4 其他运算符
1.4.5 类型转换
1.5 赋值语句及简单输入、输出
1.5.1 赋值语句
1.5.2 赋值表达式
1.5.3 输入、输出标准库函数cin、tout
1.6 编译预处理
1.6.1 预处理命令
1.6.2 宏替换
1.6.3 文件包含
1.6.4 条件编译
1.7 程序设计风格
思考题与习题
第2章 程序控制结构
2.1 if语句
2.1.1 简单if语句
2.1.2 复合语句
2.1.3 扩展if语句与嵌套if语句
2.2 switch语句
2.3 while语句
2.4 do-while语句
2.5 for语句
2.6 多重循环结构
2.7 break语句、continue语句和goto语句
2.7.1 break语句
2.7.2 continue语句
2.7.3 goto语句
思考题与习题
第3章 数组
3.1 一维数组
3.1.1 一维数组说明
3.1.2 一维数组的初始化
3.2 多维数组
3.2.1 二维数组说明
3.2.2 二维数组的初始化
3.3 数组应用示例
3.4 string(字符串)类型处理
思考题与习题
第4章 函数
4.1 函数定义
4.2 函数调用与函数声明
4.2.1 函数调用的一般形式
4.2.2 函数调用的两种方式
4.2.3 函数声明及函数原型
4.3 通过函数参数传递数据
4.4 函数的递归调用
4.5 数组作为函数参数传递
4.6 引用参数
4.7 缺省参数
4.8 变量的作用域和存储类别
4.8.1 变量的作用域
4.8.2 局部变量和全局变量
4.8.3 变量的生存期
4.8.4 变量的存储类别
4.8.5 变量的存储类别说明符
4.9 函数的存储类别
4.9.1 用extern说明函数
4.9.2 用static说明函数
4.10 内联函数
4.11 函数重载
4.12 函数模板
思考题与习题
第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.3.4 数组指针作为函数参数
5.4 指向字符串的指针变量
5.4.1 字符数组与字符串的区别
5.4.2 指向字符串的指针变量——字符指针
5.4.3 字符指针作为函数参数
5.5 指向函数的指针变量
5.6 返回指针值的函数
5.7 指针数组
5.8 指向指针的指针变量
5.9 主函数main中的指针参数
思考题与习题
第6章 结构体与线性链表
6.1 用typedef定义类型
6.2 结构体变量说明与赋值操作
6.2.1 结构体类型定义
6.2.2 结构体变量说明
6.2.3 结构体变量的初始化
6.2.4 结构体变量的赋值操作
6.2.5 结构体类型的嵌套
6.3 结构体数组和结构体指针
6.3.1 结构体数组
6.3.2 结构体指针
6.3.3 结构体指针作为函数参数
6.4 动态存储分配及释放
6.4.1 动态数据结构
6.4.2 动态存储分配和释放函数
6.4.3 动态存储分配和释放运算符new和delete
6.4.4 动态存储分配函数calloc
6.5 线性链表概念
6.6 线性链表的生成与遍历
6.6.1 线性链表的生成——插表头
6.6.2 线性链表的生成——插表尾
6.7 在己知线性链表中的插入与删除操作
6.7.1 插入一个新表元素至已知线性链表中某表元素之后
6.7.2 插入一个新表元素至已知线性链表中某表元素之前
6.7.3 在已知线性链表中删除一个表元素
6.7.4 考虑通用性——对更新操作函数定义语句编码的改善
思考题与习题
第7章 共用体和枚举类型
7.1 共用体
7.1.1 什么是共用体
7.1.2 共用体类型定义和变量说明
7.1.3 共用体变量的初始化
7.1.4 共用体变量的赋值操作
7.2 枚举类型
7.2.1 枚举类型定义和枚举变量说明
7.2.2 枚举变量的初始化
7.2.3 枚举变量的运算
思考题与习题
第8章 流文件
8.1 文件的基本概念
8.2 流文件的打开和关闭
8.3 文本文件的读写
8.4 二进制文件的读写
8.5 流文件的定位与随机读写
思考题与习题
第9章 对象与类
9.1 面向对象的基本概念
9.2 类定义与对象说明
9.3 类的成员函数
9.4 类的构造函数和析构函数
9.4.1 类的构造函数
9.4.2 类的析构函数
9.5 类的作用域、类的嵌套定义和静态类成员
9.5.1 类的作用域
9.5.2 类的嵌套定义
9.5.3 静态类成员
9.6 类的成员函数的重载
9.7 类的友元函数的调用
9.8 类模板与模板类
思考题与习题
第10章 继承与派生类
10.1 C++派生类
10.2 改变成员访问控制属性
10.3 派生类与基类中同名成员的处理——同名覆盖
10.4 间接继承
10.5 继承机制下类的构造函数和析构函数
10.6 类树与多继承
10.6.1 类树
10.6.2 多重继承
思考题与习题
第11章 多态性概述
11.1 虚函数
11.1.1 静态联编和动态联编
11.1.2 虚函数的引入
11.1.3 virtual成员函数——虚函数
11.1.4 纯虚函数与抽象基类
11.2 运算符重载
11.2.1 用成员函数重载运算符
11.2.2 用类的友元函数进行运算符重载
思考题与习题
第12章 编程技巧示例
12.1 显示图案
12.2 逻辑判断
12.3 数据模拟
12.4 整数问题
12.5 数据处理
12.6 一般数值计算
12.7 关于求素数
12.8 分类算法概述
12.8.1 直接分类算法
12.8.2 改进的分类算法
12.8.3 分类算法程序示例
12.8.4 内部分类算法的比较和选择
12.9 递归与分治
12.10 递归算法典型示例——梵塔游戏程序
12.11 探索策略和回溯算法
12.12 一个简单的指针应用问题
12.13 直接表和有序表的检索与插入
12.14 树结构和二叉树结构
12.15 二叉树的生成与遍历
12.16 二叉搜索树的检索与插入
12.17 指针在二叉树结构中的应用示例
12.18 C++面向对象程序设计基本应用示例
思考题与习题
附录1 C++关键字表
附录2 C++运算符的优先级和结合性
附录3 C++常用字符与ASCⅡ代码对照表
附录4 Microsoft Visual C++6.0上机指导
附录5 常用库函数使用简表
参考文献
总序
前言
第1章 C++语言基础
1.1 C++程序的基本结构
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.4 运算符与表达式
1.4.1 算术运算符与算术表达式
1.4.2 关系运算符与关系表达式
1.4.3 逻辑运算符与逻辑表达式
1.4.4 其他运算符
1.4.5 类型转换
1.5 赋值语句及简单输入、输出
1.5.1 赋值语句
1.5.2 赋值表达式
1.5.3 输入、输出标准库函数cin、tout
1.6 编译预处理
1.6.1 预处理命令
1.6.2 宏替换
1.6.3 文件包含
1.6.4 条件编译
1.7 程序设计风格
思考题与习题
第2章 程序控制结构
2.1 if语句
2.1.1 简单if语句
2.1.2 复合语句
2.1.3 扩展if语句与嵌套if语句
2.2 switch语句
2.3 while语句
2.4 do-while语句
2.5 for语句
2.6 多重循环结构
2.7 break语句、continue语句和goto语句
2.7.1 break语句
2.7.2 continue语句
2.7.3 goto语句
思考题与习题
第3章 数组
3.1 一维数组
3.1.1 一维数组说明
3.1.2 一维数组的初始化
3.2 多维数组
3.2.1 二维数组说明
3.2.2 二维数组的初始化
3.3 数组应用示例
3.4 string(字符串)类型处理
思考题与习题
第4章 函数
4.1 函数定义
4.2 函数调用与函数声明
4.2.1 函数调用的一般形式
4.2.2 函数调用的两种方式
4.2.3 函数声明及函数原型
4.3 通过函数参数传递数据
4.4 函数的递归调用
4.5 数组作为函数参数传递
4.6 引用参数
4.7 缺省参数
4.8 变量的作用域和存储类别
4.8.1 变量的作用域
4.8.2 局部变量和全局变量
4.8.3 变量的生存期
4.8.4 变量的存储类别
4.8.5 变量的存储类别说明符
4.9 函数的存储类别
4.9.1 用extern说明函数
4.9.2 用static说明函数
4.10 内联函数
4.11 函数重载
4.12 函数模板
思考题与习题
第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.3.4 数组指针作为函数参数
5.4 指向字符串的指针变量
5.4.1 字符数组与字符串的区别
5.4.2 指向字符串的指针变量——字符指针
5.4.3 字符指针作为函数参数
5.5 指向函数的指针变量
5.6 返回指针值的函数
5.7 指针数组
5.8 指向指针的指针变量
5.9 主函数main中的指针参数
思考题与习题
第6章 结构体与线性链表
6.1 用typedef定义类型
6.2 结构体变量说明与赋值操作
6.2.1 结构体类型定义
6.2.2 结构体变量说明
6.2.3 结构体变量的初始化
6.2.4 结构体变量的赋值操作
6.2.5 结构体类型的嵌套
6.3 结构体数组和结构体指针
6.3.1 结构体数组
6.3.2 结构体指针
6.3.3 结构体指针作为函数参数
6.4 动态存储分配及释放
6.4.1 动态数据结构
6.4.2 动态存储分配和释放函数
6.4.3 动态存储分配和释放运算符new和delete
6.4.4 动态存储分配函数calloc
6.5 线性链表概念
6.6 线性链表的生成与遍历
6.6.1 线性链表的生成——插表头
6.6.2 线性链表的生成——插表尾
6.7 在己知线性链表中的插入与删除操作
6.7.1 插入一个新表元素至已知线性链表中某表元素之后
6.7.2 插入一个新表元素至已知线性链表中某表元素之前
6.7.3 在已知线性链表中删除一个表元素
6.7.4 考虑通用性——对更新操作函数定义语句编码的改善
思考题与习题
第7章 共用体和枚举类型
7.1 共用体
7.1.1 什么是共用体
7.1.2 共用体类型定义和变量说明
7.1.3 共用体变量的初始化
7.1.4 共用体变量的赋值操作
7.2 枚举类型
7.2.1 枚举类型定义和枚举变量说明
7.2.2 枚举变量的初始化
7.2.3 枚举变量的运算
思考题与习题
第8章 流文件
8.1 文件的基本概念
8.2 流文件的打开和关闭
8.3 文本文件的读写
8.4 二进制文件的读写
8.5 流文件的定位与随机读写
思考题与习题
第9章 对象与类
9.1 面向对象的基本概念
9.2 类定义与对象说明
9.3 类的成员函数
9.4 类的构造函数和析构函数
9.4.1 类的构造函数
9.4.2 类的析构函数
9.5 类的作用域、类的嵌套定义和静态类成员
9.5.1 类的作用域
9.5.2 类的嵌套定义
9.5.3 静态类成员
9.6 类的成员函数的重载
9.7 类的友元函数的调用
9.8 类模板与模板类
思考题与习题
第10章 继承与派生类
10.1 C++派生类
10.2 改变成员访问控制属性
10.3 派生类与基类中同名成员的处理——同名覆盖
10.4 间接继承
10.5 继承机制下类的构造函数和析构函数
10.6 类树与多继承
10.6.1 类树
10.6.2 多重继承
思考题与习题
第11章 多态性概述
11.1 虚函数
11.1.1 静态联编和动态联编
11.1.2 虚函数的引入
11.1.3 virtual成员函数——虚函数
11.1.4 纯虚函数与抽象基类
11.2 运算符重载
11.2.1 用成员函数重载运算符
11.2.2 用类的友元函数进行运算符重载
思考题与习题
第12章 编程技巧示例
12.1 显示图案
12.2 逻辑判断
12.3 数据模拟
12.4 整数问题
12.5 数据处理
12.6 一般数值计算
12.7 关于求素数
12.8 分类算法概述
12.8.1 直接分类算法
12.8.2 改进的分类算法
12.8.3 分类算法程序示例
12.8.4 内部分类算法的比较和选择
12.9 递归与分治
12.10 递归算法典型示例——梵塔游戏程序
12.11 探索策略和回溯算法
12.12 一个简单的指针应用问题
12.13 直接表和有序表的检索与插入
12.14 树结构和二叉树结构
12.15 二叉树的生成与遍历
12.16 二叉搜索树的检索与插入
12.17 指针在二叉树结构中的应用示例
12.18 C++面向对象程序设计基本应用示例
思考题与习题
附录1 C++关键字表
附录2 C++运算符的优先级和结合性
附录3 C++常用字符与ASCⅡ代码对照表
附录4 Microsoft Visual C++6.0上机指导
附录5 常用库函数使用简表
参考文献
C++程序设计基础
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×