第0章 绪论 1
0.1实验目标和要求 1
0.1.1实验目标 1
0.1.2实验要求 1
0.2实验实施要点 1
0.2.1实验准备 2
0.2.2实验操作 2
0.2.3结果分析 2
0.2.4问题解决 2
0.3实验环境 2
0.4本书结构 3
0.5实验的知识体系 4
第1章 程序基本知识 8
1.1知识要点 8
1.1.1C+++程序的结构 8
1.1.2C+++输入输出的实现 8
1.2实验项目说明与实施方案 8
1.2.1实验项目说明 8
1.2.2实验实施方案 9
1.3实验项目案例分析 9
实验项目:字符串常量的输出 9
第2章 简单数据与运算 12
2.1知识要点 12
2.1.1字符集与词法记号 12
2.1.2C+++基本数据类型 13
2.1.3常量与变量 13
2.1.4运算符与表达式 13
2.1.5表达式中的类型转换 14
2.2实验项目说明与实施方案 14
2.2.1实验项目说明 14
2.2.2实验实施方案 16
2.3实验项目案例分析 17
2.3.1实验项目2-1:C+++中的逻辑运算 17
2.3.2实验项目2-2:C+++运算综合练习 20
2.4实验项目汇编 23
2.4.1实验项目2-3:C+++中基本数据类型的定义和输出 23
2.4.2实验项目2-4:C+++中基本数据类型的输入 23
2.4.3实验项目2-5:C+++中基本字符串变量的输入和输出 24
2.4.4实验项目2-6:C+++中整数的算术运算 25
2.4.5实验项目2-7:C+++中浮点类型数据的算术运算 25
2.4.6实验项目2-8:C+++中字符型数据的运算 26
2.4.7实验项目2-9:C+++中基本数据类型间的运算和类型转换 26
2.4.8实验项目2-10:C+++中的高级数学运算 27
2.4.9实验项目2-11:C+++中的位运算 28
2.4.10实验项目2-12:C+++中的sizeof运算 29
2.4.11实验项目2-13:C+++中字符串中的转义字符 29
第3章 流程控制 31
3.1知识要点 31
3.1.1选择语句 31
3.1.2循环语句 32
3.1.3其他控制语句 32
3.2实验项目说明与实施方案 32
3.2.1实验项目说明 32
3.2.2实验实施方案 34
3.3实验项目案例分析 34
3.3.1实验项目3-1:C+++流程控制应用 34
3.3.2实验项目3-2:逻辑运算与流程控制 39
3.4实验项目汇编 42
3.4.1实验项目3-3:基本的if语句和if-else语句 42
3.4.2实验项目3-4:基本分支结构 43
3.4.3实验项目3-5:for循环 43
3.4.4实验项目3-6:while循环和do-while循环 44
3.4.5实验项目3-7:break语句和continue语句 46
3.4.6实验项目3-8:基本的switch结构 46
第4章 复杂数据与运算 47
4.1知识要点 47
4.1.1数组 47
4.1.2指针 47
4.1.3字符串 49
4.2实验项目说明与实施方案 49
4.2.1实验项目说明 49
4.2.2实验实施方案 51
4.3实验项目案例分析 52
4.3.1实验项目4-1:使用指针访问字符串 52
4.3.2实验项目4-2:字符型数组与字符串 54
4.4实验项目汇编 57
4.4.1实验项目4-3:一维数组的声明、定义、初始化与访问 57
4.4.2实验项目4-4:多维数组的声明、定义、初始化与访问 58
4.4.3实验项目4-5:数组访问越界问题 59
4.4.4实验项目4-6:指针的基本使用 60
4.4.5实验项目4-7:指针的运算 61
4.4.6实验项目4-8:new和delete操作 61
4.4.7实验项目4-9:使用指针访问数组 62
4.4.8实验项目4-10:字符串的声明、定义、初始化与访问 62
4.4.9实验项目4-11:C+++中字符串的基本运算 63
4.4.10实验项目4-12:C+++中字符串相关函数 63
4.4.11实验项目4-13:C+++中字符串与其他数据类型的相互转换 64
4.4.12实验项目4-14:枚举类型 64
第5章 输入输出流 66
5.1知识要点 66
5.1.1流的含义 66
5.1.2I/O流类列表 67
5.1.3流对象 67
5.1.4输出控制 68
5.1.5文件流 68
5.2实验项目说明与实施方案 68
5.2.1实验项目说明 68
5.2.2实验实施方案 69
5.3实验项目案例分析 69
实验项目5-1:流文件(二进制文件)的读取与写入 69
5.4实验项目汇编 75
5.4.1实验项目5-2:输入输出的格式控制 75
5.4.2实验项目5-3:文本文件的读取与写人 76
第6章 函数基础 77
6.1知识要点 77
6.1.1函数的定义 77
6.1.2内联函数 77
6.1.3函数调用及参数传递 77
6.1.4函数的嵌套调用 78
6.1.5函数默认参数 78
6.1.6函数重载 78
6.1.7对象的生存期 78
6.2实验项目说明与实施方案 78
6.2.1实验项目说明 79
6.2.2实验实施方案 80
6.3实验项目案例分析 80
6.3.1实验项目6-1:函数的三种参数传递方式——传值、传指针和传引用 80
6.3.2实验项目6-2:函数在递归方法中的应用 85
6.4实验项目汇编 89
6.4.1实验项目6-3:无参函数的定义与调用 89
6.4.2实验项目6-4:带参函数的定义与调用 89
6.4.3实验项目6-5:参数带默认值的函数的定义与调用 90
6.4.4实验项目6-6:函数指针及参数为函数指针的函数 91
6.4.5实验项目6-7:函数重载 91
6.4.6实验项目6-8:局部变量、全局变量和静态变量 92
第7章 函数模板基础 93
7.1知识要点 93
7.1.1函数模板的定义 93
7.1.2函数模板实例化 93
7.2实验项目说明与实施方案 94
7.2.1实验项目说明 94
7.2.2实验实施方案 94
7.3实验项目案例分析 95
实验项目7-1:函数模板基础 95
7.4实验项目汇编 98
7.4.1实验项目7-2:显式函数模板实参 98
7.4.2实验项目7-3:函数模板实参的省略 99
第8章 结构体基础 101
8.1知识要点 101
8.2实验项目说明与实施方案 102
8.2.1实验项目说明 102
8.2.2实验实施方案 103
8.3实验项目案例分析 103
8.3.1实验项目8-1:结构体的更多细节 103
8.3.2实验项目8-2:结构体指针的更多细节 106
8.4实验项目汇编 108
8.4.1实验项目8-3:结构体的定义,对象的定义、赋值和基本访问 108
8.4.2实验项目8-4:结构体的成员函数 109
8.4.3实验项目8-5:结构体成员的访问权限 109
8.4.4实验项目8-6:结构体相关练习 110
8.4.5实验项目8-7:结构体的运算符重载 110
第9章类 112
9.1知识要点 112
9.1.1抽象和封装 112
9.1.2类的基本概念 112
9.1.3构造函数与析构函数 113
9.1.4友元函数与友元类 114
9.2实验项目说明与实施方案 114
9.2.1实验项目说明 114
9.2.2实验实施方案 116
9.3实验项目案例分析 116
9.3.1实验项目9-1:类的更多细节 116
9.3.2实验项目9-2:构造函数和析构函数基础 119
9.4实验项目汇编 122
9.4.1实验项目9-3:类的定义,对象的定义、赋值和基本访问 122
9.4.2实验项目9-4:类的成员函数 122
9.4.3实验项目9-5:类成员的访问权限基础 123
9.4.4实验项目9-6:拷贝构造函数 123
9.4.5实验项目9-7:类的构造函数专题 124
9.4.6实验项目9-8:字符串的其他构造方法 124
9.4.7实验项目9-9:类的友元函数 125
9.4.8实验项目9-10:友元类 125
9.4.9实验项目9-11:类的静态成员 126
第10章 运算符重载 127
10.1知识要点 127
10.1.1运算符重载的含义 127
10.1.2运算符重载的形式 127
10.1.3运算符重载为成员函数和友元函数 127
10.1.4不能重载的运算符 128
10.1.5内置操作符的规则 128
10.2实验项目说明与实施方案 128
10.2.1实验项目说明 128
10.2.2实验实施方案 129
10.3实验项目案例分析 130
10.3.1实验项目10-1:输入输出流运算符的重载 130
10.3.2实验项目10-2:其他运算符的重载 134
10.4实验项目汇编 139
10.4.1实验项目10-3:类的运算符重载基础 139
10.4.2实验项目10-4:逻辑运算符的重载 140
第11章 类的多态与重用 141
11.1知识要点 141
11.1.1类的组合 141
11.1.2类的继承 141
11.1.3类继承的访问权限 141
11.1.4类继承的构造函数与析构函数 142
11.1.5类继承的同名成员 142
11.1.6虚继承 142
11.1.7虚函数 143
11.1.8纯虚函数 143
11.2实验项目说明与实施方案 144
11.2.1实验项目说明 144
11.2.2实验实施方案 145
11.3实验项目案例分析 146
11.3.1实验项目11-1:虚函数 146
11.3.2实验项目11-2:虚基类及其多继承 152
11.4实验项目汇编 157
11.4.1实验项目11-3:类的组合 157
11.4.2实验项目11-4:类继承基础 158
11.4.3实验项目11-5:类继承的访问权限 159
11.4.4实验项目11-6:多继承 160
11.4.5实验项目11-7:纯虚函数与抽象类 160
第12章 类模板 161
12.1知识要点 161
12.1.1类模板的定义 161
12.1.2类模板的形参 161
12.1.3类模板的实例化 162
12.2实验项目说明与实施方案 162
12.2.1实验项目说明 162
12.2.2实验实施方案 163
12.3实验项目案例分析 163
实验项目12-1:模板类的继承与派生 163
12.4实验项目汇编 169
12.4.1实验项目12-2:类模板的定义与简单实现 169
12.4.2实验项目12-3:类模板的实例化 170
第13章C++标准库基础 171
13.1知识要点 171
13.1.1编译预处理和多文件组织 171
13.1.2泛型程序设计概述 172
13.1.3C+++中的容器类 172
13.1.4标准库中的迭代器 173
13.1.5C+++标准类库中的通用算法概述 174
13.2实验项目说明与实施方案 174
13.2.1实验项目说明 174
13.2.2实验实施方案 176
13.3实验项目案例分析 176
13.3.1实验项目13-1:链表基础 176
13.3.2实验项目13-2:C+++标准库的常规线性容器——链表和向量 185
13.4实验项目汇编 193
13.4.1实验项目13-3:多文件工程与编译预处理命令 193
13.4.2实验项目13-4:C+++标准库的特殊次序存取容器——栈、队列和双端队列 194
13.4.3实验项目13-5:C+++标准库的非线性容器 196
参考文献 199