第1部分 实用教程 1
第1章 基本C++语言 1
1.1 C++程序结构 1
1.1.1 C++概述 1
1.1.2 C++程序创建 1
1.1.3 C++代码结构 4
1.2 数据类型和基本输入/输出 5
1.2.1 基本数据类型 5
1.2.2 字面常量 7
1.2.3 变量及其命名规则 9
1.2.4 标识符常量和枚举 12
1.2.5 基本输入/输出 13
1.3 运算符和表达式 15
1.3.1 算术运算符 15
1.3.2 赋值运算符 16
1.3.3 数据类型转换 18
1.3.4 关系运算符 19
1.3.5 逻辑运算符 20
1.3.6 位运算符 20
1.3.7 条件运算符 21
1.3.8 sizeof运算符 21
1.3.9 逗号运算符 21
1.3.10 自增和自减 22
1.4 基本语句 23
1.4.1 顺序语句和块 23
1.4.2 选择结构语句 24
1.4.3 循环结构语句 27
1.4.4 break和continue语句 30
1.5 函数和预处理 31
1.5.1 函数的定义和调用 31
1.5.2 函数的参数传递 33
1.5.3 带默认形参值的函数 34
1.5.4 递归函数 35
1.5.5 内联函数 37
1.5.6 函数重载 38
1.5.7 作用域和可见性 39
1.5.8 存储类型 40
1.5.9 编译预处理 42
1.6 数组 46
1.6.1 一维数组 46
1.6.2 二维数组 48
1.6.3 字符数组 50
1.6.4 数组与函数 51
1.7 指针和引用 52
1.7.1 指针和指针变量 52
1.7.2 &和*运算符 53
1.7.3 指针运算 54
1.7.4 指针和数组 55
1.7.5 指针和函数 57
1.7.6 new和delete 61
1.7.7 引用和引用传递 61
1.8 字符指针和字符串处理 63
1.8.1 字符指针 63
1.8.2 带参数的main函数 64
1.8.3 字符串处理函数 64
1.9 结构、共用和自定义 66
1.9.1 结构体 66
1.9.2 结构体数组 69
1.9.3 结构体与函数 70
1.9.4 结构体指针 70
1.9.5 共用体 71
1.9.6 使用typedef 72
第2章 C++面向对象程序设计 74
2.1 类和对象 74
2.1.1 类的定义 74
2.1.2 对象的定义 76
2.1.3 类作用域和成员访问权限 76
2.1.4 构造函数和析构函数 78
2.1.5 对象赋值和复制 80
2.1.6 浅复制和深复制 82
2.1.7 对象成员的初始化 83
2.2 数据共享和成员特性 85
2.2.1 静态成员 85
2.2.2 友元 89
2.2.3 常类型 93
2.2.4 this指针 96
2.3 继承和派生 97
2.3.1 单继承 98
2.3.2 派生类的构造函数和析构函数 100
2.3.3 多继承 101
2.3.4 虚基类 101
2.4 多态和虚函数 104
2.4.1 多态概述 105
2.4.2 虚函数 105
2.4.3 纯虚函数和抽象类 107
2.5 运算符重载 108
2.5.1 运算符重载函数 108
2.5.2 运算符重载限制 109
2.5.3 友元重载 110
2.5.4 转换函数 112
2.5.5 赋值运算符的重载 113
2.5.6 自增自减运算符的重载 114
2.6 输入/输出流 116
2.6.1 流类和流对象 116
2.6.2 流的格式控制和错误处理 117
2.6.3 使用输入/输出成员函数 120
2.6.4 提取和插入运算符重载 122
2.6.5 文件流及其处理 123
第3章 MFC基本应用程序的建立 131
3.1 Windows编程基础 131
3.1.1 C++的Windows编程 131
3.1.2 Windows编程特点 135
3.1.3 Windows基本数据类型 136
3.2 创建MFC应用程序 137
3.2.1 设计一个MFC程序 137
3.2.2 理解程序代码 138
3.2.3 使用MFC AppWizard 139
3.2.4 创建文档应用程序 140
3.3 MFC应用程序框架 143
3.3.1 项目文件和配置 143
3.3.2 项目管理和项目工作区 144
3.3.3 MFC程序类结构 145
3.4 消息和消息映射 146
3.4.1 消息类别 147
3.4.2 消息映射和类向导 147
3.4.3 消息映射代码框架 149
3.4.4 键盘和鼠标消息 150
3.4.5 其他窗口消息 151
3.5 Visual C++常用操作 152
3.5.1 单类的添加和删除 152
3.5.2 成员的添加和删除 153
3.5.3 文件打开和成员定位 154
3.5.4 使用向导工具栏 154
第4章 窗口和对话框 156
4.1 框架窗口 156
4.1.1 主框架窗口和文档窗口 156
4.1.2 窗口样式的设置 157
4.1.3 窗口状态的改变 160
4.2 创建对话框 162
4.2.1 创建对话框应用程序 162
4.2.2 资源和资源标识 163
4.2.3 添加对话框资源 164
4.2.4 设置对话框属性 165
4.2.5 添加和布局控件 166
4.2.6 创建对话框类 169
4.2.7 映射WM_INITDIALOG消息 170
4.3 使用对话框 171
4.3.1 在程序中调用对话框 171
4.3.2 使用无模式对话框 174
4.4 通用对话框和消息对话框 176
4.4.1 通用对话框 176
4.4.2 消息对话框 177
第5章 常用控件 179
5.1 创建和使用控件 179
5.1.1 控件的创建方式 179
5.1.2 控件的消息及消息映射 181
5.1.3 控件类和控件对象 184
5.1.4 DDX和DDV 186
5.2 静态控件和按钮 187
5.2.1 静态控件 187
5.2.2 按钮 188
5.2.3 示例:制作问卷调查 189
5.3 编辑框和旋转按钮控件 192
5.3.1 编辑框的属性和通知消息 192
5.3.2 编辑框的基本操作 193
5.3.3 旋转按钮控件 194
5.3.4 示例:用对话框输入学生成绩 195
5.4 列表框 198
5.4.1 列表框的样式和消息 198
5.4.2 列表框的基本操作 199
5.4.3 示例:基本课程信息 200
5.5 组合框 203
5.5.1 组合框的样式类型和消息 203
5.5.2 组合框常见操作 204
5.5.3 示例:课程号和课程信息 205
5.6 进展条和日历控件 209
5.6.1 进展条 209
5.6.2 DTP控件 210
5.6.3 计时器 210
5.6.4 示例:自动时间显示 211
5.7 滚动条和滑动条 212
5.7.1 滚动条 212
5.7.2 滑动条 213
5.7.3 示例:调整对话框背景颜色 215
第6章 基本界面元素 218
6.1 图标和光标 218
6.1.1 图像编辑器 218
6.1.2 图标 219
6.1.3 光标 222
6.2 菜单 224
6.2.1 菜单一般规则 224
6.2.2 更改应用程序菜单 225
6.2.3 使用键盘快捷键 226
6.2.4 菜单的编程控制 227
6.2.5 使用快捷菜单 230
6.3 工具栏 232
6.3.1 使用工具栏编辑器 232
6.3.2 工具按钮和菜单项相结合 234
6.3.3 多个工具栏的使用 234
6.4 状态栏 237
6.4.1 状态栏的定义 237
6.4.2 状态栏的常用操作 237
6.4.3 改变状态栏的风格 238
6.5 交互对象的动态更新 239
第7章 文档和视图 241
7.1 文档模板 241
7.1.1 文档模板类 241
7.1.2 文档模板字符串资源 242
7.2 文档序列化 243
7.2.1 文档序列化过程 243
7.2.2 CArchive类和序列化操作 245
7.2.3 使用简单数组集合类 247
7.2.4 类对象序列化 250
7.2.5 使用文件对话框和CFile类 254
7.2.6 CFile和CArchive类之间的关联 258
7.3 一般视图框架 258
7.3.1 CEditView和CRichEdit View 259
7.3.2 CFormView 259
7.3.3 CHtmlView 263
7.3.4 CScrollView 263
7.4 列表视图框架 263
7.4.1 图像列表 263
7.4.2 列表视图类型和样式 264
7.4.3 列表项的基本操作 265
7.4.4 列表控件的消息 266
7.4.5 示例:列表显示当前的文件 267
7.5 树视图框架 270
7.5.1 树控件及其样式 270
7.5.2 树控件的常用操作 271
7.5.3 树视图控件的消息 272
7.5.4 示例:遍历本地文件夹 273
7.6 文档视图结构 275
7.6.1 文档与视图的相互作用 275
7.6.2 应用程序对象指针的互调 276
7.6.3 切分窗口 278
7.6.4 一档多视 280
第8章 图形和文本 286
8.1 概述 286
8.1.1 设备环境类 286
8.1.2 坐标映射 286
8.1.3 CPoint、CSize和CRect 288
8.1.4 颜色和颜色对话框 290
8.2 图形设备接口 291
8.2.1 使用GDI对象 291
8.2.2 画笔 292
8.2.3 画刷 293
8.2.4 位图 294
8.2.5 图形绘制 296
8.3 字体与文字处理 300
8.3.1 字体和字体对话框 300
8.3.2 常用文本输出函数 302
8.3.3 文本格式化属性 304
8.3.4 计算字符的几何尺寸 304
8.3.5 文档内容显示及其字体改变 305
第9章 数据库编程 308
9.1 数据库和ODBC操作 308
9.1.1 数据库基本概念 308
9.1.2 常用SQL语句 309
9.1.3 Visual C++操作数据库接口 310
9.2 MFC ODBC一般操作 311
9.2.1 MFC ODBC向导过程 311
9.2.2 ODBC数据表绑定更新 316
9.2.3 MFC的ODBC类 317
9.3 MFC ODBC应用编程 319
9.3.1 显示记录总数和当前记录号 319
9.3.2 编辑记录 321
9.3.3 字段操作 323
9.3.4 多表处理 326
9.4 ADO数据库编程 330
9.4.1 ADO编程的一般过程 331
9.4.2 Recordset对象使用 333
9.4.3 Command对象使用 335
第2部分 习题 336
第1章 基本C++语言 336
第2章 C++面向对象程序设计 345
第3章 MFC基本应用程序的建立 348
第4章 窗口和对话框 348
第5章 常用控件 349
第6章 基本界面元素 349
第7章 文档和视图 349
第8章 图形和文本 350
第9章 数据库编程 350
第3部分 上机操作指导 351
实验1 认识Visual C++6.0开发环境 351
实验内容 351
实验准备和说明 351
实验步骤 351
思考与练习 359
实验2 基本数据类型、表达式和基本语句 360
实验内容 360
实验准备和说明 360
实验步骤 360
思考与练习 363
实验3 数和预处理 363
实验内容 363
实验准备和说明 363
实验步骤 364
思考与练习 366
实验4 构造类型、指针和引用 366
实验内容 366
实验准备和说明 366
实验步骤 367
思考与练习 369
实验5 类和对象、继承和派生 369
实验内容 369
实验准备和说明 369
实验步骤 369
思考与练习 372
实验6 多态和虚函数、运算符重载 373
实验内容 373
实验准备和说明 373
实验步骤 373
思考与练习 377
实验7 输入/输出流库 377
实验内容 377
实验准备和说明 377
实验步骤 377
思考与练习 383
实验8 窗口、消息及调试 383
实验内容 383
实验准备和说明 383
实验步骤 383
思考与练习 388
实验9 对话框和按钮控件 389
实验内容 389
实验准备和说明 389
实验步骤 389
思考与练习 391
实验10 编辑框、列表框和组合框 391
实验内容 391
实验准备和说明 391
实验步骤 391
思考与练习 395
实验11 进展条、滚动条和滑动条 395
实验内容 395
实验准备和说明 395
实验步骤 396
思考与练习 400
实验12 基本界面元素 400
实验内容 400
实验准备和说明 400
实验步骤 400
思考与练习 404
实验13 数据、文档和视图 404
实验内容 404
实验准备和说明 404
实验步骤 404
思考与练习 404
实验14 图形和文本 405
实验内容 405
实验准备和说明 405
实验步骤 405
思考与练习 405
实验15 ADO数据库编程 406
实验内容 406
实验准备和说明 406
实验步骤 406
思考与练习 413
实验16 ODBC数据库编程 413
实验内容 413
实验准备和说明 413
实验步骤 414
思考与练习 420
第4部分 综合应用实习 421
题目1 学生成绩管理程序(C++版) 421
所需知识 421
难度级别 421
目的 421
要求 421
实现方法 421
题目2 学生学习成绩管理程序(MFC版) 427
所需知识 427
难度级别 427
目的 427
建议 427
要求 427
界面设计原则 427
方案 428
实现方法 429
第5部分 附录 434
附录A 运算符优先级和结合性 434
附录B 字符串类型和CString类 435
附录C 常用C++库函数及类库 439
附录D 匈牙利的命名规则 440