
C 高级程式设计(第二版)
C++程式设计语言同时支持面向过程和面向对象编程,全书以C++标準为蓝本,以实际案例为支撑来阐释学生学习过程中晦涩难懂的概念,并将多年来教学过程中学生遇到的难以掌握的知识点以重点突出或错误解释的方式列出。
基本介绍
- 书名:C 高级程式设计(第二版)
- 作者:田秀霞、孙超超、张安勤、王真、彭源
- 出版社:清华大学出版社
- 出版时间:2016.07.01
图书简介
C++程式设计语言同时支持面向过程和面向对象编程,全书以C++标準为蓝本,以实际案例为支撑来阐释学生学习过程中晦涩难懂的概念,并将多年来教学过程中学生遇到的难以掌握的知识点以重点突出或错误解释的方式列出。整本书的语言通俗易懂,每个章节的开始都以一个短小有趣的引发好奇心的说明引导学生进入本章节内容的学习。整个内容按照循序渐进的方式展开,引领学生从C++的面向过程编程逐步过渡到C++的面向对象编程,实现学习点上的由易到难的顺利过渡。本书内容包括绪论、数据类型与基本输入输出、控制语句、函式与预处理、数组、指针与引用、自定义数据类型、类、静态成员与友元、继承与派生、多态性、输入输出流、模板、鍊表、异常处理和项目开发指南。
在书中每一章的最后,都有一个较为大型和完整的编程实例,涉及网路、密码学、计算机病毒、数据结构、算法设计、图形学等各门课程的一些入门知识,在巩固所学知识的同时,也让学生对这些课程有了初步的感性认识,以便后继课程的学习。
本书适用于高校计算机专业程式设计课程教学,也适用于自学成才的读者,在本书的指导下,读者可以逐步由不入门到初级程式设计师到高级程式设计师,并从中体会到学习编程的无限乐趣,为成为一名真正的程式设计师打下坚实的基础。
图书目录
第1章绪论
1.1电脑程式设计语言
1.1.1程式设计语言的演变
1.1.2C++程式设计语言的发展
1.2程式设计方法
1.2.1面向过程程式设计
1.2.2面向对象程式设计
1.3计算机信息的存储与表示
1.3.1数据在计算机中的表示
1.3.2数据单位
1.3.3不同形式数据的表示方法
1.4C++程式结构与开发过程
1.4.1C++程式的开发流程
1.4.2第一个C++程式
1.4.3C++程式设计环境
1.4.4带命令行参数的程式
1.5C++的词和规则
1.5.1C++的字元集
1.5.2词与词法规则
1.6编程实例——程式设计方法比较
习题1
第2章数据类型、表达式与基本输入输出
2.1数据类型基本概念
2.1.1C++数据类型的种类
2.1.2整型和实型
2.1.3数值的範围
2.1.4有符号数和无符号数
2.1.5有符号数和无符号数的範围区别
2.1.6本章用到的关键字
2.2C++基本数据类型
2.2.1整型、实型和字元型
2.2.2布尔型和无类型
2.2.3为数据类型起别名
2.2.4sizeof的使用
2.3变数
2.3.1变数概述
2.3.2变数的定义
2.3.3赋值语句
2.3.4变数的初始化
2.4常量
2.4.1整型常量
2.4.2字元常量和字元串常量
2.4.3逻辑常量
2.4.4枚举常量...
2.4.5实型常量
2.4.6地址常量
2.5符号常量
2.5.1为什幺需要符号常量
2.5.2const与#define的比较
2.6基本输入输出
2.6.1cout输出流
2.6.2cin输入流
2.7运算符和表达式
2.7.1C++语言运算符的种类
2.7.2算术运算符
2.7.3赋值运算符
2.7.4关係运算符
2.7.5逻辑运算符
2.7.6位运算符
2.7.7条件运算符
2.7.8逗号运算符
2.7.9运算符的优先权及结合性
2.8编程实例——获取IP位址并计算网路号等信息
2.8.1背景
2.8.2原始码及程式解释
习题2
第3章语句和控制结构
3.1顺序结构
3.1.1表达式语句
3.1.2函式调用语句
3.1.3複合语句
3.1.4空语句
3.1.5赋值语句
3.2选择结构
3.2.1if…else语句和if语句
3.2.2多路分支
3.2.3程式套用举例
3.3循环结构
3.3.1while语句
3.3.2do…while语句
3.3.3for语句
3.3.43种循环语句的选用
3.3.5循环的嵌套
3.4控制转移
3.4.1break语句
3.4.2continue语句
3.4.3goto语句
3.4.4return语句
3.5编程实例——凯撒加/解密和维吉尼亚加/解密
3.5.1背景
3.5.2原始码及程式解释
习题3
第4章函式
4.1函式概述
4.2预定义函式
4.3自定义函式
4.3.1函式的定义
4.3.2函式的返回值
4.3.3函式参数和传值调用
4.3.4函式定义和函式声明的区别
4.4函式的重载
4.5带默认参数的函式
4.6内联函式
4.7函式的嵌套调用
4.8函式的递归调用
4.9局部变数与全局变数
4.10变数的存储类别
4.10.1自动变数
4.10.2静态局部变数
4.10.3暂存器变数
4.10.4外部变数和静态外部变数
4.11预处理命令
4.11.1档案包含
4.11.2条件编译
4.12编程实例——Hanoi(汉诺)塔问题
习题4
第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.2.3二维数组的套用
5.2.4多维数组简单介绍
5.3字元数组
5.3.1定义和引用一维字元数组
5.3.2一维字元数组的初始化
5.3.3多维字元数组
5.3.4字元数组的输入与输出
5.3.5字元数组处理函式
5.4string类型
5.4.1定义和初始化string类型变数
5.4.2string对象的使用
5.5数组在函式中的套用
5.5.1数组元素作为函式参数
5.5.2整个数组作为函式参数
5.6编程实例——大整数加减运算
5.6.1设计思路
5.6.2原始码和程式解释
习题5
第6章指针和引用
6.1指针与指针变数
6.1.1指针的概念
6.1.2定义指针变数
6.1.3引用指针变数
6.1.4无名变数
6.1.5指针作为函式参数
6.2数组与指针
6.2.1指向数组元素的指针
6.2.2指针变数作为函式参数接收数组地址
6.3字元串与指针
6.4const修饰指针
6.4.1指向常量的指针
6.4.2指针常量
6.5引用
6.5.1引用的基本概念
6.5.2引用的套用
6.6动态数组
6.7其他指针
6.7.1函式指针
6.7.2指向指针的指针
6.7.3指针数组
6.8编程实例——选择法排序
习题6
第7章自定义数据类型
7.1结构体类型
7.1.1结构体类型的声明
7.1.2结构体变数的定义、初始化及使用
7.1.3结构体数组的定义、初始化及使用
7.1.4结构体作为函式参数
7.2共用体
7.2.1共用体变数的定义与初始化
7.2.2共用体变数的使用
7.3枚举类型
7.3.1枚举类型变数的定义与初始化
7.3.2枚举类型变数的使用
7.4typedef声明
7.5编程实例——递归下降语法分析器
7.5.1算法介绍
7.5.2程式原始码
习题7
第8章类
8.1类的声明
8.1.1类类型的声明
8.1.2对象的定义
8.1.3类的访问属性
8.1.4取值函式和赋值函式
8.1.5内联成员函式
8.1.6this指针
8.2构造函式和析构函式
8.2.1构造函式
8.2.2拷贝构造函式
8.2.3析构函式
8.3组合对象
8.3.1组合对象概述
8.3.2构造函式和析构函式在组合对象中的使用
8.4对象数组
8.4.1对象数组的定义
8.4.2对象数组的初始化
8.5对象指针
8.5.1对象指针的定义与使用
8.5.2指向对象成员的指针
8.6编程实例——学生成绩排名
8.6.1算法介绍
8.6.2程式原始码
习题8
第9章静态成员与友元
9.1变数的使用
9.1.1作用域
9.1.2可见性
9.1.3生存期
9.2类的静态成员
9.2.1静态数据成员
9.2.2静态成员函式
9.3类的友元
9.3.1友元函式
9.3.2友元类
9.4const修饰符
9.4.1const修饰变数
9.4.2const修饰引用
9.4.3const修饰对象
9.4.4const修饰类中的成员
9.5编程实例——缓冲区溢出
9.5.1背景
9.5.2程式原始码
习题9
第10章运算符重载
10.1重载二元运算符
10.1.1成员函式实现运算符重载
10.1.2友元函式实现运算符重载
10.2重载一元运算符
10.3>>和<<运算符重载
10.3.1<<运算符重载
10.3.2>>运算符重载
10.4重载运算符限制与设计规则
10.5编程实例——矩阵及向量间的运算
10.5.1背景
10.5.2程式原始码
习题10
第11章继承与派生
11.1类的继承与派生
11.1.1继承与派生的概念
11.1.2派生类的声明
11.1.3继承方式
11.1.4派生类中的构造函式和析构函式
11.1.5重定义成员函式
11.1.6构造函式和析构函式的调用顺序
11.2二义性问题
11.3虚基类
11.3.1虚基类的声明
11.3.2虚基类的构造函式
11.4编程实例——银行账户管理系统
11.4.1需求分析与数据结构设计
11.4.2程式原始码
习题11
第12章多态
12.1upcast
12.2后期绑定与虚函式
12.3重新定义和超载
12.4VPTR和VTABLE
12.5关于运算效率的考虑
12.6纯虚函式与抽象类
12.7纯虚函式的定义
12.8编程实例——虚函式实现求不同图形的面积
习题12
第13章输入输出流
13.1流的概念
13.1.1与I/O流类库有关的头档案
13.1.2iostream头档案中的重载运算符
13.2输入输出格式控制
13.2.1ios类中的枚举常量
13.2.2ios类中的成员函式
13.2.3iomanip头档案中的控制符
13.3字元I/O
13.3.1get函式
13.3.2put函式
13.3.3getline函式
13.4其他成员函式
13.4.1ignore函式
13.4.2eof函式
13.4.3peek函式
13.4.4putback函式
13.5档案和档案I/O
13.5.1档案的概念
13.5.2档案流类与档案流对象
13.5.3档案的打开与关闭
13.5.4I/O对象的条件状态
13.5.5ASCII档案的访问
13.5.6二进制档案的访问(选读)
13.6编程实例——ini档案的读/写
13.6.1ini档案结构
13.6.2原始码和程式解释
习题13
第14章模板
14.1函式模板
14.1.1函式模板的定义
14.1.2函式模板的套用
14.2类模板
14.2.1类模板的定义
14.2.2类模板的套用
14.3编程实例——複数类的定义和实现
习题14
第15章鍊表
15.1鍊表概述
15.2单鍊表类的定义
15.3鍊表结点的访问
15.4鍊表结点的插入
15.5鍊表结点的删除
15.6鍊表实例——简单的鍊表操作
习题15
第16章异常处理
16.1C++错误处理
16.2C++异常处理机制
16.2.1异常处理机制的3个部分
16.2.2异常处理的语法
16.2.3自定义异常类
16.2.4多个throw和catch
16.2.5catch(…)
16.2.6异常规範
16.3编程实例——病毒的自我複製
习题16
第17章项目开发指南
17.1项目管理基础
17.1.1项目与项目管理
17.1.2项目流程
17.1.3项目实施管理
17.2项目开发团队
17.2.1项目团队组成
17.2.2项目团队要求
17.3项目的研发
17.3.1软体版本控制
17.3.2程式编写规範
17.3.3功能设计说明书的撰写
17.3.4程式设计与实现
17.3.5单元测试
17.3.6提交代码
17.3.7功能维护
习题17
参考文献