工资管理系统分析.docx

上传人:b****5 文档编号:5713866 上传时间:2022-12-31 格式:DOCX 页数:26 大小:357.26KB
下载 相关 举报
工资管理系统分析.docx_第1页
第1页 / 共26页
工资管理系统分析.docx_第2页
第2页 / 共26页
工资管理系统分析.docx_第3页
第3页 / 共26页
工资管理系统分析.docx_第4页
第4页 / 共26页
工资管理系统分析.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

工资管理系统分析.docx

《工资管理系统分析.docx》由会员分享,可在线阅读,更多相关《工资管理系统分析.docx(26页珍藏版)》请在冰豆网上搜索。

工资管理系统分析.docx

工资管理系统分析

企业工资管理系统

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〈String,Object>sessionMap;

publicStringexit(){

sessionMap.clear();

returnSUCCESS;

publicvoidsetSession(Mapsession){

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〈String,Object〉session){

sessionMap=session;

publicMapgetSessionMap(){

returnsessionMap;

publicvoidsetSessionMap(Map〈String,Object>sessionMap){

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

privateListsalaryList;

privateList〈EmployeeSalary〉employeeSalaryList=newLinkedList〈EmployeeSalary〉();

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;

publicListgetEmployeeSalaryList(){

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;

}

employeeSalaryList

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1