第1章 Visual Studio 2012介绍 1
1.1 Visual Studio 2012的安装要求 2
1.2 Visual Studio 2012的安装步骤 2
1.3 Visual Studio 2012集成开发环境介绍 4
1.4 小结 7
第2章 初识MFC编程 8
2.1 可视化程序设计 8
2.2 使用AppWizard创建ContactList初始应用程序 9
2.3 选择Debug或Release生成选项 12
2.4 小结 14
第3章 需求分析 15
3.1 需求分析的作用 15
3.2 需求分析的结构 15
3.3 通讯录系统业务需求 16
3.4 通讯录系统需求分析范例 17
3.5 小结 19
第4章 概要设计 20
4.1 概要设计要求 20
4.2 概要设计结构 20
4.3 通讯录概要设计范例 20
4.4 小结 23
第5章 数据结构设计与实现 24
5.1 CPerson类的设计与实现 24
5.2 添加CPerson类 24
5.3 添加CPerson类的成员变量 26
5.4 添加CPerson类的成员函数 27
5.5 重载CPerson类的构造函数 29
5.6 CPerson成员变量的初始化 30
5.7 CPersonList类的设计与实现 30
5.8 类模板和动态数组CArray 31
5.9 添加CPersonList类 32
5.10 CPersonList继承CArray功能 32
5.11 生成和运行ContactList 34
5.12 小结 35
第6章 界面设计与实现 36
6.1 界面设计概述 36
6.2 主对话框的设计与实现 36
6.3 添加CListCtrl控件 36
6.4 添加CButton控件 39
6.5 添加Static Text控件 41
6.6 添加CEdit控件 42
6.7 子对话框的设计与实现 43
6.8 添加CEditDlg类 44
6.9 绘制编辑对话框界面 45
6.10 将控件映射到成员变量 49
6.11 修改CEditDlg类构造函数 52
6.12 添加OnInitDialog()虚函数 55
6.13 添加和实现消息响应函数 59
6.14 设置对话框Tab键顺序 60
6.15 CListCtrl风格的定义与实现 61
6.16 CListCtrl数据更新 64
6.17 小结 69
第7章 编码实现:联系人管理 71
7.1 添加联系人功能的实现 71
7.2 删除联系人功能的实现 73
7.3 编辑联系人功能的实现 74
7.4 小结 75
第8章 编码实现:通讯录文件的读写 76
8.1 CPerson基础数据的存储 76
8.2 CPersonList对象的存储 77
8.3 DoSaveFile()与“恢复”功能 79
8.4 DoLoadFile()与“恢复”功能 81
8.5 实现自动读写功能 83
8.6 实现复制功能 86
8.7 小结 88
第9章 编码实现:联系人检索 89
9.1 查找联系人功能的实现 89
9.2 统计联系人功能的实现 92
9.3 显示联系人的照片 96
9.4 主对话框联系人头像的显示 105
9.5 显示联系人统计图形 109
9.6 小结 118
第10章 编码实现:界面增强 119
10.1 添加菜单 119
10.2 添加工具栏 122
10.3 小结 130
第11章 软件测试 131
11.1 软件测试流程 131
11.2 ContactList项目测试案例 131
11.3 小结 147
第12章 软件发布 148
12.1 通过InstallShield制作安装包 148
12.2 ContactList项目说明书案例 154
12.3 小结 161
第13章 总结与展望 162
13.1 项目总结 162
13.2 总结1:软件过程管理 162
13.3 总结2:面向对象程序设计 163
13.4 总结3:数据设计原则 163
13.5 总结4:功能增强 163
附录A 术语解释 164
参考文献 168