标题：VC++2008专题应用程序开发实例精讲
图书信息
作　者：张忠帅 编著
出 版 社： 电子工业出版社
出版时间： 2008-10-1
  
页　数： 472页
开　本： 16开
ISBN 9787121072635
定价：￥55.00元
宣传语
在实例功能说明部分，以图文的方式给出实例的功能说明及运行效果；
设计思想及相关技术部分给出该实例的设计思想及关键知识点；
程序实现及代码部分则详细说明了实例实现步骤及代码的详细解释；
实例总结部分对实例的关键技术及读者应注意的地方进行了归纳，便于读者在学习过程中举一反三。
内 容 简 介
全书从实用的角度出发，通过实例精讲的形式，详细介绍了VC++ 2008各种热门专题应用程序开发的方法与技巧。全书分6篇共25章，第1篇为VC++ 2008基础知识，简要介绍了C++编程基础、MFC编程基础及VC++ .NET平台与Windows编程；第2篇至第6篇为VC++ 2008专题应用程序开发实例，通过23个专题实例，详细深入地介绍了VC++ 2008各种领域的应用开发技术和技巧，具体包括数据库应用开发实例、网络与串口通信开发实例、多媒体应用开发实例和数字图像处理实例及游戏编程开发实例。
本书语言简洁，层次清晰，结构合理。重点突出了应用性和实用性两个基本原则。不但详细介绍了VC++ 2008各种领域的应用开发技术，而且提供了设计思路、关键技术与实现方案，侧重于程序设计思路和过程的介绍，并对实例的程序代码做了详细注释，有利于读者理解和巩固知识点。本书光盘中附有丰富的实例程序源代码，读者稍加修改，便可应用在自己的工作中或者用于完成自己的课题，物超所值。
本书适合普通高校计算机、自动化与电子技术等相关专业的大学生，以及从事相关程序开发工作的人员使用。
前 言
编写本书的目的
Microsoft Visual C++ 2008（以下简称VC++ 2008）是微软公司Visual Studio 2008开发套件中的一出重头戏。VC++ 2008中语言和库的新特点，使用户开发安全、可靠的应用程序比以前更容易。它既提供了功能强大而灵活的标准C++，又提供了适用于.NET框架下编程的强大的开发语言。
MFC（Microsoft Foundation Class Library）中的各种类结合起来构成了一个应用程序框架，它的目的就是让程序员在此基础上来建立Windows下的应用程序，这是一种相对于SDK来说更为简单的方法。因为总体上，MFC框架定义了应用程序的轮廓，并提供了用户接口的标准实现方法，程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。VC++ 2008提供了相应的工具来完成这个工作：解决方案资源管理器可以用来生成初步的框架文件（代码和资源等）；资源编辑器用于帮助直观地设计用户接口；ClassWizard用来协助添加代码到框架文件；最后进行编译，即可通过类库实现应用程序特定的逻辑。VC++ 2008仍然支持MFC，因此本书的程序都是用MFC开发的。
目前市场上关于VC++的书虽然很多，但都是基于2005及更旧版本的，介绍编程语言和基础原理的较多，介绍专题应用程序开发实例方面的却较少。该书的编写出版正好可以弥补这种不足。
本书内容安排
本书从工程实用的角度出发，针对目前最新版VC++ 2008系列，通过实例精讲的形式，详细介绍了VC++ 2008各种热门专题应用程序开发的方法与技巧。全书分6篇共25章，主要内容如下所述。
第1篇为基础知识，简要介绍了C++编程基础、MFC编程基础及VC++. NET平台与Windows编程，读者通过学习，可以了解一些.NET与Windows编程的知识。
第2篇至第6篇分别为数据库应用开发实例、网络与串口通信开发实例、多媒体应用开发实例、数字图像处理实例、游戏编程开发实例，通过覆盖5大热门专题领域的23个实例，详细介绍了利用VC++ 2008开发专题程序的设计思想和实现方法。这些实例基础、典型、实用，易学易懂，为读者提供了一个难得的学习途径。无论读者此前基础如何，选择本书，都将有较大收获和提高。
本书优势和特色
与同类型图书相比，本书主要具备如下的一些优势和特色。
（1）全书从工程实用的角度出发，通过23个专题实例，详细介绍了VC++ 2008各个领域的应用开发技术和技巧。
（2）实例典型实用，全面涵盖数据库开发、网络通信、多媒体应用、数字图像处理及游戏编程5大热门行业，使读者一本在手、职场无忧。
（3）本书不但提供了详细的设计思路与实现方案，而且对实例的所有程序代码都做了详细注释，有利于读者理解和巩固知识点。
（4）本书光盘中附有实例的程序源代码，读者稍加修改，便可应用于自己的工作或完成自己的课题，物超所值。
本书适合于高校计算机相关专业的大学生，以及从事VC++应用程序开发的科研人员使用。
本书主要由张忠帅编写，另外参与编写的人员还有张媛媛、赵磊磊、廖日坤、金镇、李宁宇、黄小惠、廖济林、庞丽梅、邱远彬、黄桂群、刘伟捷、黄乘传、黄小欢、黄小宽、唐清善、邱宝良、周克足、刘斌、李亚捷、李永怀、周卫东等，他们在资料收集、整理和技术支持方面也做了大量的工作，在此一并向他们表示感谢！
由于时间仓促，再加之作者的水平有限，书中难免存在一些不足之处，欢迎广大读者批评和指正。
编者
目 录
第1篇 VC++ 2008基础知识
第1章 C++编程基础 2
1.1 C++简介 2
1.1.1 ANSI/ISO标准 2
1.1.2 名称/标识符 3
1.1.3 使用扩展字符集的名称 3
1.1.4 命名空间 4
1.1.5 代码注释 4
1.1.6 标准库 5
1.2 数据类型 6
1.3 变量名 8
1.4 运算符和表达式 9
1.4.1 赋值运算符：将某个数据的值
1.4.1 赋给某个变量 10
1.4.2 关系运算符和关系表达式 10
1.4.3 逻辑运算符和逻辑表达式 10
1.5 const关键字 10
1.6 控制语句 12
1.6.1 if语句 12
1.6.2 嵌套的if语句 14
1.6.3 嵌套的if-else语句 20
1.6.4 switch语句 22
1.6.5 while语句 26
1.6.6 for语句 30
1.7 类 33
1.7.1 类的定义 33
1.7.2 类的继承 33
1.7.3 类的多态 34
1.7.4 运算符重载 38
1.8 流类库 39
1.9 模板 40
1.9.1 函数模板 40
1.9.2 特定模板函数 41
1.9.3 类模板 41
1.10 本章总结 42
第2章 MFC编程基础 43
2.1 MFC简介 43
2.1.1 MFC是一个编程框架 43
2.1.2 MFC的优点 45
2.2 MFC类库概念和组成 45
2.2.1 MFC基础类 45
2.2.2 宏和全局函数 46
2.2.3 CObject类的定义 46
2.2.4 应用程序框架 48
2.3 MFC和Win32 51
2.3.1 MFC Object和Windows 
1.4.1 Object的关系 51
2.3.2 Windows Object 53
2.3.3 Windows的注册 53
2.3.4 MFC窗口类CWnd 55
2.3.5 在MFC下创建一个窗口对象 57
2.3.6 MFC窗口的使用 58
2.3.7 设备描述表 59
2.3.8 设备描述表在MFC中的
1.4.1 实现 60
2.4 消息处理与映射 64
2.4.1 Windows消息分类 64
2.4.2 消息处理和消息映射 65
2.5 本章总结 69
第3章 VC++.NET平台与Windows
第3章 编程 70
3.1 .NET平台组成 70
3.2 .NET框架和运行环境 70
3.3 .NET程序语言 71
3.3.1 Visual Basic .NET 71
3.3.2 C++ With Managed Extention 72
3.3.3 C# 72
3.4 VC++ 2008系统配置 72
3.5 VC++ IDE的组成与使用 72
3.5.1 IDE组成元素 72
3.5.2 IDE用户环境 73
3.5.3 IDE的使用 73
3.6 工程和解决方案 74
3.6.1 定义一个工程 74
3.6.2 调试和发布程序 74
3.6.3 错误处理 75
3.7 VC++ 2008选项设置 75
3.8 创建和执行一个Windows程序 76
3.8.1 创建一个General程序 76
3.8.2 编译和执行一个General程序 77
3.9 创建一个Windows Form程序 77
3.10 本章总结 79
第2篇 数据库应用开发实例
第4章 酒店管理系统 82
4.1 实例功能说明 82
4.2 系统设计方案 82
4.2.1 客户信息管理功能设计 82
4.2.2 房间信息管理功能设计 84
4.2.3 查询功能设计 86
4.3 相关技术点播 87
4.4 系统实现与程序代码 89
4.4.1 订房信息管理功能实现 89
4.4.2 房间信息管理功能实现 92
4.4.3 查询功能实现 97
4.5 实例总结 98
第5章 人事管理系统 99
5.1 实例功能说明 99
5.2 系统设计方案 99
5.2.1 增加新员工功能设计 99
5.2.2 人事调动功能设计 100
5.2.3 查询功能设计 101
5.3 相关技术点播 101
5.4 系统实现与程序代码 105
5.4.1 增加新员工功能实现 105
5.4.2 人事调动功能实现 109
5.4.3 查询功能设计 112
5.5 实例总结 116
第6章 考勤管理系统设计 117
6.1 实例功能说明 117
6.2 系统设计方案 117
6.2.1 系统界面设计 117
6.2.2 系统信息管理模块 117
6.2.3 系统记录信息统计模块 119
6.2.4 数据库设计 120
6.3 相关技术点播 122
6.4 系统实现与程序代码 124
6.4.1 系统界面设计 124
6.4.2 系统信息管理模块 126
6.4.3 系统记录信息查询模块 127
6.5 实例总结 133
第7章 图书馆管理系统设计 134
7.1 实例功能说明 134
7.2 系统设计方案 134
7.2.1 系统模块设计 134
7.2.2 数据库设计 135
7.3 相关技术点播 136
7.4 系统实现与程序代码 138
7.4.1 主界面的实现 138
7.4.2 读者信息实现 139
7.4.3 书籍信息实现 141
7.4.4 借阅信息实现 150
7.4.5 还书界面实现 150
7.5 实例总结 151
第8章 仓库管理系统 152
8.1 实例功能说明 152
8.2 系统设计方案 152
8.2.1 系统设计目标 152
8.2.2 系统组成及功能 152
8.2.3 系统总体流程 153
8.2.4 数据库设计 153
8.3 相关技术点播 155
8.4 系统实现与程序代码 157
8.4.1 设备管理实现 157
8.4.2 设备查询实现 164
8.4.3 设备采购计划实现 167
8.5 实例总结 168
第3篇 网络与串口通信开发实例
第9章 服务器端应用程序模块 170
9.1 实例功能说明 170
9.2 设计思路分析 170
9.2.1 C/S工作原理 170
9.2.2 服务器工作流程图 170
9.3 相关技术点播 170
9.3.1 客户机/服务器模式简介 170
9.3.2 类CLisent与类CClient功能 172
9.4 程序实现与代码 175
9.4.1 新建项目 175
9.4.2 编辑对话框 175
9.4.3 添加新类CLisent和CClient 175
9.4.4 添加菜单 176
9.4.5 添加代码 177
9.5 实例总结 177
第10章 客户端应用程序模块 178
10.1 实例功能说明 178
10.2 设计思路分析 178
10.3 相关技术点播 178
10.4 程序实现与代码 182
10.4.1 新建项目 182
10.4.2 编辑对话框 182
10.4.3 添加新类CRequest 183
10.4.4 添加菜单 184
10.4.5 添加代码 185
10.5 实例总结 186
第11章 串口编程：调试精灵的
第11章 实现 187
11.1 实例功能说明 187
11.2 设计思路分析 187
11.3 关键技术与算法 188
11.3.1 MSComm控件 188
11.3.2 增收回显模块 190
11.4 程序实现与代码 190
11.4.1 使用AppWizard创建项目 190
11.4.2 加入串口通信功能 190
11.4.3 设置界面 191
11.4.4 程序主体类分析与实现 192
11.5 安装与配置方案 199
11.5.1 串口编程调试精灵安装
11.5.1 项目的设置 199
11.5.2 串口编程调试精灵安装项目
11.5.1 文件的设置 200
11.5.3 串口精灵测试 200
11.6 实例总结 200
第12章 串口实现双机互联 201
12.1 实例功能说明 201
12.2 设计思路分析 201
12.2.1 系统架构 201
12.2.2 系统流程 202
12.3 关键技术与算法 202
12.3.1 串口技术 202
12.3.2 串口通信协议设计 204
12.4 程序实现与代码 209
12.4.1 使用AppWizard创建项目 209
12.4.2 编写串口通信底层类 210
12.4.3 界面设计与实现 210
12.4.4 程序主体类的分析与实现 211
12.5 实例总结 221
第13章 GPS程序模块的实现 222
13.1 实例功能说明 222
13.2 设计思路分析 222
13.3 关键技术与算法 223
13.3.1 NMEA-0133协议 224
13.3.2 ODBC技术 225
13.4 程序实现与代码 226
13.4.1 创建并配置数据源 226
13.4.2 使用AppWizard创建项目 227
13.4.3 设置程序界面 227
13.4.4 程序主体类的分析与实现 228
13.5 调试方案 241
13.6 实例总结 241
第14章 PC与PDA数据交互
第14章 系统设计 242
14.1 实例功能说明 242
14.2 系统设计方案 242
14.2.1 设计原则 242
14.2.2 总体方案 242
14.3 相关技术点播 242
14.3.1 数据互传中的IExch 242
14.3.2 消息定义 243
14.3.3 注册表项 244
14.4 系统实现与程序代码 244
14.4.1 创建PDAComm系统目录
11.5.1 结构 244
14.4.2 使用ATL COM AppWizard
11.5.1 建立项目 244
14.4.3 实现IExch接口 244
14.4.4 实现COM库注册和卸载
11.5.1 函数 245
14.4.5 设计数据互传与转换共同
11.5.1 父类 248
14.4.6 设计数据互传与转换类 251
14.5 实例总结 256
第4篇 多媒体应用开发实例
第15章 CD播放器的实现 258
15.1 实例功能说明 258
15.2 设计思路分析 258
15.3 相关技术点播 259
15.4 程序实现与代码 260
15.4.1 新建项目 260
15.4.2 编辑对话框 260
15.4.3 添加新类CDAudio 261
15.4.4 添加消息处理函数 263
15.4.5 编译运行程序 271
15.5 实例总结 271
第16章 MIDI播放器的实现 272
16.1 实例功能说明 272
16.2 设计思路分析 272
16.3 相关技术点播 273
16.4 程序实现与代码 274
16.4.1 新建项目 274
16.4.2 编辑对话框 274
16.4.3 添加新类CMIDIPLAY 274
16.4.4 添加消息处理函数 276
16.4.5 编译运行程序 278
16.5 实例总结 278
第17章 借助DirectDraw实现水波
第14章 的模拟 279
17.1 实例功能说明 279
17.2 设计思路分析 279
17.3 相关技术点播 280
17.4 程序实现与代码 288
17.4.1 使用AppWizard创建项目 288
17.4.2 利用DirectDraw完成对
17.4.2 图形的加速 289
17.4.3 程序主要代码 290
17.5 实例总结 299
第18章 用VC++ 2008设计
第14章 屏幕抓图 300
18.1 实例功能说明 300
18.2 设计思路分析 300
18.3 相关技术点播 301
18.4 程序实现与代码 304
18.4.1 使用AppWizard创建项目 304
18.4.2 添加控件 305
18.4.3 程序实现代码 305
18.5 实例总结 318
第19章 实现自动连续播放多媒体 319
19.1 实例功能说明 319
19.2 设计思路分析 319
19.3 相关技术点播 320
19.4 程序实现与代码 323
19.4.1 使用AppWizard创建项目 323
19.4.2 添加控件 323
19.4.3 程序实现 324
19.5 实例总结 331
第20章 OpenGL视图中绘制三维
第20章 物体 332
20.1 实例功能说明 332
20.2 设计思路分析 332
20.3 相关技术点播 333
20.4 程序实现与代码 335
20.4.1 创建项目 335
20.4.2 新建文件 335
20.4.3 添加现有项 336
20.4.4 添加代码 336
20.5 实例总结 344
第5篇 数字图像处理实例
第21章 图像复原程序模块 346
21.1 图像复原的原理 346
21.2 图像复原的方法 351
21.2.1 逆滤波器方法——非约束复原 351
21.2.2 最小二乘类约束复原 352
21.2.3 非线性复原方法 352
21.3 逆滤波器方法——VC++程序实现 353
21.4 实例总结 363
第22章 图像的压缩编码程序 364
22.1 实例功能说明 364
22.2 图像压缩编码的技术 364
22.2.1 哈夫曼编码 365
22.2.2 行程编码 365
22.2.3 LZW编码 366
22.2.4 JPEG编码 366
22.3 哈夫曼编码的VC++实现 366
22.3.1 哈夫曼编码算法基础 367
22.3.2 VC++实现哈夫曼编码 367
22.4 实例总结 374
第23章 图像分割程序模块 375
23.1 图像分割原理 375
23.2 图像分割方法 375
23.2.1 基于幅度的图像分割 375
23.2.2 图像的区域分割 376
23.3 迭代求图像最佳分割阈值
21.3 算法的实现 376
23.3.1 算法与步骤 376
23.3.2 VC++实现 377
23.4 实例总结 387
第6篇 游戏编程开发实例
第24章 俄罗斯方块游戏设计 390
24.1 实例功能说明 390
24.2 设计思路分析 390
24.3 相关技术点播 392
24.4 游戏实现与程序代码 392
24.4.1 键盘与玩家操作方法 392
24.4.2 游戏循环结构 394
24.4.3 方块群的组成 396
24.4.4 游戏初始化 398
24.4.5 游戏控制 399
24.4.6 方块的移动 402
24.5 实例总结 403
第25章 太空射击游戏设计 404
25.1 实例功能说明 404
25.2 设计思路分析 404
25.3 游戏实现与程序代码 406
25.3.1 滚动背景的设计 406
25.3.2 敌机的产生与移动 406
25.3.3 子弹的产生 406
25.3.4 检测碰撞的方法 406
25.3.5 程序实现 407
25.4 实例总结 419
第26章 网络游戏外挂模块设计 420
26.1 实例功能说明 420
26.2 设计思路分析 420
26.2.1 网络游戏外挂程序的开发过程 420
26.2.2 本章游戏外挂模块程序的思路 421
26.3 相关技术点播 422
26.3.1 动作模拟技术 422
26.4 外挂的实现与程序代码 424
26.5 实例总结 434
附录A C++编程规范集粹 435
附录B Visual C++编程规范归纳 454