1、工资管理系统分析企业工资管理系统2015-11-17 企业工资管理工资管理子系统4.数据字典.6四.系统实现部分 121.程序框图 122.源程序 133.模拟运行数据 224.测试用例 235.系统使用说明书 23五.工作总结 23六、致谢 23七附录 23一需求分析1.组织机构操作方式上的可行性本系统运行在通用的linux操作系统上,具有linux相似的操作界面。具有简单易学,使用方便等特点,只需在计算机上进行相关的简单的设置即可,懂得计算机基本操作的人员经过短期培训培训即可熟练操作,熟悉计算机操作的人员不需要再经过专门的培训即可熟练操作。所以,从组织机构操作方式上的可行性分析,该系统是可
2、行的。2.基础数据的可用性企业工资管理系统的基础数据都是一些比较常见的基础数据,比如职工编号,姓名,部门编号等等,在系统的设计过程中都是很好使用和编排的,所以,从系统基础数据可用性的角度看,该系统是可行的。3.经济上的可行性a.采用新的工资管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高工资汇总的效率,使公司变的资金运转更加便捷。b.开发经费、投资方面的来源和限制:各种硬件及人员花费至少需8000元.所以,从经济上的可行性分析,该系统是可行的。4.技术上的可行性本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件
3、的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。职工工资管理系统开发与运行环境选择如下: 开发环境: ubuntu 14.04 ltx开发工具:Java,Java软件可以选用eclipse数据库管理系统:MySQL数据库5.目标分析 做出一个简单实用工资管理系统,不需要功能复杂,只需要实用性强。功能要在很多小型企业都能够使用。操作性简单,要最大限度的减少使用用户的工作量。二系统分析1.业务流程图图例说明: 表示外部实体 表示处理过程的说明 表示系统 表示生成文档 表示表 表示信息的传输过程根据需求分析,我们分析出一个工资管理系统中工资管理子系统业务的一般
4、流程:首先,用户必须进行注册以及登陆,才能进入工资管理系统。注册及登陆的流程如下:图3-1员工注册及登陆业务流程图其次,员工登陆进入工资管理子系统之后就要进行工资查询。 图3-2 企业工资管理工资管理子系统业务流程图2.数据流程图图例说明:表示外部实体表示处理过程表示存储信息或文件带有名称的有向线段表示数据流图3-3 工资管理系统顶层DFD图3-4 工资管理系统的第一层DFD 图3-5 企业工资管理工资管理子系统的数据流程图3.功能分析图该工资管理工资管理子系统的总体功能可以从两个方面来分析,一是查找功能,二是编辑功能-包括修改,删除,和添加,总体功能设计如图3-4所示。查询功能编辑功能员工员
5、工和管理员都可以通过在进入工资管理子系统后,对员工的基本,和基本工资信息进行查询无管理员管理员通过管理权限登录后,可根据改变员工信息,对基本工资表,工资表进行修改,添加和删除操作。图3-6 工资管理子系统功能分析图4.数据字典数据字典中有六类条目:数据元素、数据结构、数据流、数据存储、处理过程和外部实体。不同类型的条目有不同的属性。根据“数据流程图”,编写相应的“数据字典”,如下所示。(1)数据元素条目 数据元素条目总编码:3-1 编号:01数据项名称:员工编号 有关编码说明:数值类型:离散 XX XX类型:字符 序号长度:16 职务编号说明: 员工的具体编号 有关数据结构:工资表,员工表 数
6、据元素条目总编码:3-2 编号:02数据项名称:姓名 类型:字符 长度:32 说明: 员工的姓名 有关数据结构:工资表,员工表 数据元素条目总编码:3-3 编号:03数据项名称:性别 类型:字符 长度:2 说明: 员工的性别 有关数据结构:员工表 (2)数据流条目名称:基本工资表简要说明:每月结束时,有工资管理员填写的表 总编号:3-4数据来源:管理员 编号:04数据流向: P1.1,P1.3 包含的数据结构: 流通量:1份/ 月员工编姓名工资(3)处理过程定义名称:查询工资说明:月末员工查询工资 总编号:3-5输入: P3 编号:05输出: D6 处理:员工通过正确的权限,进入到工资表界面,
7、查询其本月所得到的工资.名称:修改基本工资表说明:月末管理员修改或查询基本工资 总编号:3-6输入:P1.1,P1.3 编号:06输出: D2 处理:管理员通过工资表的变动,对基本工资表进行查询或修改.(4)数据存储数据存储名称:基本工资表说明:月末按员工编号给员工发的工资 总编号:3-7包含的数据结构: 编号:07员工编号 有关的数据流:姓名 信息量:1份/月工资 有无立即查询:有5.数据加工处理的描述数据加工处理的工具主要包括:结构化语言,判断树,决策表。下面用结6.管理信息系统流程设计图(新系统模型) 图3-7 企业工资管理工资管理子系统设计三 .系统设计1. 功能结构设计本学工资管理子
8、系统主要分为三个模块,包括查询,添加,修改和删除。本系统首先将员工的基本和基本工资信息输入,然后可以进行以下三种功能操作。企业工资管理工资管理子系统功能模块设计2. 系统信息处理流程设计 3. 数据库物理设计数据库的设计分为三个部分,首先对雇员工资管理系统的设计进行需求分析,确定需要在数据库中保存的信息,然后应用E-R图对信息进行组织和连接,最后确定每个表的字段属性和主键等数据库信息。a) 数据库需求分析根据系统设计和业务逻辑分析,需要存放以下信息:i. 雇员信息:雇员编号,雇员姓名,密码等。ii. 薪资信息:雇员编号,工资等 b) E-R图的生成下列E-R图描述:4. 数据库关系表5. 数据
9、库存储引擎设置这里比较复杂,由于系统功能比较简单,所以采用默认的存储引擎即可,若今后系统功能十分复杂了,就需要考虑重新设计数据库的存储引擎,还要建立索引,视图等一系列的东西。四.系统实现部分1.程序框图(程序流程图)下面是程序的各部分关系图: 2.源程序登陆界面:普通员工登陆进入系统后的界面,只有查询其他员工和自己的工资的功能,编辑员工不会显示出来。这是管理员进入后的界面,全部可以操作,导航栏的链接可以全部显示出来,并可以操作。这是登陆界面的核心代码:package org.zhli.app.action;import java.util.Map;import org.apache.strut
10、s2.interceptor.SessionAware;import org.zhli.app.domain.Employee;import org.zhli.app.service.EmployeeService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport implements SessionAware private static final long serialVersionUID = -1106832005908886865L; private
11、Employee employee = new Employee(); public Employee getEmployee() return employee; public void setEmployee(Employee employee) this.employee = employee; public String execute() return SUCCESS; public String toLoginPage() System.out.println(success); return SUCCESS; public String doLogin() System.out.
12、println(employee); boolean exists = validateLogin(employee); System.out.println(exists); System.out.println(sessionMap.get(employee); if(exists) return employee; else return SUCCESS; private boolean validateLogin(Employee employee) Employee e = new EmployeeService().validateLoginInfo(employee); Syst
13、em.out.println(e); System.out.println(employee); if(e != null & e.getEmployeeNo().equals(employee.getEmployeeNo() & e.getEmployeePasswd().equals(employee.getEmployeePasswd() e.setEmployeePasswd(null); sessionMap.put(employee, e); return true; return false; Map sessionMap; public String exit() sessio
14、nMap.clear(); return SUCCESS; public void setSession(Map session) sessionMap = session; 工资查询的功能截图查询核心代码:package org.zhli.app.action;import java.util.Map;import org.apache.struts2.interceptor.SessionAware;import org.zhli.app.domain.Employee;import org.zhli.app.domain.Salary;import org.zhli.app.servic
15、e.SalaryService;import com.opensymphony.xwork2.ActionSupport;public class QueryEmployeeAction extends ActionSupport implements SessionAware private static final long serialVersionUID = -2199348217069147504L; Salary salary = new Salary(); Salary mySalary; Salary querySalary; public Salary getSalary()
16、 return salary; public void setSalary(Salary salary) this.salary = salary; public Salary getMySalary() return mySalary; public Salary getQuerySalary() return querySalary; public String toQueryedResultPage() System.out.println(salary); System.out.println(sessionMap.get(employee); getSalaryMy(); getSa
17、laryQuery(); return SUCCESS; SalaryService ss = new SalaryService(); private Salary getSalaryMy() Employee sessionEmployee = (Employee) sessionMap.get(employee); mySalary = ss.getSalary(sessionEmployee.getEmployeeNo(); System.out.println(mySalary); return mySalary; private Salary getSalaryQuery() qu
18、erySalary = ss.getSalary(salary.getEmployeeNo(); System.out.println(querySalary); return querySalary; Map sessionMap; public void setSession(Map session) sessionMap = session; public Map getSessionMap() return sessionMap; public void setSessionMap(Map sessionMap) this.sessionMap = sessionMap; 编辑员工基本
19、信息界面截图:这是添加员工的功能截图:编辑员工(含添加员工)的核心代码:package org.zhli.app.action;import java.util.LinkedList;import java.util.List;import java.util.Map;import org.apache.struts2.interceptor.SessionAware;import org.zhli.app.domain.Employee;import org.zhli.app.domain.EmployeeSalary;import org.zhli.app.domain.Salary;im
20、port org.zhli.app.service.BaseService;import com.opensymphony.xwork2.ActionSupport;public class EditEmployeeAction extends ActionSupport implements SessionAware private static final long serialVersionUID = 6273606100463539261L; private List employeeList; private List salaryList; private List employe
21、eSalaryList = new LinkedList(); private String no; private EmployeeSalary employeeSalary; private Employee employee; private Salary salary; public Employee getEmployee() return employee; public Salary getSalary() return salary; public void setEmployee(Employee employee) this.employee = employee; pub
22、lic void setSalary(Salary salary) this.salary = salary; public EmployeeSalary getEmployeeSalary() return employeeSalary; public void setEmployeeSalary(EmployeeSalary employeeSalary) this.employeeSalary = employeeSalary; public String getNo() return no; public void setNo(String no) this.no = no; publ
23、ic List getEmployeeSalaryList() return employeeSalaryList; public String toEditPage() getEmployeeListInfo(); getSalaryListInfo(); mergeEmployeeSalaryDate(); System.out.println(employeeSalaryList); return toEditEmployeePage; public String deleteEmployee() System.out.println(no); Employee employee = n
24、ew Employee(); employee.setEmployeeNo(no); Salary salary = new Salary(); salary.setEmployeeNo(no); boolean deletedE = BaseService.delete(employee); boolean deletedS = BaseService.delete(salary);/ System.out.println(deleted); return delete; public String toAddEmployeePage() return toAddEmployeePage;
25、public String addEmployeeAndSalary() salary.setEmployeeNo(employee.getEmployeeNo(); System.out.println(employee); System.out.println(salary); BaseService.add(employee); BaseService.add(salary); return add; public String toUpdateEmployeePage() System.out.println(no); employee = (Employee) BaseService
26、.get(Employee.class, no); salary = (Salary) BaseService.get(Salary.class, no); employeeSalary = new EmployeeSalary(employee); employeeSalary.setSalary(salary.getSalary(); System.out.println(employeeSalary); return toUpdatePage; public String updateEmployee() System.out.println(employeeSalary); Emplo
27、yee e = new Employee(); e.setEmployeeNo(employeeSalary.getEmployeeNo(); e.setEmployeeName(employeeSalary.getEmployeeName(); Salary s = new Salary(); s.setEmployeeNo(employeeSalary.getEmployeeNo(); s.setSalary(employeeSalary.getSalary(); BaseService.update(e); BaseService.update(s); return update; pr
28、ivate List mergeEmployeeSalaryDate() System.out.println(employeeList); System.out.println(salaryList); if (employeeList != null) for (Employee e : employeeList) EmployeeSalary es = new EmployeeSalary(e); if (salaryList != null) for (Salary s : salaryList) if (e.getEmployeeNo().equals(s.getEmployeeNo() es.setSalary(s.getSalary(); break; employeeSalaryL
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1