-
Visual C 2008程序设计完全自学教程.pdf下载
资源介绍
第一篇 Visual C++ 2008基础知识
第1章 开始使用Visual C++ 2008 1
1.1 .NET Framework 3.5 1
1.1.1 什么是.NET Framework 1
1.1.2 公共语言运行库CLR 2
1.1.3 .NET Framework类库 2
1.1.4 .NET Framework 3.5的新功能 3
1.2 C++应用程序 3
1.3 Visual C++ 2008与Visual Studio 2008 4
1.4 控制台应用程序 7
1.4.1 Win32控制台应用程序 7
1.4.2 创建CLR控制台程序 10
1.5 创建Windows应用程序 11
1.5.1 创建MFC应用程序 12
1.5.2 创建Windows Forms应用程序 13
第2章 变量和表达式 15
2.1 C++的基本语法 15
2.1.1 程序的结构 15
2.1.2 注释 18
2.1.3 #include指令 19
2.1.4 命名空间 19
2.1.5 程序块 20
2.2 变量和常量 21
2.2.1 定义变量 21
2.2.2 常量和符号常量 22
2.3 基本数据类型 23
2.3.1 整型 23
2.3.2 字符类型 24
2.3.3 布尔类型 25
2.3.4 浮点类型 25
2.3.5 定义数据类型的别名 26
2.4 输入与输出表达式 26
2.4.1 标准I/O流 27
2.4.2 格式化输出 27
2.5 运算符与表达式 31
2.5.1 算术运算 31
2.5.2 赋值运算 36
2.5.3 逗号运算 37
2.5.4 关系运算 38
2.5.5 逻辑运算 39
2.5.6 位运算 41
2.6 C++/CLI的应用(托管C++) 43
2.6.1 C++/CLI的基本数据类型 43
2.6.2 C++/CLI格式化输出 45
2.6.3 C++/CLI的键盘输入 47
2.6.4 safe_cast安全类型转换 47
第3章 流程控制结构 48
3.1 条件语句 48
3.1.1 if语句 48
3.1.2 条件运算符 53
3.1.3 switch语句 54
3.2 循环语句 56
3.2.1 while语句 57
3.2.2 do-while语句 59
3.2.3 for语句 60
3.2.4 嵌套循环 62
3.3 跳转结构 63
3.3.1 break语句 63
3.3.2 continue语句 65
3.3.3 goto语句 67
3.4 C++/CLI的应用 68
第4章 数组和字符串 71
4.1 数组概述 71
4.1.1 定义数组 71
4.1.2 引用数组元素 72
4.1.3 初始化 73
4.2 多维数据 74
4.2.1 多维数组的定义 75
4.2.2 多维数组的初始化 76
4.3 数组的应用 78
4.3.1 排序 78
4.3.2 倒置矩阵 84
4.4 字符数组和字符串 85
4.4.1 字符数组 85
4.4.2 string字符串 86
4.4.3 使用string字符串 87
4.4.4 Unicode字符串 92
4.5 C++/CLI的应用 92
4.5.1 CLR数组 92
4.5.2 CLR字符串 95
第5章 函数 97
5.1 函数的定义 97
5.2 函数的参数和返回值 98
5.2.1 实参与形参 98
5.2.2 函数的返回值 101
5.2.3 使用const修饰符的函数形参 102
5.3 函数的调用 102
5.3.1 函数调用机制 103
5.3.2 函数原型 104
5.4 函数的递归调用 105
5.5 函数的默认参数值 108
5.6 函数和数组 109
5.7 函数与变量的作用域 111
5.7.1 局部变量 111
5.7.2 全局变量 113
5.8 变量的生存期 114
5.8.1 自动变量 115
5.8.2 静态变量 116
5.9 函数的重载 117
5.10 函数模板 119
5.11 C++/CLI的应用 122
5.11.1 接收数量可变的实参 122
5.11.2 泛型函数 123
第6章 指针与引用 126
6.1 指针的概念 126
6.2 声明指针变量 126
6.3 指针运算符 127
6.3.1 取地址运算符 127
6.3.2 间接运算符 128
6.4 指针变量的初始化 129
6.5 指针和数组 130
6.5.1 使用指针法引用数组元素 130
6.5.2 使用指针处理多维数组 133
6.6 指针和函数 135
6.6.1 作为形参的指针 135
6.6.2 返回指针的函数 137
6.6.3 函数指针 139
6.7 常量指针和指针常量 140
6.7.1 指向常量的指针 140
6.7.2 指针常量 142
6.8 指向char类型的指针变量 143
6.9 动态内存的分配 145
6.9.1 堆与new和delete运算符 145
6.9.2 数组的动态分配内存 146
6.10 引用 149
6.11 C++/CLI中的指针与引用 151
6.11.1 跟踪句柄 151
6.11.2 跟踪引用 153
第7章 程序文件和预处理指令 154
7.1 使用头文件 154
7.2 外部名称 156
7.3 命名空间 157
7.3.1 声明命名空间 157
7.3.2 未指定名称的命名空间 159
7.3.3 嵌套的命名空间 160
7.4 预处理指令 160
7.4.1 文件包含 160
7.4.2 宏定义 161
7.4.3 条件编译 162
7.4.4 #error和#pragma指令 164
第二篇 C++面向对象的程序开发
第8章 自定义数据类型 167
8.1 结构 167
8.1.1 定义结构 167
8.1.2 访问结构成员 168
8.1.3 结构与指针 169
8.2 联合 171
8.2.1 定义联合 172
8.2.2 匿名联合 173
8.3 枚举 174
8.4 类的概念与定义 175
8.4.1 定义类 176
8.4.2 创建类的对象 176
8.4.3 访问类的数据成员 177
8.4.4 为类添加成员函数 178
8.5 类的构造函数 180
8.5.1 构造函数的使用 180
8.5.2 类的默认构造函数 182
8.5.3 默认的初始化值 184
8.5.4 构造函数中的初始化列表 186
8.6 类的析构函数 186
8.7 类的私有成员 189
8.8 C++/CLI中的枚举 191
8.9 C++/CLI中的类和对象 193
8.9.1 数值类类型 193
8.9.2 引用类类型 195
8.9.3 类属性 197
第9章 类的更多功能 203
9.1 对象数组 203
9.2 对象的指针与引用 205
9.2.1 对象的指针 205
9.2.2 对象的引用 207
9.3 this指针 207
9.4 类的静态成员 209
9.4.1 静态数据成员 209
9.4.2 静态成员函数 211
9.5 复制构造函数 212
9.6 类的友元 215
9.6.1 类的友元函数 216
9.6.2 友元类 219
9.7 重载运算符重载 220
9.7.1 重载运算符的概述 220
9.7.2 重载双目运算符 221
9.7.3 重载增量运算符 223
9.8 类模板 224
9.8.1 定义类模板 225
9.8.2 根据类模板创建对象 227
9.9 C++/CLI的应用 231
9.9.1 在数值类中重载运算符 231
9.9.2 重载数值类的递增和递减运
算符 233
9.9.3 重载引用类运算符 234
第10章 继承与多态性 236
10.1 继承的基本概念 236
10.1.1 类的层次关系 236
10.1.2 派生类对象的结构 238
10.2 继承机制下的访问控制 238
10.2.1 访问父类成员 239
10.2.2 继承方式 243
10.3 派生类的构造函数 246
10.4 派生类的析构函数 248
10.5 派生类的复制构造函数 249
10.6 多重继承 252
10.7 在相关的类类型之间转换 254
10.8 理解多态性 256
10.8.1 虚函数 257
10.8.2 使用虚函数的原则 260
10.9 纯虚函数和抽象类 263
10.9.1 纯虚函数 263
10.9.2 抽象类 263
10.10 C++/CLI的应用 265
10.10.1 装箱与拆箱 265
10.10.2 C++/CLI中的继承 266
10.10.3 接口类 268
10.10.4 委托和事件 270
第11章 标准模板库 277
11.1 标准模板库概述 277
11.1.1 STL容器 277
11.1.2 STL迭代器 280
11.1.3 STL算法 281
11.1.4 STL头文件 281
11.2 顺序容器 282
11.2.1 vector顺序容器 282
11.2.2 deque顺序容器 289
11.2.3 使用list容器 290
11.3 容器适配器 292
11.3.1 队列容器 292
11.3.2 优先级容器 294
11.3.3 堆栈容器 296
11.4 关联容器 298
11.4.1 使用映射容器 298
11.4.2 使用多重映射容器 301
11.5 迭代器 303
11.5.1 输入流迭代器 303
11.5.2 输出流迭代器 304
11.5.3 插入迭代器 305
11.6 算法 307
11.6.1 fill、fill_n、generate与
generate_n 307
11.6.2 数学算法 308
11.7 C++/CLI中的STL 309
11.7.1 STL/CLR顺序容器 309
11.7.2 STL/CLR关联容器 311
第12章 异常处理 314
12.1 异常的概念 314
12.2 捕获异常 315
12.2.1 try-catch块 316
12.2.2 捕获所有的异常 318
12.3 抛出异常的函数 319
12.4 标准异常类 320
12.5 MFC异常 321
第三篇 Windows应用程序开发
第13章 创建Windows应用程序 323
13.1 认识Windows应用程序 323
13.1.1 窗口 323
13.1.2 Windows程序的工作过程 324
13.1.3 Windows API 325
13.2 Windows程序结构 325
13.2.1 Windows数据类型 325
13.2.2 入口函数 327
13.2.3 窗口过程函数 335
13.2.4 一个简单Windows程序 337
13.3 使用MFC 339
13.4 使用Windows Forms 342
第14章 使用MFC创建Windows程序 344
14.1 MFC概述 344
14.1.1 MFC和Win32 344
14.1.2 MFC类库 345
14.1.3 MFC应用程序的运行 346
14.1.4 MFC中的全局函数 347
14.2 创建MFC应用程序 347
14.2.1 创建SimpleEditor应用程序 347
14.2.2 管理项目 351
14.3 代码分析 352
14.3.1 应用程序类CSimpleEditorApp 352
14.3.2 主框架窗口类CMainFrame 355
14.3.3 文档类CSimpleEditor 356
14.3.4 视图类CSimpleEditorView 357
14.3.5 预编译头文件stdafx.h 359
第15章 消息和命令 360
15.1 与Windows进行通信 360
15.1.1 了解消息映射 360
15.1.2 处理不同类型的消息 362
15.2 获取鼠标输入 363
15.2.1 客户区鼠标消息 363
15.2.2 非客户区鼠标消息 368
15.2.3 WM_NCHITTEST消息 370
15.2.4 鼠标滚轮消息 370
15.2.5 捕获鼠标 372
15.3 获取键盘输入 373
15.3.1 输入焦点 373
15.3.2 按键消息 373
15.3.3 字符消息 375
15.3.4 插入符 376
15.4 定时器消息 380
15.4.1 WM_TIMER消息 380
15.4.2 回调函数设置定时器 382
15.5 自定义消息 383
第16章 菜单 386
16.1 菜单 386
16.1.1 利用资源编辑器编辑菜单 386
16.1.2 菜单消息 389
16.1.3 添加消息处理代码 390
16.1.4 菜单命令范围 393
16.1.5 更新菜单项 394
16.1.6 菜单更新范围 396
16.2 快捷键 397
16.3 动态更改菜单 398
16.3.1 手工编辑创建菜单 398
16.3.2 修改现有菜单 399
16.3.3 系统菜单 401
16.4 快捷菜单 401
16.5 在C++/CLI程序中使用菜单 403
16.5.1 理解Windows Forms应用程序 403
16.5.2 MDI窗口 406
16.5.3 活动子窗体 408
16.5.4 排列子窗体 411
16.5.5 合并菜单 412
16.5.6 替换和删除菜单 415
16.5.7 快捷菜单 417
第17章 在窗口中绘图 419
17.1 Windows GDI 419
17.1.1 MFC设备描述表类 419
17.1.2 设备描述表的属性 420
17.1.3 绘图模式 421
17.1.4 映射模式 422
17.1.5 移动坐标原点 423
17.1.6 获取设备信息 424
17.2 用GDI绘图 425
17.2.1 应用程序中的视图类 425
17.2.2 绘制直线和曲线 426
17.2.3 绘制椭圆和矩形 429
17.2.4 画笔 429
17.2.5 画刷 431
17.2.6 绘制文本 432
17.2.7 字体 434
17.2.8 预定义对象 438
17.3 使用鼠标绘图 439
17.3.1 绘制图形分析 439
17.3.2 创建绘图类 440
17.3.3 完成基类CShape 442
17.3.4 绘制直线 443
17.3.5 完成其他派生类 444
17.3.6 创建绘图类对象 447
17.3.7 捕获鼠标消息 452
17.3.8 保存绘图对象 453
17.4 使用GDI+绘图 454
17.4.1 了解GDI+ 454
17.4.2 图形操作 455
17.4.3 坐标和区域 458
17.4.4 使用Font类绘制文本 459
17.4.5 图像操作 462
第18章 对话框和控件 464
18.1 理解对话框和控件 464
18.2 传统控件 465
18.2.1 CButton类 465
18.2.2 CListBox类 469
18.2.3 CStatic类 471
18.2.4 CEdit类 472
18.2.5 CComboBox类 475
18.2.6 CScrollBar类 477
18.3 高级控件编辑 478
18.3.1 添加键盘接口 478
18.3.2 修改控件行为 479
18.4 对话框 480
18.4.1 对话框模板 480
18.4.2 CDialog类 483
18.4.3 创建模式对话框 484
18.4.4 创建无模式对话框 486
18.4.5 对话框数据交换与校验 487
18.4.6 与对话框控件的交互 490
18.5 AddressBook程序 491
18.6 基于对话框的程序 495
18.6.1 计算器程序分析 496
18.6.2 设计MyCalculator类 497
18.6.3 设计对话框类CCalculatorDlg 498
18.7 通用对话框 502
18.7.1 文件对话框类 502
18.7.2 字体对话框类 503
18.7.3 颜色对话框类 504
18.7.4 打印对话框类 504
18.8 Windows Forms窗体 505
18.9 Windows Forms控件 506
18.9.1 控件类 506
18.9.2 Button控件 508
18.9.3 RadioButton和CheckBox控件 509
18.9.4 GroupBox控件 510
18.9.5 Label和LinkLabel控件 510
18.9.6 TextBox控件 511
18.9.7 RichTextBox控件 515
18.9.8 ListBox和CheckedListBox
控件 517
第19章 文件和串行化 519
19.1 操作文件的几种方式 519
19.1.1 使用CRT函数std::fxxx() 519
19.1.2 使用标准C++库std::fstream 521
19.1.3 使用Windows API函数 523
19.2 CFile类 525
19.2.1 打开、关闭和创建文件 525
19.2.2 文件的读和写 528
19.2.3 CFile类的派生类 529
19.3 串行化 530
19.3.1 串行化基础 530
19.3.2 创建可串行化类 532
19.3.3 为AddressBook程序添加串行化
功能 532
19.4 访问XML文件 535
19.4.1 XML文档 535
19.4.2 解析XML文档 540
19.4.3 选择节点 546
19.5 CLR中的文件操作 552
19.6 路径、目录和文件 553
19.6.1 Directory和File类 553
19.6.2 DirectoryInfo和FileInfo类 555
19.7 流和存取文件 557
19.7.1 FileStream对象 557
19.7.2 StreamReader类 560
19.7.3 StreamWriter类 561
19.8 访问二进制文件 562
第20章 动态链接库与钩子 564
20.1 了解DLL 564
20.2 静态链接库 566
20.3 常规DLL 568
20.3.1 一个简单的常规DLL 569
20.3.2 声明导出函数 571
20.3.3 DLL的调用方式 573
20.3.4 调用约定与名称改编 574
20.3.5 导出变量 575
20.3.6 导出类 576
20.3.7 DLL的入口函数 579
20.4 MFC规则DLL 580
20.4.1 静态链接MFC DLL的规则
DLL 580
20.4.2 共享MFC DLL的规则DLL 582
20.5 MFC扩展DLL 583
20.6 Windows钩子 586
20.6.1 认识HOOK钩子 586
20.6.2 钩子的安装与卸载 587
20.6.3 键盘钩子 588
第四篇 数据库访问
第21章 使用ODBC数据源 593
21.1 数据库访问技术 593
21.1.1 ODBC API 593
21.1.2 ODBC的MFC类 594
21.1.3 DAO与RDO 594
21.1.4 OLE DB与ADO 595
21.2 MFC ODBC类 596
21.2.1 CDatabase类 596
21.2.2 CRecordSet类 597
21.3 注册数据源和示例数据库 597
21.4 创建数据库应用程序 599
21.4.1 了解记录集 600
21.4.2 了解记录视图 603
21.4.3 创建视图对话框 605
21.4.4 对记录排序 606
21.5 多表操作 607
21.5.1 添加记录集 607
21.5.2 添加记录视图类 608
21.5.3 过滤数据 609
21.5.4 显示多个记录视图 610
21.6 更新操作 613
21.6.1 更新CRecordSet记录集 614
21.6.2 事务 615
21.7 向表添加数据 616
21.7.1 添加订单的逻辑处理 616
21.7.2 创建记录集视图 617
21.7.3 对话框切换 620
21.7.4 创建订单编号 621
21.7.5 订单数据 623
21.7.6 为订单选择产品 624
21.7.7 添加新订单 625
第22章 数据库和ADO.N E T 628
22.1 ADO.N E T概述 628
22.1.1 ADO.N E T的设计目标 628
22.1.2 ADO.N E T体系结构 629
22.1.3 System::Data命名空间 630
22.2 使用DataReader 632
22.3 使用DataSet 636
22.3.1 读取数据 636
22.3.2 修改数据 639
22.3.3 保存DataSet对数据的修改 643
22.4 在DataSet中访问多个表 645
22.4.1 ADO.N E T中的关系 645
22.4.2 导航关系 645
22.5 使用数据控件 648
22.5.1 DataGridView控件 649
22.5.2 数据绑定 654