C# Windows应用开发项目教程 / 高职高专工作过程导向新理念教材·计算机系列
¥48.00定价
作者: 包芳、陈东东等
出版时间:2017年3月
出版社:清华大学出版社
- 清华大学出版社
- 9787302441588
- 1-1
- 28458
- 16开
- 2017年3月
- 工学
- 软件工程
- TP311.1
- 计算机类
- 高职高专
内容简介
本书以Microsoft Visual Studio 2013为集成开发环境,通过对实际项目(学生选课管理系统)的逐步重构和完善过程,引导读者全面、深入地掌握C# Windows应用项目的开发技术。本书主要介绍C# Windows应用项目的设计思路和开发步骤、OOP基本概念、ADO.NET数据库访问技术、三层体系架构、简单工厂模式等.NET开发的关键技术。本书采用由点及面、由易到难、逐步完善的项目化内容组织方式,逐步介绍C#窗体项目开发的关键技术及其应用技能。本书中涉及的关键技术不仅可用于开发三层架构的C#窗体应用软件,对于读者后续学习各类框架开发更起着奠定基础、知根溯源的作用。本书适用于高职高专院校软件专业的学生学习,也适用于广大需要开发C# Windows应用项目的读者学习。
目录
目
录
第一阶段
开 发 准 备
任务1 Visual Studio 2013开发环境的安装 003
1.1 情境描述 003
1.2 相关知识 003
1.2.1 Visual Studio 2013的特点 003
1.2.2 .NET框架的组成 003
1.2.3 .NET 环境下程序的编译执行过程 004
1.3 安装实施 005
任务2 欢迎窗体 008
2.1 情境描述 008
2.2 相关知识 008
2.2.1 软件分类及其运行机制 008
2.2.2 控件及其属性 009
2.2.3 事件及事件驱动机制 010
2.2.4 控件的事件 010
2.2.5 控件的方法 011
2.2.6 基于事件驱动机制的 Windows
窗体应用程序设计思路 011
2.2.7 标签、图片和窗体控件 011
2.3 实施与分析 013
2.3.1 欢迎窗体的设计思路 013
2.3.2 欢迎窗体的实现 013
2.3.3 测试与改进 015
2.4 知识拓展 016
2.4.1 引用命名空间 016
2.4.2 程序集和反射 016
任务3 加法运算练习游戏 018
3.1 情境描述 018
3.2 相关知识 019
3.2.1 预定义和自定义类型 019
3.2.2 标识符和命名规范 020
3.2.3 变量和常量 021
3.2.4 值类型和引用类型 022
3.2.5 运算符 023
3.2.6 控制语句 023
3.2.7 文本框和按钮控件 025
3.3 实施与分析 026
3.3.1 加法运算练习游戏的设计思路 026
3.3.2 加法运算练习游戏的实现 027
3.3.3 测试与改进 029
3.4 知识拓展 030
3.4.1 装箱和拆箱 030
3.4.2 字符串和正则表达式 031
任务4 随机抽号游戏 035
4.1 情境描述 035
4.2 相关知识——C#的数组 035
4.3 实施与分析 036
4.3.1 随机抽号游戏的设计思路 036
4.3.2 随机抽号游戏的实现 036
4.3.3 测试与改进 037
4.4 知识拓展 038
4.4.1 窗体的描述 038
4.4.2 分布式类 039
4.4.3 项目中窗体的命名规范 039
任务5 Person类及其对象 041
5.1 情境描述 041
5.2 相关知识 041
5.2.1 OOP概述 041
5.2.2 类的定义 042
5.2.3 类的字段与属性 043
5.2.4 类的方法 045
5.2.5 类的实例化 047
5.2.6 对象的应用 050
5.2.7 组框控件 051
5.3 实施与分析 051
5.3.1 Person类的设计应用思路 051
5.3.2 Person类及其对象应用的实现 051
5.3.3 测试与改进 053
5.3.4 Course类的设计与应用 054
5.4 知识拓展 056
5.4.1 静态成员 056
5.4.2 常量成员 057
5.4.3 方法的重载 057
5.4.4 委托和事件 058
5.4.5 值参数 061
5.4.6 引用参数 062
5.4.7 输出参数 063
5.4.8 参数数组 064
第二阶段
项目开发——原始版本
任务6 项目的需求分析 073
6.1 情境描述 073
6.2 相关知识——软件开发流程概述 073
6.3 项目需求概述 074
任务7 项目的总体设计 078
7.1 情境描述 078
7.2 相关知识——应用程序的分层架构 078
7.3 项目总体设计 079
7.4 项目重构过程设计 081
7.5 项目中类的设计和应用 087
任务8 基于两层架构的课程浏览查询模块 089
8.1 情境描述 089
8.2 相关知识 090
8.2.1 ADO.NET概述 090
8.2.2 OleDbConnection 类 091
8.2.3 OleDbDataAdapter 类 093
8.2.4 DataSet 类 093
8.2.5 DataGridView控件 093
8.3 实施与分析 094
8.3.1 课程浏览查询的设计思路 094
8.3.2 课程浏览查询的实现 095
8.3.3 测试与改进 097
任务9 基于两层架构的课程添加删除模块 099
9.1 情境描述 099
9.2 相关知识 099
9.2.1 格式化字符串 099
9.2.2 OleDbCommand类 100
9.2.3 OleDbDataReader类 102
9.3 实施与分析 103
9.3.1 课程添加的设计思路 103
9.3.2 课程添加的实现 104
9.3.3 课程删除的设计思路 105
9.3.4 测试与改进 105
任务10 数据访问类DBHelper的设计和应用 107
10.1 情境描述 107
10.2 相关知识 107
10.2.1 数据操作类的设计思路 107
10.2.2 连接字符串字段 108
10.2.3 数据操作方法 109
10.3 实施与分析 110
10.3.1 DBHelper数据操作类的设计 110
10.3.2 应用DBHelper数据操作类
优化代码 111
10.3.3 测试与改进 113
10.4 相关拓展 113
第三阶段
项目开发——重构过程
任务11 向三层架构的转换 125
11.1 情境描述 125
11.2 相关知识 126
11.2.1 三层架构的划分原理 126
11.2.2 对象关系映射ORM 127
11.3 实施与分析 128
11.3.1 向三层架构转换的设计思路 128
11.3.2 向三层架构转换的实现 129
11.3.3 测试与改进 129
任务12 基于三层架构的课程浏览查询重构 132
12.1 情境描述 132
12.2 相关知识——泛型集合 132
12.3 实施与分析 134
12.3.1 课程浏览的三层架构设计思路 134
12.3.2 课程查询的三层架构设计思路 135
12.3.3 课程浏览和查询的实现 136
12.3.4 测试与改进 140
任务13 基于三层架构的课程添加重构 142
13.1 情境描述 142
13.2 课程添加的三层架构设计思路 142
13.2.1 课程添加的数据访问类 142
13.2.2 课程添加的业务逻辑类 143
13.2.3 课程添加的表现层 144
13.3 课程添加的三层架构实现 144
13.3.1 操作步骤 144
13.3.2 DAL层 144
13.3.3 BLL层 145
13.3.4 UI层 145
13.3.5 测试与改进 146
任务14 基于三层架构的课程删除重构 149
14.1 情境描述 149
14.2 相关知识 150
14.2.1 自定义链接列 150
14.2.2 数据网格中行值的获取 150
14.3 课程删除的三层设计思路 151
14.3.1 课程删除的数据访问类 151
14.3.2 课程删除的业务逻辑类 151
14.3.3 课程删除表现层 152
14.4 课程删除的三层架构实现 152
14.4.1 操作步骤 152
14.4.2 DAL层 152
14.4.3 BLL层 152
14.4.4 UI层 153
14.4.5 测试与改进 153
14.5 知识拓展:取单条记录到实体类对象 154
第四阶段
项目开发——最终版本
任务15 用户登录模块 161
15.1 情境描述 161
15.2 业务分析 162
15.3 相关知识 164
15.3.1 MDI窗体 164
15.3.2 MenuStrip菜单控件 164
15.3.3 窗体间的跳转 164
15.3.4 RadioButton单选按钮控件 164
15.4 界面制作 165
15.4.1 登录界面及软件首页设置 165
15.4.2 管理员主界面 166
15.5 登录的三层架构设计思路 166
15.5.1 学生登录的三层架构设计 166
15.5.2 管理员登录的三层架构设计 167
15.6 登录的三层架构实现 168
15.6.1 操作步骤 168
15.6.2 DAL层 168
15.6.3 BLL层 169
15.6.4 UI层 169
15.6.5 测试与分析 170
任务16 管理员选课查询模块 172
16.1 情境描述 172
16.2 业务分析 172
16.3 相关知识——下拉列表框控件 174
16.4 选课查询的三层架构设计思路 175
16.5 选课查询的三层实现 176
16.5.1 界面制作 176
16.5.2 操作步骤 176
16.5.3 DAL层 176
16.5.4 BLL层 177
16.5.5 UI层 177
16.5.6 测试与分析 178
任务17 学生选课退选模块 180
17.1 情境描述 180
17.2 业务分析 180
17.2.1 学号传递的分析 181
17.2.2 退选的分析 181
17.2.3 选课的分析 182
17.3 相关知识 183
17.3.1 学号在窗体间的传递 183
17.3.2 异常捕捉 184
17.3.3 数据访问类DBHelper类的
重构 185
17.4 选课退选设计思路 187
17.4.1 子功能1:已选总学分的三层
架构设计 187
17.4.2 子功能2:已选课程列表的
三层架构设计 187
17.4.3 子功能3:退选的三层架构
设计 188
17.4.4 子功能4:选课的三层架构
设计 189
17.5 选课退选的实现 190
17.5.1 界面设计 190
17.5.2 操作思路 190
17.5.3 配置文件的修改 191
17.5.4 子功能1:已选总学分 191
17.5.5 子功能2:已选课程列表 191
17.5.6 子功能3:退选 192
17.5.7 子功能4:选课 193
17.5.8 测试与分析 195
17.6 知识拓展——应用委托和事务实现已选
总学分的实时更新 196
第五阶段
项目的数据库迁移
任务18 迁移的分析与设计 201
18.1 情境描述 201
18.2 相关知识 201
18.2.1 OOP再述 201
18.2.2 继承 202
18.2.3 多态的概念 204
18.2.4 方法的隐藏 204
18.2.5 方法的覆盖 205
18.2.6 抽象类 207
18.2.7 接口 209
18.2.8 简单工厂模式 212
18.3 数据库迁移的设计思路 214
任务19 迁移的实现 218
19.1 情境描述 218
19.2 实施与分析 218
19.2.1 设计数据访问类公共接口
IDAL 218
19.2.2 重构原Access数据访问类
AccessDAL 220
19.2.3 设计新的SQL Server数据
访问类SQLServerDAL 220
19.2.4 设计工厂类DALFactory 228
19.2.5 重构业务逻辑层 229
第六阶段
项目的安装部署
任务20 安装包的制作 235
20.1 情境描述 235
20.2 相关知识 235
20.2.1 新建安装项目 235
20.2.2 应用程序文件夹 235
20.2.3 用户的“程序”菜单 236
20.2.4 卸载功能 237
20.2.5 用户桌面 238
20.2.6 安装路径 238
20.2.7 .NET框架等系统环境
的打包 238
20.2.8 SQL Server数据库的打包 239
20.3 实施与分析 239
20.3.1 生成安装文件夹 239
20.3.2 简单测试 239
任务21 安装包的部署 241
21.1 情境描述 241
21.2 实施与分析 241
21.2.1 安装软件 241
21.2.2 卸载软件 242
21.2.3 简单测试 242
知
识 梳 理
参
考 文 献
录
第一阶段
开 发 准 备
任务1 Visual Studio 2013开发环境的安装 003
1.1 情境描述 003
1.2 相关知识 003
1.2.1 Visual Studio 2013的特点 003
1.2.2 .NET框架的组成 003
1.2.3 .NET 环境下程序的编译执行过程 004
1.3 安装实施 005
任务2 欢迎窗体 008
2.1 情境描述 008
2.2 相关知识 008
2.2.1 软件分类及其运行机制 008
2.2.2 控件及其属性 009
2.2.3 事件及事件驱动机制 010
2.2.4 控件的事件 010
2.2.5 控件的方法 011
2.2.6 基于事件驱动机制的 Windows
窗体应用程序设计思路 011
2.2.7 标签、图片和窗体控件 011
2.3 实施与分析 013
2.3.1 欢迎窗体的设计思路 013
2.3.2 欢迎窗体的实现 013
2.3.3 测试与改进 015
2.4 知识拓展 016
2.4.1 引用命名空间 016
2.4.2 程序集和反射 016
任务3 加法运算练习游戏 018
3.1 情境描述 018
3.2 相关知识 019
3.2.1 预定义和自定义类型 019
3.2.2 标识符和命名规范 020
3.2.3 变量和常量 021
3.2.4 值类型和引用类型 022
3.2.5 运算符 023
3.2.6 控制语句 023
3.2.7 文本框和按钮控件 025
3.3 实施与分析 026
3.3.1 加法运算练习游戏的设计思路 026
3.3.2 加法运算练习游戏的实现 027
3.3.3 测试与改进 029
3.4 知识拓展 030
3.4.1 装箱和拆箱 030
3.4.2 字符串和正则表达式 031
任务4 随机抽号游戏 035
4.1 情境描述 035
4.2 相关知识——C#的数组 035
4.3 实施与分析 036
4.3.1 随机抽号游戏的设计思路 036
4.3.2 随机抽号游戏的实现 036
4.3.3 测试与改进 037
4.4 知识拓展 038
4.4.1 窗体的描述 038
4.4.2 分布式类 039
4.4.3 项目中窗体的命名规范 039
任务5 Person类及其对象 041
5.1 情境描述 041
5.2 相关知识 041
5.2.1 OOP概述 041
5.2.2 类的定义 042
5.2.3 类的字段与属性 043
5.2.4 类的方法 045
5.2.5 类的实例化 047
5.2.6 对象的应用 050
5.2.7 组框控件 051
5.3 实施与分析 051
5.3.1 Person类的设计应用思路 051
5.3.2 Person类及其对象应用的实现 051
5.3.3 测试与改进 053
5.3.4 Course类的设计与应用 054
5.4 知识拓展 056
5.4.1 静态成员 056
5.4.2 常量成员 057
5.4.3 方法的重载 057
5.4.4 委托和事件 058
5.4.5 值参数 061
5.4.6 引用参数 062
5.4.7 输出参数 063
5.4.8 参数数组 064
第二阶段
项目开发——原始版本
任务6 项目的需求分析 073
6.1 情境描述 073
6.2 相关知识——软件开发流程概述 073
6.3 项目需求概述 074
任务7 项目的总体设计 078
7.1 情境描述 078
7.2 相关知识——应用程序的分层架构 078
7.3 项目总体设计 079
7.4 项目重构过程设计 081
7.5 项目中类的设计和应用 087
任务8 基于两层架构的课程浏览查询模块 089
8.1 情境描述 089
8.2 相关知识 090
8.2.1 ADO.NET概述 090
8.2.2 OleDbConnection 类 091
8.2.3 OleDbDataAdapter 类 093
8.2.4 DataSet 类 093
8.2.5 DataGridView控件 093
8.3 实施与分析 094
8.3.1 课程浏览查询的设计思路 094
8.3.2 课程浏览查询的实现 095
8.3.3 测试与改进 097
任务9 基于两层架构的课程添加删除模块 099
9.1 情境描述 099
9.2 相关知识 099
9.2.1 格式化字符串 099
9.2.2 OleDbCommand类 100
9.2.3 OleDbDataReader类 102
9.3 实施与分析 103
9.3.1 课程添加的设计思路 103
9.3.2 课程添加的实现 104
9.3.3 课程删除的设计思路 105
9.3.4 测试与改进 105
任务10 数据访问类DBHelper的设计和应用 107
10.1 情境描述 107
10.2 相关知识 107
10.2.1 数据操作类的设计思路 107
10.2.2 连接字符串字段 108
10.2.3 数据操作方法 109
10.3 实施与分析 110
10.3.1 DBHelper数据操作类的设计 110
10.3.2 应用DBHelper数据操作类
优化代码 111
10.3.3 测试与改进 113
10.4 相关拓展 113
第三阶段
项目开发——重构过程
任务11 向三层架构的转换 125
11.1 情境描述 125
11.2 相关知识 126
11.2.1 三层架构的划分原理 126
11.2.2 对象关系映射ORM 127
11.3 实施与分析 128
11.3.1 向三层架构转换的设计思路 128
11.3.2 向三层架构转换的实现 129
11.3.3 测试与改进 129
任务12 基于三层架构的课程浏览查询重构 132
12.1 情境描述 132
12.2 相关知识——泛型集合 132
12.3 实施与分析 134
12.3.1 课程浏览的三层架构设计思路 134
12.3.2 课程查询的三层架构设计思路 135
12.3.3 课程浏览和查询的实现 136
12.3.4 测试与改进 140
任务13 基于三层架构的课程添加重构 142
13.1 情境描述 142
13.2 课程添加的三层架构设计思路 142
13.2.1 课程添加的数据访问类 142
13.2.2 课程添加的业务逻辑类 143
13.2.3 课程添加的表现层 144
13.3 课程添加的三层架构实现 144
13.3.1 操作步骤 144
13.3.2 DAL层 144
13.3.3 BLL层 145
13.3.4 UI层 145
13.3.5 测试与改进 146
任务14 基于三层架构的课程删除重构 149
14.1 情境描述 149
14.2 相关知识 150
14.2.1 自定义链接列 150
14.2.2 数据网格中行值的获取 150
14.3 课程删除的三层设计思路 151
14.3.1 课程删除的数据访问类 151
14.3.2 课程删除的业务逻辑类 151
14.3.3 课程删除表现层 152
14.4 课程删除的三层架构实现 152
14.4.1 操作步骤 152
14.4.2 DAL层 152
14.4.3 BLL层 152
14.4.4 UI层 153
14.4.5 测试与改进 153
14.5 知识拓展:取单条记录到实体类对象 154
第四阶段
项目开发——最终版本
任务15 用户登录模块 161
15.1 情境描述 161
15.2 业务分析 162
15.3 相关知识 164
15.3.1 MDI窗体 164
15.3.2 MenuStrip菜单控件 164
15.3.3 窗体间的跳转 164
15.3.4 RadioButton单选按钮控件 164
15.4 界面制作 165
15.4.1 登录界面及软件首页设置 165
15.4.2 管理员主界面 166
15.5 登录的三层架构设计思路 166
15.5.1 学生登录的三层架构设计 166
15.5.2 管理员登录的三层架构设计 167
15.6 登录的三层架构实现 168
15.6.1 操作步骤 168
15.6.2 DAL层 168
15.6.3 BLL层 169
15.6.4 UI层 169
15.6.5 测试与分析 170
任务16 管理员选课查询模块 172
16.1 情境描述 172
16.2 业务分析 172
16.3 相关知识——下拉列表框控件 174
16.4 选课查询的三层架构设计思路 175
16.5 选课查询的三层实现 176
16.5.1 界面制作 176
16.5.2 操作步骤 176
16.5.3 DAL层 176
16.5.4 BLL层 177
16.5.5 UI层 177
16.5.6 测试与分析 178
任务17 学生选课退选模块 180
17.1 情境描述 180
17.2 业务分析 180
17.2.1 学号传递的分析 181
17.2.2 退选的分析 181
17.2.3 选课的分析 182
17.3 相关知识 183
17.3.1 学号在窗体间的传递 183
17.3.2 异常捕捉 184
17.3.3 数据访问类DBHelper类的
重构 185
17.4 选课退选设计思路 187
17.4.1 子功能1:已选总学分的三层
架构设计 187
17.4.2 子功能2:已选课程列表的
三层架构设计 187
17.4.3 子功能3:退选的三层架构
设计 188
17.4.4 子功能4:选课的三层架构
设计 189
17.5 选课退选的实现 190
17.5.1 界面设计 190
17.5.2 操作思路 190
17.5.3 配置文件的修改 191
17.5.4 子功能1:已选总学分 191
17.5.5 子功能2:已选课程列表 191
17.5.6 子功能3:退选 192
17.5.7 子功能4:选课 193
17.5.8 测试与分析 195
17.6 知识拓展——应用委托和事务实现已选
总学分的实时更新 196
第五阶段
项目的数据库迁移
任务18 迁移的分析与设计 201
18.1 情境描述 201
18.2 相关知识 201
18.2.1 OOP再述 201
18.2.2 继承 202
18.2.3 多态的概念 204
18.2.4 方法的隐藏 204
18.2.5 方法的覆盖 205
18.2.6 抽象类 207
18.2.7 接口 209
18.2.8 简单工厂模式 212
18.3 数据库迁移的设计思路 214
任务19 迁移的实现 218
19.1 情境描述 218
19.2 实施与分析 218
19.2.1 设计数据访问类公共接口
IDAL 218
19.2.2 重构原Access数据访问类
AccessDAL 220
19.2.3 设计新的SQL Server数据
访问类SQLServerDAL 220
19.2.4 设计工厂类DALFactory 228
19.2.5 重构业务逻辑层 229
第六阶段
项目的安装部署
任务20 安装包的制作 235
20.1 情境描述 235
20.2 相关知识 235
20.2.1 新建安装项目 235
20.2.2 应用程序文件夹 235
20.2.3 用户的“程序”菜单 236
20.2.4 卸载功能 237
20.2.5 用户桌面 238
20.2.6 安装路径 238
20.2.7 .NET框架等系统环境
的打包 238
20.2.8 SQL Server数据库的打包 239
20.3 实施与分析 239
20.3.1 生成安装文件夹 239
20.3.2 简单测试 239
任务21 安装包的部署 241
21.1 情境描述 241
21.2 实施与分析 241
21.2.1 安装软件 241
21.2.2 卸载软件 242
21.2.3 简单测试 242
知
识 梳 理
参
考 文 献