工资管理系统分析.docx
- 文档编号:17680488
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:28
- 大小:354.99KB
工资管理系统分析.docx
《工资管理系统分析.docx》由会员分享,可在线阅读,更多相关《工资管理系统分析.docx(28页珍藏版)》请在冰豆网上搜索。
工资管理系统分析
企业工资管理系统
2015-11-17
企业工资管理——工资管理子系统
4.数据字典………………...…………………………………………………………………..6
四.系统实现部分12
1.程序框图12
2.源程序13
3.模拟运行数据22
4.测试用例23
5.系统使用说明书23
五.工作总结23
六、致谢23
七.附录23
一.需求分析
1.组织机构操作方式上的可行性
本系统运行在通用的linux操作系统上,具有linux相似的操作界面。
具有简单易学,使用方便等特点,只需在计算机上进行相关的简单的设置即可,懂得计算机基本操作的人员经过短期培训培训即可熟练操作,熟悉计算机操作的人员不需要再经过专门的培训即可熟练操作。
所以,从组织机构操作方式上的可行性分析,该系统是可行的。
2.基础数据的可用性
企业工资管理系统的基础数据都是一些比较常见的基础数据,比如职工编号,姓名,部门编号等等,在系统的设计过程中都是很好使用和编排的,所以,从系统基础数据可用性的角度看,该系统是可行的。
3.经济上的可行性
a.采用新的工资管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高工资汇总的效率,使公司变的资金运转更加便捷。
b.开发经费、投资方面的来源和限制:
各种硬件及人员花费至少需8000元.
所以,从经济上的可行性分析,该系统是可行的。
4.技术上的可行性
本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。
职工工资管理系统开发与运行环境选择如下:
开发环境:
ubuntu14.04ltx
开发工具:
Java,Java软件可以选用eclipse
数据库管理系统:
MySQL数据库
5.目标分析
做出一个简单实用工资管理系统,不需要功能复杂,只需要实用性强。
功能要在很多小型企业都能够使用。
操作性简单,要最大限度的减少使用用户的工作量。
二.系统分析
1.业务流程图
图例说明:
表示外部实体表示处理过程的说明
表示系统表示生成文档
表示表表示信息的传输过程
根据需求分析,我们分析出一个工资管理系统中工资管理子系统业务的一般流程:
首先,用户必须进行注册以及登陆,才能进入工资管理系统。
注册及登陆的流程如下:
图3-1员工注册及登陆业务流程图
其次,员工登陆进入工资管理子系统之后就要进行工资查询。
图3-2企业工资管理——工资管理子系统业务流程图
2.数据流程图
图例说明:
表示外部实体
表示处理过程
表示存储信息或文件
带有名称的有向线段表示数据流
图3-3工资管理系统顶层DFD
图3-4工资管理系统的第一层DFD
图3-5企业工资管理——工资管理子系统的数据流程图
3.功能分析图
该工资管理——工资管理子系统的总体功能可以从两个方面来分析,一是查找功能,二是编辑功能----包括修改,删除,和添加,总体功能设计如图3-4所示。
查询功能
编辑功能
员工
员工和管理员都可以通过在进入工资管理子系统后,对员工的基本,和基本工资信息进行查询
无
管理员
管理员通过管理权限登录后,可根据改变员工信息,对基本工资表,工资表进行修改,添加和删除操作。
图3-6工资管理子系统功能分析图
4.数据字典
数据字典中有六类条目:
数据元素、数据结构、数据流、数据存储、处理过程和外部实体。
不同类型的条目有不同的属性。
根据“数据流程图”,编写相应的“数据字典”,如下所示。
(1)数据元素条目
数据元素条目
总编码:
3-1
编号:
01
数据项名称:
员工编号有关编码说明:
数值类型:
离散XXXX
类型:
字符序号
长度:
16职务编号
说明:
员工的具体编号
有关数据结构:
工资表,员工表
数据元素条目
总编码:
3-2
编号:
02
数据项名称:
姓名
类型:
字符
长度:
32
说明:
员工的姓名
有关数据结构:
工资表,员工表
数据元素条目
总编码:
3-3
编号:
03
数据项名称:
性别
类型:
字符
长度:
2
说明:
员工的性别
有关数据结构:
员工表
(2)数据流条目
名称:
基本工资表
简要说明:
每月结束时,有工资管理员填写的表总编号:
3-4
数据来源:
管理员编号:
04
数据流向:
P1.1,P1.3
包含的数据结构:
流通量:
1份/月
员工编
姓名
工资
(3)处理过程定义
名称:
查询工资
说明:
月末员工查询工资总编号:
3-5
输入:
P3编号:
05
输出:
D6
处理:
员工通过正确的权限,进入到
工资表界面,查询其本月所得到
的工资.
名称:
修改基本工资表
说明:
月末管理员修改或查询基本工资总编号:
3-6
输入:
P1.1,P1.3编号:
06
输出:
D2
处理:
管理员通过工资表的变动,对
基本工资表进行查询或修改.
(4)数据存储
数据存储名称:
基本工资表
说明:
月末按员工编号给员工发的工资总编号:
3-7
包含的数据结构:
编号:
07
员工编号有关的数据流:
姓名信息量:
1份/月
工资有无立即查询:
有
5.数据加工处理的描述
数据加工处理的工具主要包括:
结构化语言,判断树,决策表。
下面用结
6.管理信息系统流程设计图(新系统模型)
图3-7企业工资管理——工资管理子系统设计
三.系统设计
1.功能结构设计
本学工资管理子系统主要分为三个模块,包括查询,添加,修改和删除。
本系统首先将员工的基本和基本工资信息输入,然后可以进行以下三种功能操作。
企业工资管理——工资管理子系统功能模块设计
2.系统信息处理流程设计
3.数据库物理设计数据库的设计分为三个部分,首先对雇员工资管理系统的设计进行需求分析,确定需要在数据库中保存的信息,然后应用E-R图对信息进行组织和连接,最后确定每个表的字段属性和主键等数据库信息。
a)数据库需求分析根据系统设计和业务逻辑分析,需要存放以下信息:
i.雇员信息:
雇员编号,雇员姓名,密码等。
ii.薪资信息:
雇员编号,工资等
b)E-R图的生成下列E-R图描述:
4.数据库关系表
5.数据库存储引擎设置
这里比较复杂,由于系统功能比较简单,所以采用默认的存储引擎即可,若今后系统功能十分复杂了,就需要考虑重新设计数据库的存储引擎,还要建立索引,视图等一系列的东西。
四.系统实现部分
1.程序框图(程序流程图)
下面是程序的各部分关系图:
2.源程序
登陆界面:
普通员工登陆进入系统后的界面,只有查询其他员工和自己的工资的功能,编辑员工不会显示出来。
这是管理员进入后的界面,全部可以操作,导航栏的链接可以全部显示出来,并可以操作。
这是登陆界面的核心代码:
packageorg.zhli.app.action;
importjava.util.Map;
importorg.apache.struts2.interceptor.SessionAware;
importorg.zhli.app.domain.Employee;
importorg.zhli.app.service.EmployeeService;
importcom.opensymphony.xwork2.ActionSupport;
publicclassLoginActionextendsActionSupportimplementsSessionAware{
privatestaticfinallongserialVersionUID=-1106832005908886865L;
privateEmployeeemployee=newEmployee();
publicEmployeegetEmployee(){
returnemployee;
}
publicvoidsetEmployee(Employeeemployee){
this.employee=employee;
}
publicStringexecute(){
returnSUCCESS;
}
publicStringtoLoginPage(){
System.out.println("success");
returnSUCCESS;
}
publicStringdoLogin(){
System.out.println(employee);
booleanexists=validateLogin(employee);
System.out.println(exists);
System.out.println(sessionMap.get("employee"));
if(exists){
return"employee";
}else{
returnSUCCESS;
}
}
privatebooleanvalidateLogin(Employeeemployee){
Employeee=newEmployeeService().validateLoginInfo(employee);
System.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);
returntrue;
}
returnfalse;
}
Map
publicStringexit(){
sessionMap.clear();
returnSUCCESS;
}
publicvoidsetSession(Map
sessionMap=session;
}
}
工资查询的功能截图
查询核心代码:
packageorg.zhli.app.action;
importjava.util.Map;
importorg.apache.struts2.interceptor.SessionAware;
importorg.zhli.app.domain.Employee;
importorg.zhli.app.domain.Salary;
importorg.zhli.app.service.SalaryService;
importcom.opensymphony.xwork2.ActionSupport;
publicclassQueryEmployeeActionextendsActionSupportimplementsSessionAware{
privatestaticfinallongserialVersionUID=-2199348217069147504L;
Salarysalary=newSalary();
SalarymySalary;
SalaryquerySalary;
publicSalarygetSalary(){
returnsalary;
}
publicvoidsetSalary(Salarysalary){
this.salary=salary;
}
publicSalarygetMySalary(){
returnmySalary;
}
publicSalarygetQuerySalary(){
returnquerySalary;
}
publicStringtoQueryedResultPage(){
System.out.println(salary);
System.out.println(sessionMap.get("employee"));
getSalaryMy();
getSalaryQuery();
returnSUCCESS;
}
SalaryServicess=newSalaryService();
privateSalarygetSalaryMy(){
EmployeesessionEmployee=(Employee)sessionMap.get("employee");
mySalary=ss.getSalary(sessionEmployee.getEmployeeNo());
System.out.println(mySalary);
returnmySalary;
}
privateSalarygetSalaryQuery(){
querySalary=ss.getSalary(salary.getEmployeeNo());
System.out.println(querySalary);
returnquerySalary;
}
Map
publicvoidsetSession(Map
sessionMap=session;
}
publicMap
returnsessionMap;
}
publicvoidsetSessionMap(Map
this.sessionMap=sessionMap;
}
}
编辑员工基本信息界面截图:
这是添加员工的功能截图:
编辑员工(含添加员工)的核心代码:
packageorg.zhli.app.action;
importjava.util.LinkedList;
importjava.util.List;
importjava.util.Map;
importorg.apache.struts2.interceptor.SessionAware;
importorg.zhli.app.domain.Employee;
importorg.zhli.app.domain.EmployeeSalary;
importorg.zhli.app.domain.Salary;
importorg.zhli.app.service.BaseService;
importcom.opensymphony.xwork2.ActionSupport;
publicclassEditEmployeeActionextendsActionSupportimplementsSessionAware{
privatestaticfinallongserialVersionUID=6273606100463539261L;
privateList
privateList
privateList
privateStringno;
privateEmployeeSalaryemployeeSalary;
privateEmployeeemployee;
privateSalarysalary;
publicEmployeegetEmployee(){
returnemployee;
}
publicSalarygetSalary(){
returnsalary;
}
publicvoidsetEmployee(Employeeemployee){
this.employee=employee;
}
publicvoidsetSalary(Salarysalary){
this.salary=salary;
}
publicEmployeeSalarygetEmployeeSalary(){
returnemployeeSalary;
}
publicvoidsetEmployeeSalary(EmployeeSalaryemployeeSalary){
this.employeeSalary=employeeSalary;
}
publicStringgetNo(){
returnno;
}
publicvoidsetNo(Stringno){
this.no=no;
}
publicList
returnemployeeSalaryList;
}
publicStringtoEditPage(){
getEmployeeListInfo();
getSalaryListInfo();
mergeEmployeeSalaryDate();
System.out.println(employeeSalaryList);
return"toEditEmployeePage";
}
publicStringdeleteEmployee(){
System.out.println(no);
Employeeemployee=newEmployee();
employee.setEmployeeNo(no);
Salarysalary=newSalary();
salary.setEmployeeNo(no);
booleandeletedE=BaseService.delete(employee);
booleandeletedS=BaseService.delete(salary);
//System.out.println(deleted);
return"delete";
}
publicStringtoAddEmployeePage(){
return"toAddEmployeePage";
}
publicStringaddEmployeeAndSalary(){
salary.setEmployeeNo(employee.getEmployeeNo());
System.out.println(employee);
System.out.println(salary);
BaseService.add(employee);
BaseService.add(salary);
return"add";
}
publicStringtoUpdateEmployeePage(){
System.out.println(no);
employee=(Employee)BaseService.get(Employee.class,no);
salary=(Salary)BaseService.get(Salary.class,no);
employeeSalary=newEmployeeSalary(employee);
employeeSalary.setSalary(salary.getSalary());
System.out.println(employeeSalary);
return"toUpdatePage";
}
publicStringupdateEmployee(){
System.out.println(employeeSalary);
Employeee=newEmployee();
e.setEmployeeNo(employeeSalary.getEmployeeNo());
e.setEmployeeName(employeeSalary.getEmployeeName());
Salarys=newSalary();
s.setEmployeeNo(employeeSalary.getEmployeeNo());
s.setSalary(employeeSalary.getSalary());
BaseService.update(e);
BaseService.update(s);
return"update";
}
privateList
System.out.println(employeeList);
System.out.println(salaryList);
if(employeeList!
=null){
for(Employeee:
employeeList){
EmployeeSalaryes=newEmployeeSalary(e);
if(salaryList!
=null){
for(Salarys:
salaryList){
if(e.getEmployeeNo().equals(s.getEmployeeNo())){
es.setSalary(s.getSalary());
break;
}
}
}
employeeSalaryL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 系统分析