新書推薦:
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:NT$
454.0
《
无端欢喜
》
售價:NT$
347.0
《
股票大作手操盘术
》
售價:NT$
245.0
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:NT$
398.0
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:NT$
203.0
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:NT$
611.0
《
养育女孩 : 官方升级版
》
售價:NT$
230.0
《
跨界:蒂利希思想研究
》
售價:NT$
500.0
|
內容簡介: |
C++是一种实用的程序设计语言,是高校学生学习程序设计的一门必修专业课程,同时也是编程人员最广泛使用的工具。学好C++,可以很容易地触类旁通其他语言,如Java和C#等。
本书针对初学者和自学者的特点,在总结过去教学和实践经验的基础上编写而成。写作风格别具一格,语言流畅、风趣,恰如其分的举例易于读者理解和掌握C++程序设计,同时,在写作中还特别注重培养学生的独立思考能力。教材结合实例讲解了C++的基本概念和方法,力求将复杂的概念用简洁、通俗、有趣的语言来描述,做到了深入浅出、循序渐进,从而使学生体会学习的快乐,以及在快乐中学习。
全书共12章,主要包括C++基本数据类型、流程控制、函数、数组、指针、结构体、文件操作、类的基础部分、类的高级部分、继承、多态、虚函数、异常处理、通过ODBC对数据库编程、课程设计等。书中列举了数百个可供直接使用的程序示例代码,并给出了运行结果,使学生在学习时更为直观。
本书配有适当的习题,并提供了该书的电子教案,超星学术视频网站还提供了作者的授课录像,特别适合用作大学计算机专业和非计算机专业的程序设计课程教材,也非常适合那些具有C编程经验又想转向C++编程的读者阅读。
|
目錄:
|
前言
教学建议
第1章 C++程序设计基础
1.1 为什么要学前言
教学建议
第1章 C++程序设计基础
1.1 为什么要学习C++程序设计
1.2 简单的C++程序举例
1.3 注释方法
1.4 编程风格
1.5 C++程序的词法单位
1.5.1 C++程序中的字符
1.5.2 标识符
1.5.3 关键字
1.6 C++的基本数据类型
1.7 变量与常量
1.7.1 变量
1.7.2 文字常量
1.7.3 符号常量
1.7.4 常变量
1.8 运算符和表达式
1.8.1 算术运算符和算术表达式
1.8.2 初识运算符的优先级和结合性
1.8.3 赋值运算符和赋值表达式
1.8.4 自增、自减运算
1.8.5 关系运算符和关系表达式
1.8.6 逻辑运算符和逻辑表达式
1.8.7 位运算符及其表达式
1.8.8 逗号运算符与逗号表达式
1.8.9 sizeof运算符
1.8.10 C++的运算符优先级和结合性
1.9 语句
1.10 类型转换
1.10.1 赋值时的类型转换
1.10.2 混合运算时的类型转换
1.10.3 强制类型转换
1.11 简单的输出和输入方法
1.11.1 cout对象和cin对象
1.11.2 格式化输出
1.11.3 采用函数成员实现格式化输出
1.11.4 对函数成员的初步讨论
1.11.5 指定输入域宽
1.11.6 读取一行
1.11.7 读取一个字符
1.11.8 读取字符时易出错的地方
1.12 枚举类型
1.12.1 枚举类型的定义
1.12.2 枚举类型的变量
1.12.3 枚举类型的应用
思考与练习
第2章 C++的流程控制
2.1 算法的基本概念和表示方法
2.1.1 算法的基本概念
2.1.2 算法的表示
2.1.3 算法的三种基本结构
2.2 选择结构程序设计
2.2.1 基本的if语句
2.2.2 嵌套的if语句
2.2.3 条件运算符
2.2.4 switch语句
2.3 循环结构程序设计
2.3.1 while循环
2.3.2 do-while循环
2.3.3 for循环
2.3.4 循环嵌套
2.3.5 break语句
2.3.6 continue语句
2.3.7 应该少用的goto语句
2.4 程序设计应用举例
思考与练习
第3章 函数
3.1 函数的定义和调用
3.1.1 概述
3.1.2 定义函数
3.1.3 调用函数
3.2 函数的声明
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.5.1 auto修饰的变量
3.5.2 register修饰的变量
3.5.3 static修饰的变量
3.5.4 extern修饰的变量
3.6 默认参数
3.7 引用做参数
3.8 函数重载
3.9 函数模板
3.9.1 从函数重载到函数模板
3.9.2 定义函数模板的方法
3.9.3 函数模板重载
3.10 内联函数
3.11 函数的递归调用
3.12 函数的调试方法
3.13 编译预处理
3.13.1 宏定义
3.13.2 文件包含
3.13.3 条件编译
思考与练习
第4章 数组
4.1 一维数组
4.1.1 一维数组的定义和应用
4.1.2 引用一维数组元素
4.1.3 数组无越界检查
4.1.4 数组初始化
4.2 多维数组
4.2.1 二维数组的定义
4.2.2 二维数组的初始化
4.2.3 引用二维数组元素
4.3 数组做函数参数
4.3.1 数组元素做函数参数
4.3.2 数组名做函数参数
4.4 常用算法举例
4.5 字符数组与字符串
4.5.1 字符数组的定义
4.5.2 字符数组的初始化
4.5.3 字符串
4.5.4 字符数组的输入和输出
4.6 处理字符和字符串
4.6.1 处理字符的宏
4.6.2 处理C风格字符串的函数
4.6.3 自定义字符串处理函数
4.7 标准C++的string类
4.7.1 如何使用string类型
4.7.2 string对象的比较
4.7.3 string对象的初始化
4.7.4 string的函数成员
4.7.5 string对象应用举例
思考与练习
第5章 指针
5.1 指针的概念
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.4.3 指针变量做函数形参
5.4.4 返回指针的函数
5.4.5 指向函数的指针
5.5 指针数组与指向指针的指针
5.5.1 指针数组
5.5.2 main函数的参数
5.5.3 指向指针的指针
5.5.4 再次讨论main函数的参数
5.6 内存的动态分配和释放
5.7 void和const修饰指针变量
5.7.1 void修饰指针
5.7.2 const修饰指针
5.8 对容易混淆概念的总结
思考与练习
第6章 结构体与链表
6.1 抽象数据类型
6.2 结构体的定义及应用
6.2.1 定义结构体类型
6.2.2 定义结构体类型的变量
6.2.3 初始化结构体类型的变量
6.2.4 结构体类型变量及其成员的引用
6.2.5 结构体数组与指针
6.3 用typedef定义类型
6.4 单向链表
6.4.1 链表的概念
6.4.2 带头结点的单向链表常用算法
思考与练习
第7章 文件操作
7.1 文件的基本概念
7.1.1 文件命名的原则
7.1.2 使用文件的基本过程
7.1.3 文件流类型
7.2 打开文件和关闭文件
7.2.1 打开文件
7.2.2 文件的打开模式
7.2.3 定义流对象时打开文件
7.2.4 测试文件打开是否成功
7.2.5 关闭文件
7.3 采用流操作符读写文件
7.3.1 采用“”操作符写文件
7.3.2 格式化输出在写文件中的应用
7.3.3 采用“”操作符从文件读数据
7.3.4 检测文件结束
7.4 流对象做参数
7.5 出错检测
7.6 采用函数成员读写文件
7.6.1 采用“”操作符读文件的缺陷
7.6.2 采用函数getline读文件
7.6.3 采用函数get读文件
7.6.4 采用函数put写文件
7.7 多文件操作
7.8 二进制文件
7.8.1 二进制文件的操作
7.8.2 读写结构体记录
7.9 随机访问文件
7.9.1 顺序访问文件的缺陷
7.9.2 定位函数seekp和seekg
7.9.3 返回位置函数tellp和tellg
7.10 输入输出二进制文件综合举例
思考与练习
第8章 类的基础部分
8.1 面向过程程序设计与面向对象程序设计的区别
8.1.1 面向过程程序设计的缺陷
8.1.2 面向对象程序设计的基本思想
8.2 类的基本概念
8.3 定义函数成员
8.4 定义对象
8.4.1 访问对象的成员
8.4.2 指向对象的指针
8.4.3 引入私有成员的原因
8.5 类的多文件组织
8.6 私有函数成员的作用
8.7 内联函数
8.8 构造函数和析构函数
8.8.1 构造函数
8.8.2 析构函数
8.8.3 带参构造函数
8.8.4 构造函数应用举例——输入有效的对象
8.8.5 重载构造函数
8.8.6 默认构造函数的表现形式
8.9 对象数组
8.10 类的应用举例
8.11 抽象数组类型
8.11.1 创建抽象数组类型
8.11.2 扩充抽象数组类型
思考与练习
第9章 类的高级部分
9.1 静态成员
9.1.1 静态数据成员
9.1.2 静态函数成员
9.2 友元函数
9.2.1 外部函数作为类的友元
9.2.2 类的成员函数作为另外一个类的友元
9.2.3 一个类作为另外一个类的友元
9.3 对象赋值问题
9.4 拷贝构造函数
9.4.1 默认的拷贝构造函数
9.4.2 调用拷贝构造函数的情况
9.5 运算符重载
9.5.1 重载赋值运算符
9.5.2 this指针
9.5.3 重载双目算术运算符
9.5.4 重载单目算术运算符
9.5.5 重载关系运算符
9.5.6 重载流操作符“”和“”
9.5.7 重载类型转换运算符
9.5.8 重载操作符“[ ]”
9.5.9 重载运算符时要注意的问题
9.5.10 运算符重载综合举例——自定义string类
9.6 对象组合
思考与练习
第10章 继承、多态和虚函数
10.1 继承
10.2 保护成员和类的访问
10.3 构造函数和析构函数
10.3.1 默认构造函数和析构函数的调用
10.3.2 向基类的构造函数传参数
10.3.3 初始化列表的作用
10.4 覆盖基类的函数成员
10.5 虚函数
10.6 纯虚函数和抽象类
10.6.1 纯虚函数
10.6.2 抽象类
10.6.3 指向基类的指针
10.7 多重继承
10.8 多继承
10.9 类模板
10.9.1 定义类模板的方法
10.9.2 定义类模板的对象
10.9.3 类模板与继承
思考与练习
第11章 异常处理
11.1 异常
11.1.1 抛出异常
11.1.2 处理异常
11.2 基于对象的异常处理
11.3 捕捉多种类型的异常
11.4 通过异常对象获取异常信息
11.5 再次抛出异常
思考与练习
第12章 数据库程序设计
12.1 数据库简介
12.2 SQL语句
12.2.1 定义表
12.2.2 查询
12.2.3 插入
12.2.4 删除
12.2.5 修改
12.3 数据库连接
12.3.1 ODBC简介
12.3.2 ODBC驱动程序
12.3.3 创建数据源
12.4 数据库编程中的基本操作
12.4.1 数据库编程的基本过程
12.4.2 数据库查询
12.4.3 插入记录
12.4.4 修改记录
12.4.5 删除记录
12.5 数据库编程综合举例
思考与练习
课程设计
参考文献
习C++程序设计
1.2 简单的C++程序举例
1.3 注释方法
1.4 编程风格
1.5 C++程序的词法单位
1.5.1 C++程序中的字符
1.5.2 标识符
1.5.3 关键字
1.6 C++的基本数据类型
1.7 变量与常量
1.7.1 变量
1.7.2 文字常量
1.7.3 符号常量
1.7.4 常变量
1.8 运算符和表达式
1.8.1 算术运算符和算术表达式
1.8.2 初识运算符的优先级和结合性
1.8.3 赋值运算符和赋值表达式
1.8.4 自增、自减运算
1.8.5 关系运算符和关系表达式
1.8.6 逻辑运算符和逻辑表达式
1.8.7 位运算符及其表达式
1.8.8 逗号运算符与逗号表达式
1.8.9 sizeof运算符
1.8.10 C++的运算符优先级和结合性
1.9 语句
1.10 类型转换
1.10.1 赋值时的类型转换
1.10.2 混合运算时的类型转换
1.10.3 强制类型转换
1.11 简单的输出和输入方法
1.11.1 cout对象和cin对象
1.11.2 格式化输出
1.11.3 采用函数成员实现格式化输出
1.11.4 对函数成员的初步讨论
1.11.5 指定输入域宽
1.11.6 读取一行
1.11.7 读取一个字符
1.11.8 读取字符时易出错的地方
1.12 枚举类型
1.12.1 枚举类型的定义
1.12.2 枚举类型的变量
1.12.3 枚举类型的应用
思考与练习
第2章 C++的流程控制
2.1 算法的基本概念和表示方法
2.1.1 算法的基本概念
2.1.2 算法的表示
2.1.3 算法的三种基本结构
2.2 选择结构程序设计
2.2.1 基本的if语句
2.2.2 嵌套的if语句
2.2.3 条件运算符
2.2.4 switch语句
2.3 循环结构程序设计
2.3.1 while循环
2.3.2 do-while循环
2.3.3 for循环
2.3.4 循环嵌套
2.3.5 break语句
2.3.6 continue语句
2.3.7 应该少用的goto语句
2.4 程序设计应用举例
思考与练习
第3章 函数
3.1 函数的定义和调用
3.1.1 概述
3.1.2 定义函数
3.1.3 调用函数
3.2 函数的声明
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.5.1 auto修饰的变量
3.5.2 register修饰的变量
3.5.3 static修饰的变量
3.5.4 extern修饰的变量
3.6 默认参数
3.7 引用做参数
3.8 函数重载
3.9 函数模板
3.9.1 从函数重载到函数模板
3.9.2 定义函数模板的方法
3.9.3 函数模板重载
3.10 内联函数
3.11 函数的递归调用
3.12 函数的调试方法
3.13 编译预处理
3.13.1 宏定义
3.13.2 文件包含
3.13.3 条件编译
思考与练习
第4章 数组
4.1 一维数组
4.1.1 一维数组的定义和应用
4.1.2 引用一维数组元素
4.1.3 数组无越界检查
4.1.4 数组初始化
4.2 多维数组
4.2.1 二维数组的定义
4.2.2 二维数组的初始化
4.2.3 引用二维数组元素
4.3 数组做函数参数
4.3.1 数组元素做函数参数
4.3.2 数组名做函数参数
4.4 常用算法举例
4.5 字符数组与字符串
4.5.1 字符数组的定义
4.5.2 字符数组的初始化
4.5.3 字符串
4.5.4 字符数组的输入和输出
4.6 处理字符和字符串
4.6.1 处理字符的宏
4.6.2 处理C风格字符串的函数
4.6.3 自定义字符串处理函数
4.7 标准C++的string类
4.7.1 如何使用string类型
4.7.2 string对象的比较
4.7.3 string对象的初始化
4.7.4 string的函数成员
4.7.5 string对象应用举例
思考与练习
第5章 指针
5.1 指针的概念
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.4.3 指针变量做函数形参
5.4.4 返回指针的函数
5.4.5 指向函数的指针
5.5 指针数组与指向指针的指针
5.5.1 指针数组
5.5.2 main函数的参数
5.5.3 指向指针的指针
5.5.4 再次讨论main函数的参数
5.6 内存的动态分配和释放
5.7 void和const修饰指针变量
5.7.1 void修饰指针
5.7.2 const修饰指针
5.8 对容易混淆概念的总结
思考与练习
第6章 结构体与链表
6.1 抽象数据类型
6.2 结构体的定义及应用
6.2.1 定义结构体类型
6.2.2 定义结构体类型的变量
6.2.3 初始化结构体类型的变量
6.2.4 结构体类型变量及其成员的引用
6.2.5 结构体数组与指针
6.3 用typedef定义类型
6.4 单向链表
6.4.1 链表的概念
6.4.2 带头结点的单向链表常用算法
思考与练习
第7章 文件操作
7.1 文件的基本概念
7.1.1 文件命名的原则
7.1.2 使用文件的基本过程
7.1.3 文件流类型
7.2 打开文件和关闭文件
7.2.1 打开文件
7.2.2 文件的打开模式
7.2.3 定义流对象时打开文件
7.2.4 测试文件打开是否成功
7.2.5 关闭文件
7.3 采用流操作符读写文件
7.3.1 采用“”操作符写文件
7.3.2 格式化输出在写文件中的应用
7.3.3 采用“”操作符从文件读数据
7.3.4 检测文件结束
7.4 流对象做参数
7.5 出错检测
7.6 采用函数成员读写文件
7.6.1 采用“”操作符读文件的缺陷
7.6.2 采用函数getline读文件
7.6.3 采用函数get读文件
7.6.4 采用函数put写文件
7.7 多文件操作
7.8 二进制文件
7.8.1 二进制文件的操作
7.8.2 读写结构体记录
7.9 随机访问文件
7.9.1 顺序访问文件的缺陷
7.9.2 定位函数seekp和seekg
7.9.3 返回位置函数tellp和tellg
7.10 输入输出二进制文件综合举例
思考与练习
第8章 类的基础部分
8.1 面向过程程序设计与面向对象程序设计的区别
8.1.1 面向过程程序设计的缺陷
8.1.2 面向对象程序设计的基本思想
8.2 类的基本概念
8.3 定义函数成员
8.4 定义对象
8.4.1 访问对象的成员
8.4.2 指向对象的指针
8.4.3 引入私有成员的原因
8.5 类的多文件组织
8.6 私有函数成员的作用
8.7 内联函数
8.8 构造函数和析构函数
8.8.1 构造函数
8.8.2 析构函数
8.8.3 带参构造函数
8.8.4 构造函数应用举例——输入有效的对象
8.8.5 重载构造函数
8.8.6 默认构造函数的表现形式
8.9 对象数组
8.10 类的应用举例
8.11 抽象数组类型
8.11.1 创建抽象数组类型
8.11.2 扩充抽象数组类型
思考与练习
第9章 类的高级部分
9.1 静态成员
9.1.1 静态数据成员
9.1.2 静态函数成员
9.2 友元函数
9.2.1 外部函数作为类的友元
9.2.2 类的成员函数作为另外一个类的友元
9.2.3 一个类作为另外一个类的友元
9.3 对象赋值问题
9.4 拷贝构造函数
9.4.1 默认的拷贝构造函数
9.4.2 调用拷贝构造函数的情况
9.5 运算符重载
9.5.1 重载赋值运算符
9.5.2 this指针
9.5.3 重载双目算术运算符
9.5.4 重载单目算术运算符
9.5.5 重载关系运算符
9.5.6 重载流操作符“”和“”
9.5.7 重载类型转换运算符
9.5.8 重载操作符“[ ]”
9.5.9 重载运算符时要注意的问题
9.5.10 运算符重载综合举例——自定义string类
9.6 对象组合
思考与练习
第10章 继承、多态和虚函数
10.1 继承
10.2 保护成员和类的访问
10.3 构造函数和析构函数
10.3.1 默认构造函数和析构函数的调用
10.3.2 向基类的构造函数传参数
10.3.3 初始化列表的作用
10.4 覆盖基类的函数成员
10.5 虚函数
10.6 纯虚函数和抽象类
10.6.1 纯虚函数
10.6.2 抽象类
10.6.3 指向基类的指针
10.7 多重继承
10.8 多继承
10.9 类模板
10.9.1 定义类模板的方法
10.9.2 定义类模板的对象
10.9.3 类模板与继承
思考与练习
第11章 异常处理
11.1 异常
11.1.1 抛出异常
11.1.2 处理异常
11.2 基于对象的异常处理
11.3 捕捉多种类型的异常
11.4 通过异常对象获取异常信息
11.5 再次抛出异常
思考与练习
第12章 数据库程序设计
12.1 数据库简介
12.2 SQL语句
12.2.1 定义表
12.2.2 查询
12.2.3 插入
12.2.4 删除
12.2.5 修改
12.3 数据库连接
12.3.1 ODBC简介
12.3.2 ODBC驱动程序
12.3.3 创建数据源
12.4 数据库编程中的基本操作
12.4.1 数据库编程的基本过程
12.4.2 数据库查询
12.4.3 插入记录
12.4.4 修改记录
12.4.5 删除记录
12.5 数据库编程综合举例
思考与练习
课程设计
参考文献
|
|