第1章 程序设计概述 1
1.1 基本概念 1
1.2 数据的输入与输出 6
1.2.1 数据输出 6
1.2.2 数据输入 6
1.2.3 一个简单的C++程序 7
1.3 C++程序的结构 8
1.4 程序运行的流程 9
1.5 C++程序的上机环境——VC++ 6.0集成开发环境简介 9
第2章 运算符和表达式 14
2.1 简单数据类型 14
2.2 变量 15
2.2.1 标识符命名 15
2.2.2 变量的声明与初始化 16
2.2.3 使用变量时的注意事项 16
2.3 算术运算符与算术表达式 18
2.3.1 基本算术运算符 18
2.3.2 算术表达式和运算符的优先级与结合性 18
2.4 赋值运算符与赋值表达式 18
2.4.1 赋值运算符 19
2.4.2 赋值过程中的类型转换 19
2.4.3 复合的赋值运算符 20
2.4.4 赋值表达式 20
2.5 自增1和自减1运算符 22
2.6 关系、逻辑和条件运算符 23
2.6.1 关系运算和关系表达式 23
2.6.2 逻辑常量和逻辑变量 24
2.6.3 条件运算和条件表达式 28
2.7 位运算符 29
2.7.1 逻辑位运算符 30
2.7.2 移位运算符 31
2.8 逗号运算符与逗号表达式 32
2.9 常量 34
2.9.1 整型常量 35
2.9.2 字符常量 35
2.9.3 字符串常量 36
第1、2章自测练习题 37
第3章 程序设计初步 38
3.1 在输出流中使用控制符 38
3.2 算法概述 40
3.3 顺序结构的程序 45
3.4 分支选择结构与if语句 45
3.5 if语句的嵌套 47
3.6 多分支选择结构与switch语句 48
3.7 循环结构和循环语句 52
3.7.1 用while循环控制语句构成循环 52
3.7.2 用do-while循环控制语句构成循环 53
3.7.3 用for循环控制语句构成循环 54
3.7.4 循环结构应用举例 55
3.8 循环的嵌套 58
3.9 流程控制的转移 61
3.9.1 continue语句 61
3.9.2 break语句 62
3.9.3 goto语句 62
3.10 结构化程序的编写 63
第3章自测练习题 68
第4章 数组和指针 70
4.1 一维数组的定义和引用 70
4.1.1 一维数组的定义 70
4.1.2 一维数组元素的引用 71
4.1.3 一维数组的初始化 71
4.1.4 对数组元素的赋值 72
4.2 二维数组的定义和引用 79
4.2.1 二维数组的定义 79
4.2.2 二维数组元素的引用 79
4.2.3 二维数组的初始化 80
4.2.4 二维数组的应用举例 80
4.3 字符数组与字符串简介 82
4.3.1 字符数组的定义 83
4.3.2 字符数组的输出和输入 83
4.3.3 字符串处理函数 86
4.4 指针与指针变量 89
4.4.1 地址和指针的概念 89
4.4.2 指针值的算术运算 92
4.4.3 指针类型的强制转换 92
4.4.4 指针运算的优先级 93
4.5 指针与数组 94
4.5.1 用指针操作一维数组 96
4.5.2 用指针操作二维数组 97
4.5.3 用指针数组操作二维数组 100
4.6 指针与字符串 101
第4章自测练习题 105
第5章 函数及其调用 107
5.1 概述 107
5.2 定义函数的一般形式 109
5.2.1 无参函数 109
5.2.2 有参函数 109
5.3 函数参数与函数的值 110
5.3.1 调用函数时的数据传递 110
5.3.2 函数返回值 110
5.4 函数的调用 111
5.5 函数的嵌套调用 112
5.6 函数的递归调用 113
5.7 数组作为函数参数 116
5.7.1 数组元素作函数实参 116
5.7.2 二维数组名作函数参数 118
5.8 指针与函数 119
5.8.1 指针作为函数的参数 119
5.8.2 返回指针值的函数——指针函数 120
5.8.3 指向函数的指针——函数指针 121
5.9 指针与引用 124
5.10 实型数据在结构化编程中的使用 125
5.10.1 强制类型转换运算符 126
5.10.2 实型常量 127
5.10.3 宏常量 127
5.10.4 CONST常量 128
5.11 变量的存储类型 140
5.11.1 存储类型 140
5.11.2 全局变量 141
5.11.3 局部变量(自动变量) 142
5.11.4 静态变量 143
5.11.5 静态函数 145
5.12 预处理命令 147
5.12.1 宏定义命令#define 147
5.12.2 文件包含(嵌入)命令#include 150
第5章自测练习题 150
第6章 类的封装性 153
6.1 结构体 153
6.1.1 结构体类型的定义 153
6.1.2 结构体变量 154
6.1.3 结构体数组 156
6.2 从结构体到类 159
6.3 类的声明和对象的创建 161
6.4 成员函数 162
6.5 对象指针 166
6.6 常成员 169
6.7 对象数组 170
6.8 对象引用 171
第6章自测练习题 175
第7章 类的数据共享 178
7.1 操作符重载 178
7.1.1 操作符的重载概述 178
7.1.2 重载为成员函数 178
7.2 友元 180
7.2.1 重载为友元函数 181
7.2.2 友元类 182
7.3 构造函数 185
7.3.1 构造函数的定义 186
7.3.2 重载构造函数 187
7.4 析构函数 190
7.5 局部对象和全局对象 194
7.6 对象的赋值和复制 196
7.6.1 对象的相互赋值 196
7.6.2 对象的复制 197
7.7 静态成员 204
7.7.1 静态成员变量 204
7.7.2 静态成员函数 205
7.8 对象成员 207
第7章自测练习题 210
第8章 类的继承性 212
8.1 继承与派生的概念 212
8.2 访问控制 213
8.2.1 公有派生 214
8.2.2 保护派生 216
8.2.3 私有派生 219
8.3 多重继承下派生类的构造函数与析构函数 226
8.4 虚基类 232
8.4.1 虚基类的定义 232
8.4.2 虚基类的引入 232
8.4.3 虚基类构造函数执行顺序示例 233
第8章自测练习题 236
第9章 类的多态性 239
9.1 多态性 239
9.2 虚函数 244
9.3 纯虚函数 252
9.4 抽象类 255
第9章自测练习题 258
第10章 模板和异常处理 262
10.1 模板 262
10.1.1 函数模板 263
10.1.2 类模板 266
10.2 异常处理 269
第10章自测练习题 277
第11章 可视化编程基础 279
11.1 Windows应用程序的创建 279
11.1.1 从过程驱动到事件驱动 279
11.1.2 Windows程序设计的两种方式 280
11.2 MFC类库简介 284
第11章自测练习题 295
第12章 资源在Windows中的应用 297
12.1 对话框 297
12.1.1 对话框简介 297
12.1.2 AppWizard和C1assWizard 298
12.2 位图和图标 305
12.3 菜单 316
第12章自测练习题 321
第13章 综合应用 323
13.1 数据库编程 323
13.2 信息管理系统的设计 331
实验1 熟悉Visual C++ 6.0的运行环境 383
实验2 运算符及表达式 385
实验3 程序设计初步 387
实验4 数组和指针 390
实验5 函数调用 393
实验6 类的封装性 395
实验7 类的数据共享 398
实验8 类的继承性 401
实验9 类的多态性 404
课程实践 含数据录入、修改、删除、查询等的综合实例设计 406
附录A ASCII码字符集 407
附录B 运算符的优先级和结合性 408
附录C 输出函数中的格式控制符及修饰符 409
参考文献 411