第一篇 基础篇 2
第1章 Visual C++集成开发环境 2
1.1 Visual C++ 6.0概述 2
1.2安装Visual C++ 6.0集成开发环境 2
1.3 Visual C++ 6.0界面介绍 5
1.3.1工作区窗口和输出窗口 6
1.3.2菜单栏和工具栏 7
1.3.3编辑区 7
1.3.4联机帮助 7
1.3.5第一个程序 8
1.3.6Visual C++中的文件扩展名 9
1.4小结 10
1.5习题 10
第2章MFC与应用程序框架 11
2.1微软基础类库MFC 11
2.1.1 MFC概述 11
2.1.2 MFC类库结构 11
2.2 MFC应用程序框架分析 12
2.2.1入口函数 12
2.2.2 InitInstanceO函数 14
2.2.3应用类RunO函数 15
2.2.4消息映射表 16
2.2.5 MFC消息分类 17
2.3小结 18
2.4习题 18
第3章C++语言基础 19
3.1一个简单的C+++程序 19
3.1.1创建一个空的工程 19
3.1.2添加C++++源文件 20
3.1.3添加代码 21
3.1.4编译并运行程序 22
3.2 C+++的基本数据类型及数据 22
3.2.1基本数据类型 23
3.2.2变量 23
3.2.3常量 24
3.3 C+++的表达式及运算符 25
3.3.1表达式 25
3.3.2运算符 25
3.3.3运算符的优先级 28
3.4 C+++的控制语句 29
3.4.1 C++++的输入和输出 29
3.4.2选择语句 30
3.4.3循环语句 34
3.4.4其他语句 37
3.5综合应用 38
3.6小结 39
3.7习题 40
第4章 C++的面向对象 41
4.1类与对象 41
4.1.1面向对象思想 41
4.1.2类的声明 42
4.1.3成员函数的定义 43
4.1.4类与对象的关系 43
4.1.5对象的声明和实例化 43
4.1.6构造函数和析构函数 45
4.2 C+++类的继承和派生 46
4.2.1派生类的声明 47
4.2.2派生类的继承方式 47
4.2.3单一继承和多重继承 50
4.3 C+++的多态性 51
4.3.1多态的分类 51
4.3.2运算符重载 51
4.3.3虚函数 52
4.3.4纯虚函数 53
4.4综合应用 55
4.5小结 56
4.6习题 57
第5章 菜单栏、工具栏和状态栏 58
5.1菜单的分类 58
5.2使用下拉式菜单 59
5.2.1创建下拉式菜单 59
5.2.2添加菜单项 60
5.2.3移动和删除菜单项 62
5.2.4添加一个菜单命令处理函数 62
5.2.5启用和禁用菜单项 63
5.2.6标记菜单项 64
5.2.7添加快捷键 64
5.3使用弹出式菜单 65
5.4工具栏的使用 67
5.4.1为默认工具栏添加按钮 67
5.4.2移动和删除工具栏按钮 68
5.4.3添加按钮消息响应函数 68
5.4.4为工具栏按钮添加提示文字 69
5.4.5禁用或启用工具栏按钮 69
5.5状态栏的使用 70
5.5.1状态栏概述 70
5.5.2修改默认的状态栏 70
5.6小结 72
5.7习题 72
第6章 窗口 73
6.1消息窗口 73
6.2窗口的创建与使用 74
6.2.1窗口的分类 74
6.2.2创建模态窗口 75
6.2.3创建窗口类 77
6.2.4向程序中添加代码 79
6.2.5消息响应函数 80
6.3非模态窗口 81
6.3.1创建工程并添加窗口 81
6.3.2添加窗口类 82
6.3.3修改菜单栏并添加菜单消息响应函数 82
6.3.4添加代码 83
6.4通用窗口 85
6.4.1文件窗口 85
6.4.2【颜色】窗口 87
6.4.3【字体】窗口 87
6.4.4查找和替换窗口 88
6.4.5打印窗口 89
6.5小结 90
6.6习题 90
第7章 控件 91
7.1 Visual C+++中的标准控件 91
7.1.1控件概述 91
7.1.2创建控件 91
7.2按钮控件 93
7.2.1单选按钮 94
7.2.2复选框 95
7.3静态控件 96
7.3.1静态文本 96
7.3.2图片 97
7.3.3分组框 98
7.4列表框控件与组合框控件 98
7.4.1列表框 98
7.4.2组合框 103
7.5树形控件与列表视图控件 106
7.5.1树形控件 107
7.5.2列表视图控件 111
7.6滑块控件与进度条控件 115
7.6.1滑块控件 115
7.6.2进度条控件 116
7.7小结 118
7.8习题 119
第8章M FC常用类 120
8.1字符串类 120
8.1.1创建字符串对象 120
8.1.2 CString类的成员函数 121
8.1.3字符串的大小写转换 121
8.1.4字符串的连接 122
8.1.5字符串的比较 123
8.1.6字符串的提取 123
8.1.7字符串的查找 124
8.1.8字符串的移除 126
8.1.9 CString类的格式化 127
8.1.10 CString类的类型转换 127
8.2日期、时间类 128
8.2.1 CTime类 128
8.2.2 CTimeSpan类 129
8.2.3计时器 131
8.3文件操作类 133
8.3.1文件的打开和关闭 133
8.3.2文件的读写 136
8.3.3文件的定位 137
8.3.4文件的状态 138
8.4异常类 139
8.4.1异常类简介 139
8.4.2文件异常操作 139
8.4.3捕获异常 140
8.5小结 141
8.6习题 142
第9章 多媒体技术 143
9.1图像处理技术 143
9.1.1 BMP文件结构 143
9.1.2在程序中显示BMP文件 145
9.1.3在程序中显示JPEG和GIF文件 147
9.2音频媒体 152
9.2.1播放WAVE资源 152
9.2.2播放WAVE文件 155
9.2.3音量控制实现原理 155
9.2.4音量调节器实例 157
9.3视频媒体 162
9.3.1播放AVI文件 163
9.3.2播放Flash文件 166
9.4小结 169
9.5习题 170
第10章DLL的开发与调用 171
10.1 DLL的基础知识 171
10.1.1 DLL与LIB 171
10.1.2 DLL与EXE 172
10.1.3 Viisual C++++6.0中可实现的DLL 173
10.1.4 DLL的动态链接方法 174
10.1.5 DLL文件构成 175
10.2 Win32 DLL的开发与动态链接 175
10.2.1开发导出函数的Win32 DLL 175
10.2.2从DLL中导出函数 177
10.2.3运行时动态链接DLL 178
10.2.4加载时动态链接DLL 180
10.2.5调试DLL程序 182
10.2.6使用Depends工具查看DLL的信息 184
10.2.7创建导出类的Win32 DLL 185
10.2.8链接DLL的导出类 187
10.3 WC常规DLL的开发与链接 188
10.3.1开发使用MFC类库的MFC常规DLL 188
10.3.2 DLL的入/出口函数 190
10.3.3链接MFC常规DLL 191
10.4 WC扩展DLL的开发与链接 193
10.4.1开发扩展MFC类的MFC扩展DLL 193
10.4.2链接MFC扩展DLL 197
10.5小结 200
10.6习题 200
第11章 文档和视图 201
11.1文档/视图结构简介 201
11.1.1文档/视图结构概述 201
11.1.2文档/视图结构分类 202
11.2文档/视图结构应用程序框架分析 203
11.2.1创建单文档应用程序框架 203
11.2.2单文档应用程序的执行过程 205
11.2.3程序框架中的主要类及相互关系 206
11.2.4多文档应用程序框架 207
11.3切分窗口与多视 208
11.3.1动态切分窗口 209
11.3.2静态切分窗口 210
11.3.3一档多视 212
11.4在视图窗口中显示网页 213
11.5小结 216
11.6习题 216
第12章 数据库编程 217
12.1数据库基础 217
12.2安装SQL Server 2000 218
12.3使用SQL Server 2000 220
12.4结构化查询语言 222
12.4.1 SQL语言的分类 222
12.4.2 SQL语言的数据类型 223
12.4.3 SQL语句 223
12.5数据库开发技术简介 226
12.5.1 ODBC技术 226
12.5.2 DAO技术 226
12.5.3 ADO技术 227
12.6 ODBC数据库编程 227
12.6.1设置ODBC数据源 227
12.6.2连接数据库 228
12.6.3记录集的建立和关闭 230
12.6.4添加、删除和修改记录 232
12.7使用ADO操作数据库 233
12.7.1 ADO基础 234
12.7.2 ADO编程方法 234
12.8使用ADO操作数据库实例 238
12.8.1 CDatabaseAccess类 238
12.8.2示例 248
12.9小结 252
12.10习题 252
第13章 多线程编程 253
13.1进程与线程 253
13.2线程的分类 253
13.3线程类 254
13.4线程的使用 256
13.4.1启用用户界面线程 256
13.4.2启用工作者线程 256
13.4.3用户界面线程 257
13.4.4工作者线程 260
13.5线程的终止 262
13.5.1正常终止线程 263
13.5.2异常终止线程 263
13.5.3线程的退出码 263
13.6线程的通信 264
13.6.1通信原理 264
13.6.2用户界面线程通信 266
13.7线程的同步 269
13.7.1同步访问对象 269
13.7.2使用信号量实现线程同步 271
13.7.3使用临界区对象实现线程同步 273
13.7.4使用互斥量对象实现线程同步 276
13.7.5使用事件对象实现线程同步 278
13.8小结 281
13.9习题 281
第14章Winsock网络通信开发 282
14.1网络通信与WinSock基础 282
14.1.1 WinSock的基本概念 282
14.1.2 TCP/IP协议与WinSock 282
14.1.3 WinSock通信与C/S结构 283
14.1.4 MFC中WinSock的封装类 284
14.1.5 WinSock网络编程的常用术语 285
14.2无连接通信开发 286
14.2.1 Socket无连接通信机制 286
14.2.2主要功能函数介绍 287
14.2.3无连接通信接收端的实现 290
14.2.4无连接通信发送端的实现 293
14.3面向连接通信开发 295
14.3.1 Socket面向连接通信机制 295
14.3.2主要功能函数 297
14.3.3面向连接通信服务器端的实现 298
14.3.4面向连接通信客户端的实现 300
14.4 Socket非阻塞模式及开发 302
14.4.1 CSocket阻塞模式 303
14.4.2 CSocket非阻塞模式——事件处理 303
14.4.3非阻塞模式服务器端的实现 305
14.4.4非阻塞模式客户端的实现 308
14.5小结 312
14.6习题 313
第二篇 实例篇 316
第15章 人事管理系统 316
15.1应用背景 316
15.2系统设计 316
15.2.1模块设计 316
15.2.2程序分析 317
15.3数据库设计 317
15.3.1设计表 318
15.3.2设计触发器 322
15.4代码实现 325
15.4.1准备工作 325
15.4.2登录模块 326
15.4.3文档模块 331
15.4.4左窗口类 334
15.4.5右窗口类 340
15.4.6人员档案管理模块 341
15.4.7其他模块 347
15.4.8最后的修改 349
15.5小结 349
第16章 图书信息管理系统 350
16.1应用背景 350
16.2系统设计 350
16.2.1模块设计 350
16.2.2程序分析 351
16.3数据库设计 352
16.3.1设计表 352
16.3.2设计触发器 353
16.4代码实现 353
16.4.1准备工作 353
16.4.2登录模块 354
16.4.3文档模块 359
16.4.4用户管理模块 360
16.4.5图书信息管理 369
16.4.6图书借阅管理 378
16.4.7最后的修改 384
16.5小结 385
第17章 笔试宝典 386
17.1算法的编程实现 386
17.1.1请设计并编程实现第K大的素数问题 386
17.1.2请设计并编程实现一个斐波拉契数列 387
17.1.3请设计并编程实现螺旋矩阵算法 388
17.2逻辑推理 389
17.2.1诚实国和说谎国 389
17.2.2黑球和白球 390
17.2.3种树 390
17.3计算推理 390
17.3.1称水 390
17.3.2蜗牛爬井口 390
17.3.3下一个数是多少 391
17.4小结 391
附录A 常见C+++函数参考 392
附录B 调试技术 399