- 电子工业出版社
- 9787121155703
- 1-1
- 350620
- 16开
- 2012-01
- 516
- 计算机科学与技术(工学/理学)
- 本科 研究生(硕士、EMBA、MBA、MPA、博士)
内容简介
本书从最基本的概念出发,深入地讲解了使用Visual C++进行面向对象与可视化程序设计的基本原理与方法。全书共有10章,分别介绍了Visual Studio 2008开发环境、C++基础语法、C++面向对象、Win32编程、MFC基础、MFC文档视图、MFC对话框、网络编程、多线程、数据库应用程序。书中涉及了Win32和MFC编程方法:详细介绍了Win32和MFC应用程序设计机制;通过窗体创建来体验Windows程序运行机制;通过文档视图编程来体验MFC对文档视图架构的支持;通过网络编程来体验WinScok的使用;通过多线程编程来体验异步和并发编程方法;通过数据库编程来体验ADO编程方法。
本书重点突出、偏重应用,结合理论篇和实践篇对贯穿案例的讲解、剖析及实现,贯穿案例绘图室程序应用MFC框架,贯穿Visual C++应用开发的技术知识点,使读者加深对C++面向对象技术、Win32编程技术和MFC技术的应用,并迅速理解和掌握基于窗体的Windows编程知识,全面提高动手能力。
本书重点突出、偏重应用,结合理论篇和实践篇对贯穿案例的讲解、剖析及实现,贯穿案例绘图室程序应用MFC框架,贯穿Visual C++应用开发的技术知识点,使读者加深对C++面向对象技术、Win32编程技术和MFC技术的应用,并迅速理解和掌握基于窗体的Windows编程知识,全面提高动手能力。
目录
目 录
理论篇 1
第1章 C++编程概述 2
1.1 C++简介 4
1.1.1 C++历史 4
1.1.2 C++标准 4
1.1.3 C++特性 5
1.2 C++编程环境 5
1.2.1 主流开发工具 5
1.2.2 Visual Studio 6
1.2.3 联机帮助 7
1.3 第一个C++程序 7
1.4 输入/输出 9
小结 10
练习 11
第2章 C++基础 12
2.1 常量和变量 14
2.1.1 标识符 14
2.1.2 常量 14
2.1.3 变量 15
2.1.4 变量作用域 15
2.2 数据类型 16
2.2.1 基本内置类型 16
2.2.2 自定义类型 18
2.2.3 数据类型转换 18
2.3 运算符 20
2.3.1 算术运算符 21
2.3.2 比较运算符 22
2.3.3 逻辑运算符 23
2.3.4 位运算符 24
2.3.5 赋值运算符 26
2.3.6 条件运算符 26
2.3.7 sizeof运算符 27
2.3.8 运算符优先级 28
2.4 流程控制 28
2.4.1 分支结构 29
2.4.2 循环结构 35
2.4.3 转移语句 40
2.5 数组 43
2.5.1 数组概述 43
2.5.2 一维数组 43
2.5.3 二维数组 47
2.6 函数 49
2.6.1 函数的声明和定义 49
2.6.2 函数的返回 50
2.6.3 函数的调用和参数传递 50
2.6.4 内联函数 51
2.6.5 函数重载 52
2.7 指针 53
2.7.1 指针概述 53
2.7.2 指针的定义和初始化 53
2.7.3 指针的算术运算 55
2.7.4 指针作为函数参数 56
2.7.5 指针操作动态内存(new和delete) 58
2.8 引用 59
2.8.1 引用的定义和初始化 60
2.8.2 引用作为函数参数 61
2.8.3 引用和指针的区别 62
2.9 字符串 62
2.9.1 字符串和字符集概述 62
2.9.2 C风格的字符串定义 62
2.9.3 常用的字符串操作函数 63
小结 64
练习 65
第3章 C++面向对象 67
3.1 类与对象 69
3.1.1 面向对象的概念 69
3.1.2 类的定义 70
3.1.3 构造函数和类的实例化 75
3.1.4 析构函数 79
3.1.5 成员函数 81
3.1.6 内联成员函数 85
3.1.7 静态类成员 86
3.1.8 this指针 88
3.2 类继承 89
3.2.1 继承 89
3.2.2 派生类对象的构造 91
3.2.3 派生类对象的析构 93
3.3 虚函数和多态 97
3.3.1 虚函数 98
3.3.2 虚析构函数 99
3.3.3 纯虚函数和抽象基类 103
小结 105
练习 105
第4章 Win32编程 107
4.1 Windows编程基础 109
4.1.1 API与SDK 109
4.1.2 窗体与句柄 109
4.1.3 事件与消息 110
4.1.4 常用的Windows数据类型 111
4.1.5 国际化编程 111
4.1.6 Windows应用程序文件组成 113
4.2 源程序组成结构 113
4.2.1 WinMain函数 113
4.2.2 窗口函数 117
4.3 GDI绘图基础 122
4.3.1 GDI概述 122
4.3.2 设备描述表 122
4.3.3 绘图对象 123
4.3.4 GDI绘图 123
小结 130
练习 130
第5章 MFC基础 131
5.1 MFC概述 133
5.1.1 MFC简介 133
5.1.2 一个简单的MFC程序 133
5.1.3 MFC应用程序分析 135
5.1.4 MFC应用程序开发方法 136
5.2 MFC应用程序框架组成 137
5.2.1 MFC全局函数 137
5.2.2 MFC类体系 140
5.2.3 MFC消息映射 141
5.2.4 MFC应用程序类型 145
5.3 MFC主要类 146
5.3.1 根类CObject 146
5.3.2 应用程序体系结构类 147
5.3.3 可视对象类 149
5.4 MFC通用类 150
5.4.1 字符串类:CString 151
5.4.2 文件类:CFile 154
5.4.3 动态数组类 156
5.4.4 链表类 157
5.5 MFC绘图 159
5.5.1 MFC对GDI的支持 159
5.5.2 CDC类及其派生类 159
5.5.3 MFC绘图对象 162
5.5.4 图形绘制相关数据类型 164
小结 166
练习 166
第6章 MFC文档视图 168
6.1 文档/视图框架 170
6.1.1 文档/视图结构概述 170
6.1.2 单文档程序框架中的主要类 172
6.1.3 单文档程序中文档、视图对象的创建过程 174
6.1.4 文档类、视图类核心函数 175
6.1.5 文档/视图界面设计 176
6.2 菜单编程 177
6.2.1 菜单的概念 178
6.2.2 菜单的开发步骤 179
6.2.3 菜单的创建与编辑 179
6.2.4 菜单消息 182
6.2.5 菜单命令消息的处理 183
6.2.6 菜单更新消息的处理 185
6.2.7 为菜单项设置快捷键 187
6.2.8 弹出菜单的创建与使用 189
6.3 工具栏编程 191
6.3.1 工具栏CToolBar简介 192
6.3.2 编辑和创建工具栏 192
6.3.3 加载工具栏 194
6.3.4 工具栏命令处理 196
6.4 状态栏编程 197
6.4.1 状态栏CStatusBar简介 197
6.4.2 状态栏的创建 197
6.4.3 状态栏编程 199
6.5 文本编程 201
6.5.1 创建插入符 201
6.5.2 字符输入 203
6.6 串行化 206
6.6.1 串行化概述 206
6.6.2 文档/视图结构对串行化的支持 206
6.6.3 CArchive类 210
6.6.4 可串行化的类 213
6.6.5 CObArray和CObList对串行化的支持 215
小结 215
练习 216
第7章 MFC对话框 217
7.1 对话框基础知识 219
7.1.1 对话框种类 219
7.1.2 CDialog类 220
7.2 对话框创建和显示 221
7.2.1 创建对话框模板资源 221
7.2.2 模态对话框的创建和关闭 223
7.2.3 非模态对话框的创建和关闭 226
7.2.4 基于对话框的应用程序 228
7.3 标准控件与对话框 228
7.3.1 标准控件简介 229
7.3.2 对话框控件的创建 229
7.3.3 对话框控件成员变量 230
7.3.4 对话框数据交换与验证 231
7.3.5 对话框控件通知消息 236
小结 238
练习 239
第8章 网络编程 240
8.1 Windows网络编程基础 242
8.1.1 TCP/IP协议 242
8.1.2 Windows Sockets基础 244
8.1.3 客户/服务器模式 244
8.1.4 MFC对WinSock的支持 245
8.1.5 MFC网络编程方法 246
8.2 UDP通信编程 246
8.2.1 CAsyncSocket类UDP异步通信 247
8.2.2 创建CAsyncSocket类的派生类 247
8.2.3 创建套接字 250
8.2.4 UDP接收数据 254
8.2.5 UDP发送数据 256
8.3 TCP通信编程 258
8.3.1 CAsyncSocket类服务器端编程 258
8.3.2 CSocket类客户端编程 264
小结 269
练习 269
第9章 多线程 271
9.1 多线程编程基础 273
9.1.1 进程和线程 273
9.1.2 使用多线程的意义 273
9.2 多线程编程 273
9.2.1 API多线程编程 274
9.2.2 MFC界面线程 281
9.2.3 MFC工作者线程 287
9.3 线程间的通信 288
9.3.1 使用全局变量 288
9.3.2 使用自定义消息 291
9.4 线程同步 296
9.4.1 MFC线程同步类 297
9.4.2 CCriticalSection类 297
9.4.3 CEvent类 300
9.4.4 CSemaphore类 305
小结 308
练习 309
第10章 数据库应用程序 310
10.1 数据库基础知识 312
10.1.1 数据库基本概念 312
10.1.2 数据库管理系统 312
10.1.3 结构化查询语言 313
10.1.4 数据库访问技术 316
10.2 ADO数据库编程 316
10.2.1 ADO技术 317
10.2.2 导入ADO库 319
10.2.3 连接数据库 320
10.2.4 执行ADO对象命令 321
10.2.5 Recordset对象 322
小结 336
练习 336
实践篇 337
实践1 C++编程概述 338
实践指导 338
实践1.G.1 338
实践1.G.2 341
实践1.G.3 343
知识拓展 346
1.Visual C++程序代码的调试 346
2.设置Visual C++代码编辑器格式 348
3.VS 2008快捷键 349
拓展练习 350
练习1.E.1 350
实践2 C++基础 351
实践指导 351
实践2.G.1 351
实践2.G.2 352
实践2.G.3 353
实践2.G.4 354
知识拓展 356
const指针 356
拓展练习 357
练习2.E.1 357
实践3 C++面向对象 358
实践指导 358
实践3.G.1 358
实践3.G.2 364
知识拓展 367
1. 类的函数重载、覆盖、虚函数的区别 367
2. 拷贝构造函数 368
拓展练习 369
练习3.E.1 369
实践4 Win32编程 370
实践指导 370
实践4.G.1 370
知识拓展 378
在窗口函数内处理消息 378
拓展练习 379
练习4.E.1 379
实践5 MFC基础 380
实践指导 380
实践5.G.1 380
知识拓展 386
1.预编译头 386
2.GDI位图显示 388
拓展练习 391
练习5.E.1 391
实践6 MFC文档视图 392
实践指导 392
实践6.G.1 392
实践6.G.2 395
知识拓展 404
多文档框架的使用 404
拓展练习 406
练习6.E.1 406
实践7 MFC对话框 407
实践指导 407
实践7.G.1 407
知识拓展 415
属性表对话框 415
拓展练习 420
练习7.E.1 420
实践8 网络编程 421
实践指导 421
实践8.G.1 421
实践8.G.2 434
知识拓展 447
WinSock函数介绍 447
拓展练习 455
练习8.E.1 455
实践9 多线程 456
实践指导 456
实践9.G.1 456
实践9.G.2 465
知识拓展 474
线程死锁 474
拓展练习 477
练习9.E.1 477
实践10 数据库应用程序 478
实践指导 478
实践10.G.1 478
知识拓展 491
MFC中利用ODBC类访问数据库 491
拓展练习 495
练习10.E.1 495
附录A Microsoft C++关键字 496
理论篇 1
第1章 C++编程概述 2
1.1 C++简介 4
1.1.1 C++历史 4
1.1.2 C++标准 4
1.1.3 C++特性 5
1.2 C++编程环境 5
1.2.1 主流开发工具 5
1.2.2 Visual Studio 6
1.2.3 联机帮助 7
1.3 第一个C++程序 7
1.4 输入/输出 9
小结 10
练习 11
第2章 C++基础 12
2.1 常量和变量 14
2.1.1 标识符 14
2.1.2 常量 14
2.1.3 变量 15
2.1.4 变量作用域 15
2.2 数据类型 16
2.2.1 基本内置类型 16
2.2.2 自定义类型 18
2.2.3 数据类型转换 18
2.3 运算符 20
2.3.1 算术运算符 21
2.3.2 比较运算符 22
2.3.3 逻辑运算符 23
2.3.4 位运算符 24
2.3.5 赋值运算符 26
2.3.6 条件运算符 26
2.3.7 sizeof运算符 27
2.3.8 运算符优先级 28
2.4 流程控制 28
2.4.1 分支结构 29
2.4.2 循环结构 35
2.4.3 转移语句 40
2.5 数组 43
2.5.1 数组概述 43
2.5.2 一维数组 43
2.5.3 二维数组 47
2.6 函数 49
2.6.1 函数的声明和定义 49
2.6.2 函数的返回 50
2.6.3 函数的调用和参数传递 50
2.6.4 内联函数 51
2.6.5 函数重载 52
2.7 指针 53
2.7.1 指针概述 53
2.7.2 指针的定义和初始化 53
2.7.3 指针的算术运算 55
2.7.4 指针作为函数参数 56
2.7.5 指针操作动态内存(new和delete) 58
2.8 引用 59
2.8.1 引用的定义和初始化 60
2.8.2 引用作为函数参数 61
2.8.3 引用和指针的区别 62
2.9 字符串 62
2.9.1 字符串和字符集概述 62
2.9.2 C风格的字符串定义 62
2.9.3 常用的字符串操作函数 63
小结 64
练习 65
第3章 C++面向对象 67
3.1 类与对象 69
3.1.1 面向对象的概念 69
3.1.2 类的定义 70
3.1.3 构造函数和类的实例化 75
3.1.4 析构函数 79
3.1.5 成员函数 81
3.1.6 内联成员函数 85
3.1.7 静态类成员 86
3.1.8 this指针 88
3.2 类继承 89
3.2.1 继承 89
3.2.2 派生类对象的构造 91
3.2.3 派生类对象的析构 93
3.3 虚函数和多态 97
3.3.1 虚函数 98
3.3.2 虚析构函数 99
3.3.3 纯虚函数和抽象基类 103
小结 105
练习 105
第4章 Win32编程 107
4.1 Windows编程基础 109
4.1.1 API与SDK 109
4.1.2 窗体与句柄 109
4.1.3 事件与消息 110
4.1.4 常用的Windows数据类型 111
4.1.5 国际化编程 111
4.1.6 Windows应用程序文件组成 113
4.2 源程序组成结构 113
4.2.1 WinMain函数 113
4.2.2 窗口函数 117
4.3 GDI绘图基础 122
4.3.1 GDI概述 122
4.3.2 设备描述表 122
4.3.3 绘图对象 123
4.3.4 GDI绘图 123
小结 130
练习 130
第5章 MFC基础 131
5.1 MFC概述 133
5.1.1 MFC简介 133
5.1.2 一个简单的MFC程序 133
5.1.3 MFC应用程序分析 135
5.1.4 MFC应用程序开发方法 136
5.2 MFC应用程序框架组成 137
5.2.1 MFC全局函数 137
5.2.2 MFC类体系 140
5.2.3 MFC消息映射 141
5.2.4 MFC应用程序类型 145
5.3 MFC主要类 146
5.3.1 根类CObject 146
5.3.2 应用程序体系结构类 147
5.3.3 可视对象类 149
5.4 MFC通用类 150
5.4.1 字符串类:CString 151
5.4.2 文件类:CFile 154
5.4.3 动态数组类 156
5.4.4 链表类 157
5.5 MFC绘图 159
5.5.1 MFC对GDI的支持 159
5.5.2 CDC类及其派生类 159
5.5.3 MFC绘图对象 162
5.5.4 图形绘制相关数据类型 164
小结 166
练习 166
第6章 MFC文档视图 168
6.1 文档/视图框架 170
6.1.1 文档/视图结构概述 170
6.1.2 单文档程序框架中的主要类 172
6.1.3 单文档程序中文档、视图对象的创建过程 174
6.1.4 文档类、视图类核心函数 175
6.1.5 文档/视图界面设计 176
6.2 菜单编程 177
6.2.1 菜单的概念 178
6.2.2 菜单的开发步骤 179
6.2.3 菜单的创建与编辑 179
6.2.4 菜单消息 182
6.2.5 菜单命令消息的处理 183
6.2.6 菜单更新消息的处理 185
6.2.7 为菜单项设置快捷键 187
6.2.8 弹出菜单的创建与使用 189
6.3 工具栏编程 191
6.3.1 工具栏CToolBar简介 192
6.3.2 编辑和创建工具栏 192
6.3.3 加载工具栏 194
6.3.4 工具栏命令处理 196
6.4 状态栏编程 197
6.4.1 状态栏CStatusBar简介 197
6.4.2 状态栏的创建 197
6.4.3 状态栏编程 199
6.5 文本编程 201
6.5.1 创建插入符 201
6.5.2 字符输入 203
6.6 串行化 206
6.6.1 串行化概述 206
6.6.2 文档/视图结构对串行化的支持 206
6.6.3 CArchive类 210
6.6.4 可串行化的类 213
6.6.5 CObArray和CObList对串行化的支持 215
小结 215
练习 216
第7章 MFC对话框 217
7.1 对话框基础知识 219
7.1.1 对话框种类 219
7.1.2 CDialog类 220
7.2 对话框创建和显示 221
7.2.1 创建对话框模板资源 221
7.2.2 模态对话框的创建和关闭 223
7.2.3 非模态对话框的创建和关闭 226
7.2.4 基于对话框的应用程序 228
7.3 标准控件与对话框 228
7.3.1 标准控件简介 229
7.3.2 对话框控件的创建 229
7.3.3 对话框控件成员变量 230
7.3.4 对话框数据交换与验证 231
7.3.5 对话框控件通知消息 236
小结 238
练习 239
第8章 网络编程 240
8.1 Windows网络编程基础 242
8.1.1 TCP/IP协议 242
8.1.2 Windows Sockets基础 244
8.1.3 客户/服务器模式 244
8.1.4 MFC对WinSock的支持 245
8.1.5 MFC网络编程方法 246
8.2 UDP通信编程 246
8.2.1 CAsyncSocket类UDP异步通信 247
8.2.2 创建CAsyncSocket类的派生类 247
8.2.3 创建套接字 250
8.2.4 UDP接收数据 254
8.2.5 UDP发送数据 256
8.3 TCP通信编程 258
8.3.1 CAsyncSocket类服务器端编程 258
8.3.2 CSocket类客户端编程 264
小结 269
练习 269
第9章 多线程 271
9.1 多线程编程基础 273
9.1.1 进程和线程 273
9.1.2 使用多线程的意义 273
9.2 多线程编程 273
9.2.1 API多线程编程 274
9.2.2 MFC界面线程 281
9.2.3 MFC工作者线程 287
9.3 线程间的通信 288
9.3.1 使用全局变量 288
9.3.2 使用自定义消息 291
9.4 线程同步 296
9.4.1 MFC线程同步类 297
9.4.2 CCriticalSection类 297
9.4.3 CEvent类 300
9.4.4 CSemaphore类 305
小结 308
练习 309
第10章 数据库应用程序 310
10.1 数据库基础知识 312
10.1.1 数据库基本概念 312
10.1.2 数据库管理系统 312
10.1.3 结构化查询语言 313
10.1.4 数据库访问技术 316
10.2 ADO数据库编程 316
10.2.1 ADO技术 317
10.2.2 导入ADO库 319
10.2.3 连接数据库 320
10.2.4 执行ADO对象命令 321
10.2.5 Recordset对象 322
小结 336
练习 336
实践篇 337
实践1 C++编程概述 338
实践指导 338
实践1.G.1 338
实践1.G.2 341
实践1.G.3 343
知识拓展 346
1.Visual C++程序代码的调试 346
2.设置Visual C++代码编辑器格式 348
3.VS 2008快捷键 349
拓展练习 350
练习1.E.1 350
实践2 C++基础 351
实践指导 351
实践2.G.1 351
实践2.G.2 352
实践2.G.3 353
实践2.G.4 354
知识拓展 356
const指针 356
拓展练习 357
练习2.E.1 357
实践3 C++面向对象 358
实践指导 358
实践3.G.1 358
实践3.G.2 364
知识拓展 367
1. 类的函数重载、覆盖、虚函数的区别 367
2. 拷贝构造函数 368
拓展练习 369
练习3.E.1 369
实践4 Win32编程 370
实践指导 370
实践4.G.1 370
知识拓展 378
在窗口函数内处理消息 378
拓展练习 379
练习4.E.1 379
实践5 MFC基础 380
实践指导 380
实践5.G.1 380
知识拓展 386
1.预编译头 386
2.GDI位图显示 388
拓展练习 391
练习5.E.1 391
实践6 MFC文档视图 392
实践指导 392
实践6.G.1 392
实践6.G.2 395
知识拓展 404
多文档框架的使用 404
拓展练习 406
练习6.E.1 406
实践7 MFC对话框 407
实践指导 407
实践7.G.1 407
知识拓展 415
属性表对话框 415
拓展练习 420
练习7.E.1 420
实践8 网络编程 421
实践指导 421
实践8.G.1 421
实践8.G.2 434
知识拓展 447
WinSock函数介绍 447
拓展练习 455
练习8.E.1 455
实践9 多线程 456
实践指导 456
实践9.G.1 456
实践9.G.2 465
知识拓展 474
线程死锁 474
拓展练习 477
练习9.E.1 477
实践10 数据库应用程序 478
实践指导 478
实践10.G.1 478
知识拓展 491
MFC中利用ODBC类访问数据库 491
拓展练习 495
练习10.E.1 495
附录A Microsoft C++关键字 496