第1章 多层结构的设计 1
1.1 分层的原因 1
1.2 典型的三层结构 2
1.2.1 三层结构简介 2
1.2.2 层与层之间的关系 4
1.2.3 层的位置 7
第2章 数据持久层设计 8
2.1 与数据持久化相关的知识 8
2.1.1 数据持久化 8
2.1.2 持久化媒介 8
2.2 数据持久层设计 8
2.2.1 常见的数据访问方式 8
2.2.2 持久层需求分析 10
2.2.3 持久层设计 11
2.2.4 持久层实现与分析 11
第3章 ADO访问数据库 17
3.1 ADO简介 17
3.2 在Visual C++中使用ADO 19
3.3 Connection对象 21
3.3.1 ConnectionString属性 24
3.3.2 ConnectionTimeout属性 26
3.3.3 Mode属性 27
3.3.4 DefaultDatabase属性 27
3.3.5 Provider属性 27
3.3.6 使用Open方法建立到数据源的物理连接 28
3.3.7 使用Close方法关闭数据源的物理连接 28
3.3.8 使用Execute方法执行命令 29
3.3.9 Version属性 31
3.3.10 使用Errors集合检查数据源返回的错误 31
3.4 Command对象 34
3.4.1 ActiveConnection属性 37
3.4.2 使用CommandText属性定义命令 37
3.4.3 使用CommandType属性指定命令类型 37
3.4.4 使用Execute方法执行命令 38
3.5 Recordset对象基础 41
3.5.1 CursorLocation和CursorType属性 47
3.5.2 Open方法 48
3.5.3 Supports方法 49
3.5.4 MoveFirst、MoveLast、MoveNext和MovePrevious方法 51
3.5.5 Field对象和Fields集合 52
3.5.6 使用AddNew方法和Update方法向数据库中添加数据 53
3.5.7 LockType属性 54
第4章 用户登录模块 55
4.1 用户登录模块的设计 55
4.2 加密解密模块的设计 58
4.3 数据访问层的设计与实现 59
4.3.1 通用的数据访问接口 59
4.3.2 使用INI文件存储用户名和密码 59
4.3.3 使用数据库存储用户名和密码 61
4.4 典型用户交互接口的实现 63
4.4.1 简单的用户交互接口 63
4.4.2 限制用户名和密码的长度 66
4.4.3 过滤用户名和密码中的非法字符 66
第5章 数据显示模块 69
5.1 数据库中数据的显示 69
5.1.1 模块功能描述 69
5.1.2 数据库结构描述 71
5.1.3 模块的设计 72
5.1.4 模块的实现 72
5.2 以表格方式显示数据库中数据 87
5.2.1 直接设置Active控件的属性来显示数据 87
5.2.2 可以编辑的表格 91
第6章 图片显示模块 99
6.1 使用Picture控件来显示图片 99
6.1.1 Picture控件简介 99
6.1.2 使用Picture控件的基本步骤 99
6.2 通用图片显示模块 102
6.2.1 Windows显示图片的原理 102
6.2.2 图片显示模块的定义 106
6.2.3 图片显示模块的实现示例 106
第7章 文本编辑模块 116
7.1 文本编辑模块简介 116
7.2 简单文本编辑模块的实现 117
7.2.1 模块描述 117
7.2.2 模块实现 118
7.3 带格式的编辑模块的实现 134
7.3.1 模块描述 134
7.3.2 模块的设计与实现 134
第8章 打印和打印预览模块 145
8.1 Visual C++中的打印预览功能 145
8.1.1 Visual C++中默认的打印和打印预览 145
8.1.2 CView类中和打印相关的重要事件和函数 147
8.2 解决内容受打印机分辨率影响的问题 147
8.3 设置页边距 150
8.4 添加页眉页脚 152
8.5 基于对话框应用程序的打印和打印预览 155
第9章 人事管理系统 160
9.1 教学目标与案例预览 160
9.1.1 案例预览 160
9.1.2 主要知识点 161
9.2 系统分析与设计 161
9.2.1 需求分析 161
9.2.2 模块设计 164
9.3 分析与创建数据库 165
9.4 新建应用程序 166
9.5 数据库连接模块的实现 168
9.6 数据访问模块的实现 169
9.6.1 通用数据访问模块的实现 169
9.6.2 人员信息访问模块的设计与实现 172
9.7 命令模块的实现 176
9.7.1 基本的数据库命令模块 176
9.7.2 人事管理系统命令模块 177
9.7.3 更改主窗口的标题 180
9.7.4 新建树状列表 181
9.7.5 新建用户信息浏览界面 182
9.7.6 将主窗口划分为左右两个视图 185
9.7.7 将主窗口设计为中介者 186
9.7.8 实现树状列表 187
9.7.9 用户信息浏览界面 196
9.7.10 树状列表和用户信息浏览界面间的通信 201
9.7.11 设计主菜单 202
9.7.12 添加部门的实现 203
9.7.13 修改部门名称的实现 203
9.7.14 删除部门的实现 204
9.7.15 添加人员到部门的实现 204
9.7.16 将人员从部门删除的实现 206
9.7.17 添加人员的实现 206
9.7.18 删除人员的实现 207
9.7.19 保存人员信息的实现 208
9.7.20 更改人员姓名的实现 208
9.7.21 工具栏的实现 210
9.7.22 控制菜单的可用性 210
第10章 学生成绩管理系统 212
10.1 教学目标与案例预览 212
10.1.1 教学目标 212
10.1.2 系统预览 212
10.2 系统分析与设计 216
10.2.1 需求分析 216
10.2.2 模块设计 217
10.3 数据库分析与设计 219
10.3.1 概念设计 219
10.3.2 逻辑设计 219
10.3.3 数据库的实现 220
10.4 系统实现 221
10.4.1 配置数据源 222
10.4.2 建立工程 222
10.4.3 登录窗口 223
10.4.4 系统主窗口 227
10.4.5 修改密码窗口 229
10.4.6 用户管理窗口 231
10.4.7 学生管理窗口 237
10.4.8 成绩管理窗口 244
10.4.9 成绩查询窗口 249
10.4.10 授课查询窗口 252
10.5 本章小结 256
第11章 工资管理系统 258
11.1 系统简介 258
11.1.1 本章目标 258
11.1.2 系统配置 258
11.1.3 系统预览 258
11.2 系统分析与设计 261
11.2.1 需求分析 261
11.2.2 数据库设计 262
11.3 系统实现过程与基础类设计 263
11.3.1 登录窗口类——CLoginDlg 264
11.3.2 主窗口类——CSalaryDlg 267
11.3.3 查看工资窗口类——CPreviewDlg 287
11.3.4 薪资计算公式窗口类——CFormulaDlg 290
11.3.5 加密类——CCrypt 293
11.4 本章小结 295
第12章 物资管理系统 296
12.1 教学目标与系统预览 296
12.1.1 教学目标 296
12.1.2 系统预览 296
12.2 系统分析与设计 298
12.2.1 需求分析 298
12.2.2 模块设计 301
12.3 分析与创建数据库 302
12.4 新建应用程序 304
12.5 数据库连接模块的实现 304
12.6 通用数据访问模块的实现 305
12.7 通用数据命令模块的实现 308
12.8 和特定表相关的命令和访问模块群的实现 309
12.8.1 用户信息表访问类——CUserDataSet 309
12.8.2 借用表命令类——CBorrowCommand 310
12.8.3 借用表访问类——CBorrowDataSet 312
12.8.4 入库表命令类——CInCommand 314
12.8.5 入库表访问类——CInDataSet 315
12.8.6 物资信息表命令类——CMaterialInfoCommand 316
12.8.7 物资信息表访问类——CMaterialInfoDataSet 318
12.8.8 出库表命令类——COutCommand 319
12.9 各功能对话框的实现 321
12.9.1 “删除物资”对话框的设计与实现 321
12.9.2 “入库”对话框的设计与实现 322
12.9.3 “登录”对话框的设计与实现 324
12.9.4 “新增物资”对话框的设计与实现 325
12.9.5 “出库”对话框的设计与实现 325
12.9.6 “报表”对话框的设计与实现 327
12.9.7 “归还”对话框的设计与实现 334
12.10 主程序的初始化 336
12.11 主界面的设计与实现 339
12.11.1 主界面对话框的设计 339
12.11.2 入库的实现 339
12.11.3 出库的实现 340
12.11.4 归还的实现 342
12.11.5 报表的实现 344
12.11.6 新建物资的实现 344
12.11.7 删除物资的实现 345
展开