Download presentation
Presentation is loading. Please wait.
1
项目5 基于三层架构的 企业人事工资管理系统 教育部“十二五”职业教育国家规划教材
《Visual C#程序设计与软件项目实训》电子工业出版社 郑伟 谭恒松 编著 ISBN: 教材网站: 项目5 基于三层架构的 企业人事工资管理系统
2
目录 系统功能总体设计 建立系统数据库 搭建三层架构框架 系统详细设计
3
系统总体功能设计 本系统的功能模块有以下几个:员工管理(包括添加员工和管理员工)、工资管理(包括添加工资和管理工资)、考核管理(包括添加考核和管理考核)、信息查询(包括员工查询和考核查询)、部门维护(包括添加部门和管理部门)、用户维护(包括添加用户和管理用户)。
4
系统总体功能设计 企业人事工资管理系统 考核管理 添加考核 管理考核 部门维护 添加部门 管理部门 用户维护 添加用户 管理用户 员工管理
添加员工 管理员工 信息查询 员工查询 考核查询 工资管理 添加工资 管理工资
5
系统总体功能设计—界面
6
系统总体功能设计—界面
7
系统总体功能设计—界面
8
系统总体功能设计—界面
9
系统总体功能设计—界面
10
系统总体功能设计—界面
11
系统总体功能设计—界面
12
系统总体功能设计—界面
13
系统总体功能设计—界面
14
系统总体功能设计—界面
15
系统总体功能设计—界面
16
系统总体功能设计—界面
17
系统总体功能设计—界面
18
系统总体功能设计—界面
19
建立系统数据库 本系统采用SQL Server 2008作为后台数据库,数据库名为HRManage。数据库包含5个数据表,分别是用户表UserInfo、部门信息表Department、员工信息表Employee、工资信息表Salary、考核信息表CheckInfo。
20
建立系统数据库
21
建立系统数据库
22
建立系统数据库
23
搭建三层架构框架 三层架构通常是指将整个业务应用划分为:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
目的是实现“高内聚,低耦合”。 其中,表示层是展现给用户的界面,业务逻辑层是针对具体问题的操作,是对数据访问层的操作,对数据业务逻辑处理,数据访问层直接操作数据库,针对数据进行插入、修改、删除和查找等工作。
24
搭建三层架构框架 表示层(UI) 业务逻辑层(BLL) 数据访问层(DAL) Oracal DB MS Sql ......
25
搭建三层架构框架 表示层(UI) 业务逻辑层(BLL) 数据访问层(DAL) 用户请求 反馈数据
26
搭建三层架构框架 创建空的解决方案 搭建数据库实体层Model(类库) 搭建数据访问层DAL(类库) 搭建业务逻辑层BLL(类库)
搭建表示层UL 将表示层项目设置为启动项目 添加各层之间的相互依赖
27
搭建三层架构框架 添加配置文件 添加数据操作类DbHelperSQL 为各层添加类
28
编写Model层代码 用户实体类代码(UserInfo.cs) 部门实体类代码(Department.cs)
员工实体类代码(Employee.cs) 工资实体类代码(Salary.cs) 考核实体类代码(Check.cs)
29
系统详细设计
30
用户登录功能模块设计
31
用户登录功能模块设计 关键代码: (1)BLL.UserInfo bll = new BLL.UserInfo(); 实例化BLL层;
(2)Model.UserInfo model = new Model.UserInfo(); 实例化Model层; (3)ds = bll.GetList(strWhere); 调用BLL层中的GetList方法,返还DataSet对象; (4)if (ds.Tables[0].Rows.Count==1) 判断是否有查找到数据。
32
用户登录功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)为登录窗体设计Icon图标。
33
添加用户功能模块设计
34
添加用户功能模块设计 关键代码: (1)Model.UserInfo model = new Model.UserInfo(); 实例化Model层; (2)BLL.UserInfo bll = new BLL.UserInfo(); 实例化BLL层; (3)if (bll.Add(model) == true) 将用户信息添加到数据库中,根据返回值判断是否添加成功。
35
添加用户功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)如果添加的用户名重复,代码如何修改?
36
管理用户功能模块设计
37
管理用户功能模块设计 关键代码: (1)BLL.UserInfo bll = new BLL.UserInfo(); 实例化BLL层;
(2)Model.UserInfo model = new Model.UserInfo(); 实例化Model层; (3)if (bll.Update(model) == true) 根据返回布尔值判断是否修改数据成功; (4)if (bll.Delete(userName)==true) 根据返回布尔值判断是否删除数据成功; (5)DataBind(); 刷新DataGridView数据; (6)ds = bll.GetList(); 执行SQL语句,将结果存在ds中。
38
管理用户功能模块设计 待完善工作: (1)异常处理; (2)要求admin用户不得删除,只能修改密码,请修改代码;
(3)将DataGridView的列标题显示为中文,代码如何修改?
39
主界面设计
40
主界面设计 1.已完成工作: (1)窗体的属性设置; (2)菜单设计; (3)工具栏设计。 2.待完善工作:
(1)为主窗体设计Icon图标; (2)为主窗体退出系统编写代码; (3)为主窗体添加状态栏。
41
添加部门功能模块设计
42
添加部门功能模块设计 关键代码: (1)BLL.Department bll = new BLL.Department(); 实例化BLL层; (2)Model.Department model = new Model.Department(); 实例化Model层; (3)if (bll.Add(model) > 0) 将部门信息添加到数据库中,根据影响的行数判断是否添加成功。
43
添加部门功能模块设计 已完成工作: (1)窗体控件属性设置; (2)部门信息的添加功能; (3)重置功能。 待完善工作:
(1)文本框的输入规范检查; (2)异常处理。
44
管理部门功能模块设计
45
管理部门功能模块设计 关键代码: (1)int departmentID; 定义部门编号;
(2)BLL.Department bll = new BLL.Department(); 实例化BLL层; (3)Model.Department model = new Model.Department(); 实例化Model层; (4)model.DepartmentID = departmentID; departmentID值从dgvDepartmentInfo的CellClick事件取得;
46
管理部门功能模块设计 (5)if (bll.Update(model) == true) 根据返回布尔值判断是否修改数据成功;
(6)if (bll.Delete(departmentID) == true) 根据返回布尔值判断是否删除数据成功; (7)DataBind(); 刷新DataGridView数据; (8)ds = bll.GetList(); 执行SQL语句,将结果存在ds中; (9)departmentID = int.Parse( dgvDepartmentInfo.CurrentCell.OwningRow.Cells[0]. Value.ToString()); 获取部门编号。
47
管理部门功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)异常处理;
(3)没有在控件dgvDepartmentInfo 中选择部门信息时,单击“删除”按钮会报错,代码如何修改? (4)如果该部门已经有员工,则不能删除部门信息,如何修改代码? (5)将DataGridView的列标题显示为中文,代码如何修改?
48
添加员工功能模块设计
49
添加员工功能模块设计 关键代码: (1)Model.Employee model = new Model.Employee(); 实例化Model层 (2)BLL.Employee bll = new BLL.Employee(); 实例化BLL层; (3)if (bll.Add(model) == true) 将员工信息添加到数据库中,根据返回值判断是否添加成功。
50
添加员工功能模块设计 已完成工作: (1)窗体控件属性设置; (2)员工信息的添加功能; (3)重置功能。 待完善工作:
(1)文本框的输入规范检查; (2)异常处理; (3)如果添加的员工编号重复,代码如何修改?
51
管理员工功能模块设计
52
管理员工功能模块设计 关键代码: (1)Model.Employee model = new Model.Employee(); 实例化Model层; (2)BLL.Employee bll = new BLL.Employee(); 实例化BLL层; (3)if (bll.Update(model) == true) 根据返回布尔值判断是否修改数据成功;
53
管理员工功能模块设计 (4)ds = bll.GetList(); 执行SQL语句,将结果存在ds中;
(5)if (bll.Delete(employeeID) == true) 根据返回布尔值判断是否删除数据成功; (6)DataBind(); 刷新DataGridView数据。
54
管理员工功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)异常处理;
(3)没有在控件dgvEmployeeInfo中选择员工信息时,单击“删除”按钮会报错,代码如何修改? (4)如果该员工已经有工资和考核记录,则不能删除员工信息,如何修改代码? (5)将DataGridView的列标题显示为中文,代码如何修改?
55
添加工资功能模块设计
56
添加工资功能模块设计 关键代码: (1)Model.Salary model = new Model.Salary(); 实例化Model层; (2)BLL.Salary bll = new BLL.Salary(); 实例化BLL层; (3)if (bll.Add(model) > 0) 将工资信息添加到数据库中,根据影响的行数判断是否添加成功; (4)ds = bll.GetList(); 执行SQL语句,将结果存在ds中。
57
添加工资功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)异常处理;
(3)将DataGridView的列标题显示为中文,代码如何修改?
58
管理工资功能模块设计
59
管理工资功能模块设计 关键代码: (1)int salaryID; 定义工资编号;
(2)BLL.Salary bll = new BLL.Salary(); 实例化BLL层; (3)ds = bll.GetList(); 执行SQL语句,将结果存在ds中; (4)Model.Salary model = new Model.Salary(); 实例化Model层;
60
管理工资功能模块设计 (5)model.SalaryID = salaryID; salaryID值从dgvSalaryInfo的CellClick事件取得; (6)if (bll.Update(model) == true) 根据返回布尔值判断是否修改数据成功; (7)if (bll.Delete(salaryID) == true) 根据返回布尔值判断是否删除数据成功; (8)DataBind(); 刷新DataGridView数据; (9)salaryID = int.Parse(dgvSalaryInfo.CurrentCell.OwningRow.Cells[0].Value.ToString()); 获取工资编号。
61
管理工资功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)异常处理;
(3)没有在控件dgvSalaryInfo中选择工资信息时,单击“删除”按钮会报错,代码如何修改? (4)将DataGridView的列标题显示为中文,代码如何修改?
62
添加考核功能模块设计
63
添加考核功能模块设计 关键代码: (1)Model.CheckInfo model = new Model.CheckInfo(); 实例化Model层; (2)BLL.CheckInfo bll = new BLL.CheckInfo(); 实例化BLL层; (3)if (bll.Add(model) >0) 将考核信息添加到数据库中,根据影响的行数判断是否添加成功;
64
添加考核功能模块设计 (4)BLL.Employee bll = new BLL.Employee(); 实例化BLL层;
(5)ds = bll.GetList(); 执行SQL语句,将结果存在ds中; (6)BLL.Department bll = new BLL.Department(); 实例化BLL层; (7)ds = bll.GetList(strWhere); 根据条件获取部门信息 (8)txtDepartmentName.Text = ds.Tables[0].Rows[0][1].ToString(); 根据部门ID查找部门名称。
65
添加考核功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)异常处理;
(3)将DataGridView的列标题显示为中文,代码如何修改? (4)要求考核人为本公司员工,代码如何修改?
66
管理考核功能模块设计
67
管理考核功能模块设计 关键代码: (1)int checkID; 定义考核编号;
(2)Model.CheckInfo model = new Model.CheckInfo(); 实例化Model层; (3)model.CheckID = checkID; checkID值从dgvCheckInfo的CellClick事件取得; (4)BLL.CheckInfo bll = new BLL.CheckInfo(); 实例化BLL层;
68
管理考核功能模块设计 (5)if (bll.Update(model) == true) 根据返回布尔值判断是否修改数据成功;
(6)if (bll.Delete(checkID) == true) 根据返回布尔值判断是否删除数据成功; (7)DataBind(); 刷新DataGridView数据; (8)ds = bll.GetList(); 执行SQL语句,将结果存在ds中; (9)checkID = int.Parse(dgvCheckInfo.CurrentCell.OwningRow.Cells[0].Value. ToString()); 获取考核编号。
69
管理考核功能模块设计 待完善工作: (1)文本框的输入规范检查; (2)异常处理;
(3)没有在控件dgvCheckInfo中选择考核信息时,单击“删除”按钮会报错,代码如何修改? (4)将DataGridView的列标题显示为中文,代码如何修改?
70
员工查询功能模块设计
71
员工查询功能模块设计 关键代码: (1)string strWhere="1=1"; 设置初始查询条件,当用户没有输入任何查询信息时将所有信息查询出来; (2)BLL.Employee bll = new BLL.Employee(); 实例化BLL层; (3)ds = bll.GetList(strWhere); 执行带参数SQL语句,将结果存在ds中。
72
员工查询功能模块设计 待完善工作: (1)异常处理; (2)将DataGridView的列标题显示为中文,代码如何修改?
73
考核查询功能模块设计
74
考核查询功能模块设计 关键代码: (1)string strWhere="1=1"; 设置初始查询条件,当用户没有输入任何查询信息时将所有信息查询出来; (2)BLL.CheckInfo bll = new BLL.CheckInfo(); 实例化BLL层; (3)ds = bll.GetList(strWhere); 执行带参数SQL语句,将结果存在ds中。
75
考核查询功能模块设计 待完善工作: (1)异常处理; (2)将DataGridView的列标题显示为中文,代码如何修改?
76
功能总结 企业人事工资管理系统基于三层架构开发,另外添加了一个Model层,用于存放实体类,整个解决方案包括四个项目:Model、DAL、BLL、HRManage。 Model层包括5个类:Check.cs、Department.cs、Employee.cs、Salary.cs、UserInfo.cs; DAL层包括6个类:Check.cs、Department.cs、Employee.cs、Salary.cs、UserInfo.cs、DbHelperSQL.cs; BLL层包括5个类:Check.cs、Department.cs、Employee.cs、Salary.cs、UserInfo.cs;
77
功能拓展 (1)员工工资查询,能够分月分年统计; (2)如果员工被删除,但工资信息、考核信息还在,如何处理?
(3)重新设计主界面,将员工的基本信息在主界面显示,方便管理; (4)针对不同的用户,给予不同的系统管理权限; (5)增加一个数据库备份和还原功能模块。
78
THANK YOU
Similar presentations