第1篇 新手入门
第1章 绪论
视频讲解:18分钟
1.1 C++历史背景
1.1.1 20世纪最伟大的发明——计算机
1.1.2 C++发展历程
1.1.3 C++发展中的杰出人物
1.2 Visual Studio 2010集成编译环境
1.2.1 安装Visual Studio 2010
1.2.2 卸载Visual Studio 2010
1.2.3 使用Visual Studio 2010创建一个C++控制台程序
1.2.4 编写第一个C++程序“HelloWorld”
1.3 如何使用本书代码
1.4 小结
第2章 数据类型
视频讲解:85分钟
2.1 第一个C++程序
2.1.1 #include指令
2.1.2 注释
2.1.3 main函数
2.1.4 函数体
2.1.5 函数返回值
2.2 数据类型概述
2.3 常量及符号
2.3.1 整型常量
2.3.2 实型常量
2.3.3 字符常量
2.3.4 字符串常量
2.3.5 其他常量
2.4 变量
2.4.1 标识符
2.4.2 变量与变量声明
2.4.3 整型变量
2.4.4 实型变量
2.4.5 变量赋值
2.4.6 变量赋初值
2.4.7 字符变量
2.5 数据输入与输出
2.5.1 控制台屏幕
2.5.2 C++语言中的流
2.5.3 流操作的控制
2.6 实战
2.6.1 输出一个正方形
2.6.2 输出一个三角形
2.6.3 简单求和程序
2.6.4 数值型常量的使用
2.6.5 将输入的小写字符转换为大写字符
2.6.6 水池注水问题
2.7 小结
2.8 学习成果检验
第3章 表达式与语句
视频讲解:55分钟
第1篇 新手入门
第1章 绪论
视频讲解:18分钟
1.1 C++历史背景
1.1.1 20世纪最伟大的发明——计算机
1.1.2 C++发展历程
1.1.3 C++发展中的杰出人物
1.2 Visual Studio 2010集成编译环境
1.2.1 安装Visual Studio 2010
1.2.2 卸载Visual Studio 2010
1.2.3 使用Visual Studio 2010创建一个C++控制台程序
1.2.4 编写第一个C++程序“HelloWorld”
1.3 如何使用本书代码
1.4 小结
第2章 数据类型
视频讲解:85分钟
2.1 第一个C++程序
2.1.1 #include指令
2.1.2 注释
2.1.3 main函数
2.1.4 函数体
2.1.5 函数返回值
2.2 数据类型概述
2.3 常量及符号
2.3.1 整型常量
2.3.2 实型常量
2.3.3 字符常量
2.3.4 字符串常量
2.3.5 其他常量
2.4 变量
2.4.1 标识符
2.4.2 变量与变量声明
2.4.3 整型变量
2.4.4 实型变量
2.4.5 变量赋值
2.4.6 变量赋初值
2.4.7 字符变量
2.5 数据输入与输出
2.5.1 控制台屏幕
2.5.2 C++语言中的流
2.5.3 流操作的控制
2.6 实战
2.6.1 输出一个正方形
2.6.2 输出一个三角形
2.6.3 简单求和程序
2.6.4 数值型常量的使用
2.6.5 将输入的小写字符转换为大写字符
2.6.6 水池注水问题
2.7 小结
2.8 学习成果检验
第3章 表达式与语句
视频讲解:55分钟
3.1 运算符
3.1.1 算术运算符
3.1.2 关系运算符
3.1.3 逻辑运算符
3.1.4 赋值运算符
3.1.5 位运算
3.1.6 移位运算符
3.1.7 sizeof运算符
3.1.8 条件运算符
3.1.9 逗号运算符
3.2 结合性和优先级
3.3 表达式
3.3.1 算术表达式
3.3.2 关系表达式
3.3.3 条件表达式
3.3.4 赋值表达式
3.3.5 逻辑表达式
3.3.6 逗号表达式
3.3.7 表达式中的类型转换
3.4 语句
3.5 实战
3.5.1 求1~10的累加和
3.5.2 求一个整数任意次方后的最后三位数
3.5.3 婚礼上的谎言
3.5.4 阿姆斯特朗数
3.5.5 满足abcd=(ab+cd)2的数
3.5.6 最大公约数及最小公倍数
3.6 小结
3.7 学习成果检验
第4章 判断与循环
视频讲解:90分钟
4.1 条件判断
4.1.1 if语句
4.1.2 if…else语句
4.1.3 嵌套的if-else语句
4.1.4 使用条件运算符进行判断
4.1.5 switch判断语句
4.2 循环语句
4.2.1 while循环语句
4.2.2 do…while循环
4.2.3 while与do…while比较
4.2.4 for循环语句
4.3 循环控制
4.3.1 控制循环的变量
4.3.2 break语句
4.3.3 continue语句
4.3.4 goto语句
4.4 循环嵌套
4.5 实战
4.5.1 小写字母转大写
4.5.2 百鸡百钱问题
4.5.3 判断三角形类型
4.5.4 简单计算器
4.5.5 求总数问题
4.5.6 加油站加油
4.5.7 灯塔数量
4.5.8 尼科彻斯定理
4.6 小结
4.7 学习成果检验
第5章 综合实验(1)——模拟ATM机界面程序
视频讲解:7分钟
5.1 概述
5.2 需求分析
5.3 设计思路
5.4 详细设计
5.5 程序代码
第2篇进阶提高
第6章 数组
视频讲解:34分钟
6.1 一维数组
6.1.1 如何定义和引用一维数组
6.1.2 一维数组初始化
6.1.3 一维数组应用
6.2 二维数组
6.2.1 如何定义和引用二维数组
6.2.2 二维数组初始化
6.2.3 二维数组应用
6.3 多维数组
6.4 字符数组
6.4.1 如何定义和使用字符数组
6.4.2 字符数组初始化
6.4.3 字符数组的结束标志
6.4.4 字符数组的输入和输出
6.4.5 字符数组应用
6.5 实战
6.5.1 相邻元素之和
6.5.2 选票系统
6.5.3 统计学生成绩
6.5.4 模拟比赛打分
6.5.5 矩阵的转置
6.5.6 设计魔方阵
6.5.7 统计各种字符个数
6.6 小结
6.7 学习成果检验
第7章 函数
视频讲解:74分钟
7.1 函数概述
7.2 函数的定义
7.2.1 无参函数
7.2.2 有参函数
7.2.3 空函数
7.3 返回语句
7.3.1 从函数返回
7.3.2 返回值
7.4 函数参数
7.4.1 形式参数与实际参数
7.4.2 数组作函数参数
7.4.3 main参数
7.5 函数的调用
7.5.1 函数调用方式
7.5.2 嵌套调用
7.5.3 递归调用
7.6 内部函数和外部函数
7.6.1 内部函数
7.6.2 外部函数
7.7 局部变量和全局变量
7.7.1 局部变量
7.7.2 全局变量
7.8 实战
7.8.1 求数组元素中的最小值
7.8.2 求直角三角形斜边
7.8.3 小数分离
7.8.4 判断素数
7.8.5 递归解决分鱼问题
7.8.6 字母检索
7.8.7 求字符串中字符的个数
7.8.8 打鱼晒网问题
7.9 小结
7.10 学习成果检验
第8章 指针和引用
视频讲解:53分钟
8.1 指针
8.1.1 变量与指针
8.1.2 指针运算符和取地址运算符
8.1.3 指针运算
8.2 指针与数组
8.2.1 数组的存储
8.2.2 指针与一维数组
8.2.3 指针与二维数组
8.2.4 指针与字符数组
8.3 指向函数的指针
8.4 指针与安全
8.4.1 内存的分配方式
8.4.2 内存安全
8.5 引用
8.5.1 左值与右值
8.5.2 引用的概述
8.5.3 右值引用
8.6 函数与引用
8.6.1 使用引用传递参数
8.6.2 指针与引用
8.6.3 右值引用传递参数
8.7 实战
8.7.1 使用左值引用实现整数排序
8.7.2 查找成绩不及格的学生
8.7.3 指针实现冒泡排序
8.7.4 使用指针插入元素
8.7.5 使用指针的指针输出字符串
8.7.6 为二维数组动态分配内存并释放
8.7.7 使用右值引用转换二进制为十进制
8.8 小结
8.9 学习成果检验
第9章 综合实验(2)——猜数字游戏
视频讲解:24分钟
9.1 概述
9.2 需求分析
9.3 系统设计
9.3.1 设计目标
9.3.2 开发及运行环境
9.4 程序预览
9.5 设计思路
9.6 文件引用
9.7 主要功能实现
9.7.1 主函数
9.7.2 猜数字
9.7.3 光标定位
第3篇 核心技术
第10章 类和对象
视频讲解:62分钟
10.1 C++类
10.1.1 类概述
10.1.2 类的声明与定义
10.1.3 类的实现
10.1.4 对象的声明
10.2 构造函数
10.2.1 构造函数概述
10.2.2 复制构造函数
10.3 析构函数
10.4 类成员
10.4.1 访问类成员
10.4.2 内联成员函数
10.4.3 静态类成员
10.4.4 隐藏的this指针
10.4.5 嵌套类
10.4.6 局部类
10.5 友元
10.5.1 友元概述
10.5.2 友元类
10.5.3 友元方法
10.6 命名空间
10.6.1 使用命名空间
10.6.2 定义命名空间
10.6.3 在多个文件中定义命名空间
10.6.4 定义嵌套的命名空间
10.6.5 定义未命名的命名空间
10.7 实战
10.7.1 找出最高分
10.7.2 计算平面两点间距离
10.7.3 创建简单单向链表
10.7.4 创建简单双向链表
10.7.5 单向链表的逆置
10.7.6 括号匹配检测
10.8 小结
10.9 学习成果检验
第11章 继承和派生
视频讲解:57分钟
11.1 继承
11.1.1 类的继承
11.1.2 继承后可访问性
11.1.3 构造函数访问顺序
11.1.4 子类隐藏父类的成员函数
11.2 重载运算符
11.2.1 重载运算符的必要性
11.2.2 重载运算符的形式与规则
11.2.3 重载运算符的运算
11.2.4 转换运算符
11.3 多重继承
11.3.1 多重继承定义
11.3.2 二义性
11.3.3 多重继承的构造顺序
11.4 多态
11.4.1 虚函数概述
11.4.2 利用虚函数实现动态绑定
11.4.3 虚继承
11.5 抽象类
11.5.1 纯虚函数
11.5.2 实现抽象类中的成员函数
11.6 结构体
11.7 实战
11.7.1 接口的实现
11.7.2 二维方阵的加减运算
11.7.3 成员函数重写与虚函数继承的区别
11.7.4 善用类指针
11.7.5 链表合并
11.7.6 柱状三维图形的体积
11.8 小结
11.9 学习成果检验
第12章 模板
视频讲解:50分钟
12.1 函数模板
12.1.1 函数模板的定义
12.1.2 函数模板的作用
12.1.3 重载函数模板
12.2 类模板
12.2.1 类模板的定义与声明
12.2.2 简单类模板
12.2.3 默认模板参数
12.2.4 为具体类型的参数提供默认值
12.2.5 有界数组模板
12.3 模板的使用
12.3.1 定制类模板
12.3.2 定制类模板成员函数
12.3.3 模板部分定制
12.4 链表类模板
12.4.1 链表
12.4.2 使用链表类模板
12.4.3 类模板的静态数据成员
12.5 实战
12.5.1 使用函数模板回收动态分配的内存
12.5.2 三维坐标类模板
12.5.3 多继承与函数模板
12.5.4 实现链表模板的插入
12.5.5 选择排序函数模板
12.6 小结
12.7 学习成果检验
第13章 文件操作
视频讲解:58分钟
13.1 文件流
13.1.1 C++中的流类库
13.1.2 类库的使用
13.1.3 ios类中的枚举常量
13.1.4 流的输入/输出
13.2 文件打开
13.2.1 打开方式
13.2.2 默认打开模式
13.2.3 打开文件同时创建文件
13.3 文件的读写
13.3.1 文件流
13.3.2 写文本文件
13.3.3 读取文本文件
13.3.4 二进制文件的读/写
13.3.5 实现文件复制
13.4 文件指针移动操作
13.4.1 文件错误与状态
13.4.2 文件的追加
13.4.3 文件结尾的判断
13.4.4 在指定位置读/写文件
13.5 文件与流的关联和分离
13.6 删除文件
13.7 实战
13.7.1 合并两个文件信息
13.7.2 文件复制
13.7.3 文件加密
13.7.4 使用销毁的手段保护文件内容
13.7.5 在文件中查找关键词出现的次数
13.8 小结
13.9 学习成果检验
第14章 综合实验(3)——图书管理系统
视频讲解:42分钟
14.1 系统设计
14.1.1 需求分析
14.1.2 系统目标
14.1.3 系统功能结构
14.2 图书类
14.3 主程序
14.4 添加图书
14.5 显示图书信息
14.6 删除图书
14.7 小结
第4篇 高级应用
第15章 预处理
视频讲解:42分钟
15.1 本章知识体系
15.2 不带参数的宏定义
15.3 带参数的宏定义
15.4 #include命令
15.5 条件编译
15.5.1 #if命令
15.5.2 #ifdef及#ifndef命令
15.5.3 #undef命令
15.5.4 #line命令
15.5.5 #pragma命令
15.6 实战
15.6.1 利用宏计算两个数的乘积
15.6.2 利用宏求3个数中的最小数
15.6.3 使用带参数的宏求圆面积
15.6.4 利用文件包含设计输出模式
15.6.5 使用条件编译隐藏密码
15.7 疑难解惑
15.7.1 C++语言中包括哪些预处理功能
15.7.2 使用宏时需要注意些什么
15.7.3 文件包含可以嵌套吗
15.8 小结
15.9 学习成果检验
第16章 STL标准模板库
视频讲解:35分钟
16.1 序列容器
16.1.1 向量类模板
16.1.2 双端队列类模板
16.1.3 链表类模板
16.2 结合容器
16.2.1 set类模板
16.2.2 multiset类模板
16.2.3 map类模板
16.2.4 multimap类模板
16.3 算法
16.3.1 非修正序列算法
16.3.2 修正序列算法
16.3.3 排序算法
16.3.4 数值算法
16.4 迭代器
16.4.1 输出迭代器
16.4.2 输入迭代器
16.4.3 前向迭代器
16.4.4 双向迭代器
16.4.5 随机访问迭代器
16.5 实战
16.5.1 使用链表类模板加载学生类实例
16.5.2 按索引排序
16.5.3 使用并集算法合并容器
16.5.4 利用容器算法洗牌
16.5.5 筛选过期的药品
16.6 小结
16.7 学习成果检验
第17章 程序调试
视频讲解:36分钟
17.1 选择正确的调试方法
17.2 程序错误常见的4种类型
17.2.1 语法错误
17.2.2 连接错误
17.2.3 运行时错误
17.2.4 逻辑错误
17.3 调试工具的使用
17.3.1 创建调试程序
17.3.2 进入调试状态
17.3.3 监视窗口
17.3.4 调用堆栈窗口
17.3.5 内存窗口
17.3.6 变量窗口
17.3.7 寄存器窗口
17.3.8 反汇编窗口
17.4 调试的基本应用
17.4.1 变量的跟踪与查看
17.4.2 位置断点的使用
17.5 小结
第18章 综合实验(4)——商品销售系统
视频讲解:38分钟
18.1 商品类的设计
18.2 销售系统的设计
18.3 销售记录功能
18.4 小结
第5篇 项目实战
第19章 网络通信
视频讲解:40分钟
19.1 TCP/IP协议
19.1.1 OSI参考模型
19.1.2 TCP/IP参考模型
19.1.3 IP地址
19.1.4 数据包格式
19.2 套接字
19.2.1 Winsocket套接字
19.2.2 Winsocket的使用
19.2.3 套接字阻塞模式
19.2.4 字节顺序
19.2.5 面向连接流
19.2.6 面向无连接流
19.3 简单协议通信
19.3.1 服务端
19.3.2 客户端
19.3.3 实例的运行
19.4 小结
第20章 吃豆子游戏
视频讲解:136分钟
20.1 Windows应用程序
20.1.1 建立Windows应用程序
20.1.2 WinMain函数
20.1.3 Windows消息循环
20.1.4 常用绘图GDI
20.2 制作PacMan
20.2.1 PacMan程序框架初步分析
20.2.2 碰撞检测的实现
20.2.3 地图类的设计
20.2.4 数据更新
20.2.5 绘图
20.2.6 窗口设计
20.3 小结