第1篇 入 门 篇
第1章 初识C++
(视频讲解:45分钟)
1.1 C++的历史背景
1.1.1 计算机的问世
1.1.2 C++发展历程
1.1.3 C++中的杰出人物
1.2 C++语言特点
1.3 Visual Studio 2010集成编译环境
1.3.1 安装Visual Studio 2010
1.3.2 卸载Visual Studio 2010
1.3.3 使用Visual Studio 2010创建一个C++控制台程序
1.3.4 编写第一个C++程序“Hello World!”
1.4 本书代码使用指南
1.5 本章小结
第2章 认识C++程序
(视频讲解:54分钟)
2.1 我的第一个C++程序
2.1.1 创建第一个C++程序
2.1.2 C++程序的基本组成
2.2 C++的常用概念
2.2.1 预处理命令
2.2.2 注释
2.2.3 main函数
2.2.4 函数体
2.2.5 函数返回值
2.3 初步了解函数
2.3.1 一个简单的函数
2.3.2 函数的传参
2.3.3 函数的返回值、参数与变量
2.3.4 函数的声明和定义
2.3.5 变量
2.4 C++语言基本要素
2.4.1 解读标识符
2.4.2 关键字
2.4.3 定义和使用常量
2.4.4 变量的应用
2.5 C++代码编写规范
2.5.1 代码写规范的好处
2.5.2 如何将代码写规范
2.6 综合应用
2.7 本章常见错误
2.8 本章小结
2.9 跟我上机
第1篇 入 门 篇
第1章 初识C++
(视频讲解:45分钟)
1.1 C++的历史背景
1.1.1 计算机的问世
1.1.2 C++发展历程
1.1.3 C++中的杰出人物
1.2 C++语言特点
1.3 Visual Studio 2010集成编译环境
1.3.1 安装Visual Studio 2010
1.3.2 卸载Visual Studio 2010
1.3.3 使用Visual Studio 2010创建一个C++控制台程序
1.3.4 编写第一个C++程序“Hello World!”
1.4 本书代码使用指南
1.5 本章小结
第2章 认识C++程序
(视频讲解:54分钟)
2.1 我的第一个C++程序
2.1.1 创建第一个C++程序
2.1.2 C++程序的基本组成
2.2 C++的常用概念
2.2.1 预处理命令
2.2.2 注释
2.2.3 main函数
2.2.4 函数体
2.2.5 函数返回值
2.3 初步了解函数
2.3.1 一个简单的函数
2.3.2 函数的传参
2.3.3 函数的返回值、参数与变量
2.3.4 函数的声明和定义
2.3.5 变量
2.4 C++语言基本要素
2.4.1 解读标识符
2.4.2 关键字
2.4.3 定义和使用常量
2.4.4 变量的应用
2.5 C++代码编写规范
2.5.1 代码写规范的好处
2.5.2 如何将代码写规范
2.6 综合应用
2.7 本章常见错误
2.8 本章小结
2.9 跟我上机
第3章 变量和数据类型
(视频讲解:1小时5分钟)
3.1 常量
3.1.1 整型常量
3.1.2 实型常量
3.1.3 字符常量
3.1.4 字符串常量
3.1.5 其他常量
3.2 变量
3.2.1 标识符
3.2.2 变量与变量说明
3.2.3 整型变量
3.2.4 实型变量
3.2.5 变量赋值
3.2.6 变量赋初值
3.2.7 字符变量
3.3 常用数据类型
3.3.1 定义数值类型
3.3.2 字符类型
3.3.3 布尔类型
3.4 输入与输出数据
3.4.1 通过printf格式输出数据
3.4.2 利用scanf格式输入数据
3.4.3 标准I/O流
3.4.4 控制输入/输出格式
3.5 综合应用
3.5.1 计算贷款支付额
3.5.2 计算函数值
3.6 本章常见错误
3.7 本章小结
3.8 跟我上机
第4章 运算符与表达式
(视频讲解:40分钟)
4.1 C++中的运算符
4.1.1 算术运算符
4.1.2 关系运算符
4.1.3 逻辑运算符
4.1.4 赋值运算符
4.1.5 位运算符
4.1.6 移位运算符
4.1.7 sizeof运算符
4.1.8 条件运算符
4.1.9 逗号运算符
4.2 结合性和优先级
4.3 表达式
4.3.1 算术表达式
4.3.2 关系表达式
4.3.3 条件表达式
4.3.4 赋值表达式
4.3.5 逻辑表达式
4.3.6 逗号表达式
4.3.7 表达式中的类型转换
4.4 语句概述
4.5 判断左值与右值
4.6 综合应用
4.6.1 计算三角形周长
4.6.2 计算三角形的边长
4.7 本章常见错误
4.7.1 注意=和==
4.7.2 不要混淆strlen和sizeof
4.7.3 对浮点数求余
4.8 本章小结
4.9 跟我上机
第5章 条件判断语句
(视频讲解:35分钟)
5.1 决策分支
5.2 判断语句
5.2.1 第一种形式的判断语句——if语句
5.2.2 第二种形式的判断语句——if-else语句
5.2.3 第三种形式的判断语句——多次判断语句
5.3 使用条件运算符进行判断
5.4 switch判断语句
5.5 判断语句的嵌套
5.6 综合应用
5.6.1 图书的位置
5.6.2 计算增加后的工资
5.7 本章常见错误
5.7.1 注意case后不要跟变量
5.7.2 if else的匹配问题
5.7.3 if判断表达式的比较问题
5.8 本章小结
5.9 跟我上机
第6章 循环控制语句
(视频讲解:50分钟)
6.1 while循环
6.2 do…while循环
6.3 while和do…while比较
6.4 for循环
6.5 循环控制
6.5.1 控制循环的变量
6.5.2 break语句
6.5.3 continue语句
6.5.4 goto语句
6.6 循环嵌套
6.7 综合应用
6.7.1 阿姆斯壮数
6.7.2 巴斯卡三角形
6.7.3 输出闰年
6.8 本章常见错误
6.8.1 break和continue语句的区别
6.8.2 goto的问题
6.9 本章小结
6.10 跟我上机
第7章 封装函数使程序模块化
(视频讲解:1小时)
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.4 递归调用函数
7.5 重载函数的使用
7.6 生存周期与作用域
7.6.1 变量的作用域
7.6.2 变量的生存周期
7.6.3 变量的储存方式
7.7 名称空间
7.8 综合应用
7.8.1 等差数列求和
7.8.2 提款机的记录
7.9 本章常见错误
7.9.1 函数中返回的数组地址无效
7.9.2 声明函数时不要忘记加分号
7.9.3 尽量不要用using namespace std
7.10 本章小结
7.11 跟我上机
第8章 C++中的指针
(视频讲解:20分钟)
8.1 指针概述
8.1.1 保存变量地址
8.1.2 指针的运算
8.1.3 指向空的指针与空类型指针
8.1.4 指向常量的指针与指针常量
8.2 指针在函数中的应用
8.2.1 传递地址
8.2.2 指向函数入口地址
8.2.3 空指针调用函数
8.2.4 从函数中返回指针
8.3 安全使用指针
8.3.1 内存分配
8.3.2 内存安全
8.4 综合应用
8.4.1 水桶的平衡
8.4.2 分步计算
8.4.3 显示数组元素
8.5 本章常见错误
8.5.1 文字常量区不可修改
8.5.2 重复释放内存,错误提示“Debug Assertion
Failed!”
8.5.3 释放空间以后,记得给指针赋空
8.5.4 (*p)--输出的不是想要的值
8.6 本章小结
8.7 跟我上机
第9章 C++中的引用
(视频讲解:14分钟)
9.1 引用概述
9.1.1 引用的概念
9.1.2 引用就是别名常量
9.1.3 右值引用
9.2 引用在函数中的应用
9.2.1 引用作为函数的形参
9.2.2 指针与引用
9.2.3 右值引用传递参数
9.3 综合应用
9.4 本章常见错误
9.4.1 指针和引用分别应该什么时候用
9.4.2 在哪里创建,就在哪里释放指针
9.4.3 指针和引用混合使用
9.4.4 指针的特殊写法
9.5 本章小结
9.6 跟我上机
第10章 使用数组获取连续空间
(视频讲解:56分钟)
10.1 一维数组
10.1.1 声明一维数组
10.1.2 一维数组的元素
10.1.3 初始化一维数组
10.2 二维数组
10.2.1 声明二维数组
10.2.2 引用二维数组元素
10.2.3 初始化二维数组
10.3 字符数组
10.3.1 声明一个字符串数组
10.3.2 字符串数组赋值
10.3.3 字符数组的一些说明
10.3.4 越界引用
10.3.5 字符串处理函数
10.4 指针与数组
10.4.1 存储数组元素
10.4.2 保存一维数组首地址
10.4.3 保存二维数组首地址
10.4.4 指针与字符数组
10.4.5 数组作函数参数
10.4.6 动态分配数组
10.5 字符串类型
10.5.1 使用本地字符串类型string
10.5.2 连接string字符串
10.5.3 比较string字符串
10.5.4 定义string类型数组
10.6 综合应用
10.6.1 名字排序
10.6.2 查找数字
10.6.3 求平均身高
10.7 本章常见错误
10.7.1 不能对数组名直接赋值
10.7.2 sizeof(a)和sizeof(a+1)
10.7.3 注意区分数组指针和指针数组
10.8 本章小结
10.9 跟我上机
第2篇 提 高 篇
第11章 面向对象编程
(视频讲解:1小时20分钟)
11.1 面向对象的编程思想
11.1.1 面向过程
11.1.2 面向对象
11.1.3 面向对象编程的特点
11.2 类与对象
11.2.1 声明与定义类
11.2.2 在源文件中包含头文件
11.2.3 实现一个类
11.2.4 实例化一个对象
11.2.5 访问类成员
11.3 类的构造与析构
11.3.1 构造函数概述
11.3.2 利用构造函数初始化成员变量
11.3.3 析构一个类
11.4 定义静态成员
11.5 通过指针操作对象
11.6 隐含的this指针
11.7 复制对象
11.8 声明const对象
11.9 申请对象数组
11.10 C++中的友元
11.10.1 友元机制
11.10.2 定义友元类
11.11 重载运算符
11.11.1 重载算术运算符
11.11.2 重载比较运算符
11.12 综合应用
11.12.1 用户与留言
11.12.2 挑选硬盘
11.13 本章常见错误
11.13.1 声明类时提示编译错误
11.13.2 对比const与#define
11.13.3 new和delete要配对使用
11.14 本章小结
11.15 跟我上机
第12章 从基类到派生类
(视频讲解:46分钟)
12.1 类的继承
12.1.1 定义派生类
12.1.2 访问类成员
12.1.3 类的派生方式
12.1.4 父类和子类的构造顺序
12.1.5 子类显示调用父类构造函数
12.1.6 子类隐藏父类的成员函数
12.1.7 嵌套定义多个类
12.2 多重继承
12.2.1 声明多重继承的派生类
12.2.2 注意避免二义性
12.2.3 多重继承的构造顺序
12.3 C++的多态性
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.6.1 静态成员函数不能访问普通成员变量
12.6.2 类初始化时不能直接给数组名赋值
12.6.3 派生后的访问权限总结
12.7 本章小结
12.8 跟我上机
第13章 C++模板的使用
(视频讲解:50分钟)
13.1 函数模板
13.1.1 定义函数模板
13.1.2 使用函数模板
13.1.3 重载函数模板
13.2 类模板
13.2.1 定义类模板
13.2.2 执行时指定参数
13.2.3 设置默认模板参数
13.2.4 为具体类型的参数提供默认值
13.2.5 越界检测
13.3 模板的使用方法
13.3.1 定制类模板
13.3.2 定制类模板成员函数
13.3.3 部分定制模板
13.4 链表类模板
13.4.1 建立单向链表
13.4.2 链表类模板的使用
13.4.3 类模板的静态数据成员
13.5 综合应用
13.5.1 除法函数模板
13.5.2 取得数据间最大值
13.5.3 不同类型数组管理
13.6 本章常见错误
13.6.1 函数模板与类模板的区别
13.6.2 成员函数在类外实现时不要带默认值
13.6.3 函数默认顺序从右向左
13.7 本章小结
13.8 跟我上机
第14章 代码整理
(视频讲解:52分钟)
14.1 结构体概述
14.2 重命名数据类型
14.3 枚举类型的应用
14.4 类型推导
14.5 异常处理
14.5.1 抛出异常
14.5.2 捕获异常
14.5.3 异常匹配
14.5.4 标准异常
14.6 使用宏定义替换复杂的数据
14.7 综合应用
14.7.1 扑克牌的牌面
14.7.2 使用带参数的宏求圆面积
14.7.3 综合成绩
14.8 本章常见错误
14.8.1 注意带参数的宏
14.8.2 结构体成员的引用
14.8.3 结构体字节对齐问题
14.8.4 用指针动态申请结构体内存时失败
14.9 本章小结
14.10 跟我上机
第15章 掌握C++标准模板库
(视频讲解:29分钟)
15.1 几种常见数据结构
15.1.1 简述STL
15.1.2 顺序线性结构
15.1.3 基本操作
15.1.4 栈结构
15.1.5 队列结构
15.1.6 链表结构
15.1.7 图结构
15.2 使用容器管理数据
15.2.1 对比容器适配器与容器
15.2.2 对比迭代器与容器
15.2.3 vector容器
15.2.4 list容器
15.2.5 关联容器
15.3 常用算法
15.3.1 for_each函数
15.3.2 fill函数
15.3.3 sort函数
15.3.4 transform函数
15.4 lambda表达式
15.5 综合应用
15.5.1 迭代输出信息
15.5.2 计算平均值
15.6 本章常见错误
15.6.1 不要直接使用头指针操作链表
15.6.2 区分内存中的栈和数据结构中的栈
15.6.3 数组和容器的区别
15.7 本章小结
15.8 跟我上机
第16章 利用文件处理数据
(视频讲解:58分钟)
16.1 文件流概述
16.1.1 C++中的流类库
16.1.2 使用类库
16.1.3 ios类中的枚举常量
16.1.4 使用流进行输出
16.2 打开文件
16.2.1 文件打开方式
16.2.2 默认打开模式
16.2.3 创建并打开文件
16.3 读写文件
16.3.1 文件流分类
16.3.2 写文本文件
16.3.3 读取文本文件
16.3.4 二进制文件的读写
16.3.5 实现文件复制
16.4 移动文件指针
16.4.1 文件错误与状态
16.4.2 向文件追加写入
16.4.3 文件结尾的判断
16.4.4 在指定位置读写文件
16.5 文件和流的关联和分离
16.6 删除文件
16.7 综合应用
16.7.1 记录类的信息
16.7.2 读取文件信息
16.8 本章常见错误
16.8.1 文件打开要记得关闭
16.8.2 peek不能用于ofstream
16.8.3 忘记调回指针,读不到内容
16.9 本章小结
16.10 跟我上机
第3篇 实 战 篇
第17章 C++语言游戏开发
(视频讲解:2小时48分钟)
17.1 模拟ATM机界面程序
17.1.1 概述
17.1.2 需求分析
17.1.3 设计思路
17.1.4 详细设计
17.1.5 程序代码
17.1.6 小结
17.2 猜数字游戏
17.2.1 概述
17.2.2 需求分析
17.2.3 系统设计
17.2.4 程序预览
17.2.5 设计思路
17.2.6 文件引用
17.2.7 主要功能实现
17.2.8 小结
17.3 吃豆子游戏
17.3.1 PacMan程序框架初步分析
17.3.2 碰撞检测的实现
17.3.3 地图类的设计
17.3.4 数据更新
17.3.5 绘图
17.3.6 窗口设计
17.3.7 小结
第18章 人事考勤管理系统(Visual Studio 2010和SQL
Server 2008实现)
(视频讲解:1小时30分钟)
18.1 开发背景
18.2 需求分析
18.3 系统设计
18.3.1 系统目标
18.3.2 系统功能结构
18.3.3 系统预览
18.3.4 业务流程图
18.3.5 数据库设计
18.4 公共模块设计
18.5 主窗体设计
18.6 用户登录模块设计
18.6.1 用户登录模块概述
18.6.2 用户登录技术分析
18.6.3 用户登录实现过程
18.7 用户管理模块设计
18.7.1 用户管理模块概述
18.7.2 用户管理技术分析
18.7.3 用户管理实现过程
18.7.4 单元测试
18.8 部门管理模块设计
18.8.1 部门管理模块概述
18.8.2 部门管理技术分析
18.8.3 部门管理实现过程
18.9 人员信息管理模块设计
18.9.1 人员信息管理模块概述
18.9.2 人员信息管理技术分析
18.9.3 人员信息管理实现过程
18.10 考勤管理模块设计
18.10.1 考勤管理模块概述
18.10.2 考勤管理技术分析
18.10.3 考勤管理实现过程
18.11 考勤汇总查询模块设计
18.11.1 考勤汇总查询模块概述
18.11.2 考勤汇总查询技术分析
18.11.3 考勤汇总查询实现过程
18.12 开发技巧与难点分析
18.12.1 调用动态链接库设计界面
18.12.2 主窗口的界面显示
18.13 本章小结