工资管理系统分析Word格式.docx
- 文档编号:18700941
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:26
- 大小:357.26KB
工资管理系统分析Word格式.docx
《工资管理系统分析Word格式.docx》由会员分享,可在线阅读,更多相关《工资管理系统分析Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
做出一个简单实用工资管理系统,不需要功能复杂,只需要实用性强。
功能要在很多小型企业都能够使用。
操作性简单,要最大限度的减少使用用户的工作量。
二.系统分析
业务流程图
图例说明:
表示外部实体表示处理过程的说明
表示系统表示生成文档
表示表表示信息的传输过程
根据需求分析,我们分析出一个工资管理系统中工资管理子系统业务的一般流程:
首先,用户必须进行注册以及登陆,才能进入工资管理系统。
注册及登陆的流程如下:
图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.程序框图(程序流程图)
下面是程序的各部分关系图:
源程序
登陆界面:
普通员工登陆进入系统后的界面,只有查询其他员工和自己的工资的功能,编辑员工不会显示出来。
这是管理员进入后的界面,全部可以操作,导航栏的链接可以全部显示出来,并可以操作。
这是登陆界面的核心代码:
packageorg。
zhli.app。
action;
importjava.util。
Map;
importorg。
apache.struts2。
interceptor。
SessionAware;
importorg.zhli.app.domain.Employee;
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);
println(exists);
println(sessionMap.get("
employee"
));
if(exists){
return”employee"
;
}else{
returnSUCCESS;
}
}
privatebooleanvalidateLogin(Employeeemployee){
Employeee=newEmployeeService()。
validateLoginInfo(employee);
System.out.println(e);
out.println(employee);
if(e!
=null
&&e.getEmployeeNo().equals(employee.getEmployeeNo())
&
&e。
getEmployeePasswd()。
equals(employee.getEmployeePasswd())){
e.setEmployeePasswd(null);
sessionMap.put("
,e);
returntrue;
}
returnfalse;
Map〈String,Object>
sessionMap;
publicStringexit(){
sessionMap.clear();
publicvoidsetSession(Map<
String,Object>
session){
sessionMap=session;
}
工资查询的功能截图
查询核心代码:
packageorg.zhli.app.action;
importjava.util.Map;
importorg.apache.struts2。
SessionAware;
zhli。
app.domain。
Employee;
zhli.app.domain。
Salary;
app。
service.SalaryService;
ActionSupport;
publicclassQueryEmployeeActionextendsActionSupportimplementsSessionAware{
privatestaticfinallongserialVersionUID=-2199348217069147504L;
Salarysalary=newSalary();
SalarymySalary;
SalaryquerySalary;
publicSalarygetSalary(){
returnsalary;
publicvoidsetSalary(Salarysalary){
salary=salary;
publicSalarygetMySalary(){
returnmySalary;
publicSalarygetQuerySalary(){
returnquerySalary;
publicStringtoQueryedResultPage(){
println(salary);
println(sessionMap。
get("
employee”));
getSalaryMy();
getSalaryQuery();
returnSUCCESS;
SalaryServicess=newSalaryService();
privateSalarygetSalaryMy(){
EmployeesessionEmployee=(Employee)sessionMap.get(”employee”);
mySalary=ss.getSalary(sessionEmployee。
getEmployeeNo());
out.println(mySalary);
privateSalarygetSalaryQuery(){
querySalary=ss.getSalary(salary.getEmployeeNo());
out.println(querySalary);
Map<
String,Object〉sessionMap;
publicvoidsetSession(Map〈String,Object〉session){
publicMap<
String,Object>
getSessionMap(){
returnsessionMap;
publicvoidsetSessionMap(Map〈String,Object>
sessionMap){
this.sessionMap=sessionMap;
}
编辑员工基本信息界面截图:
这是添加员工的功能截图:
编辑员工(含添加员工)的核心代码:
packageorg.zhli.app.action;
importjava。
util。
LinkedList;
importjava.util.List;
importorg.apache.struts2.interceptor。
importorg.zhli。
domain.Employee;
importorg.zhli.app.domain.EmployeeSalary;
zhli.app.domain.Salary;
service。
BaseService;
importcom.opensymphony。
xwork2。
publicclassEditEmployeeActionextendsActionSupportimplementsSessionAware{
privatestaticfinallongserialVersionUID=6273606100463539261L;
privateList<
Employee〉employeeList;
Salary>
salaryList;
privateList〈EmployeeSalary〉employeeSalaryList=newLinkedList〈EmployeeSalary〉();
privateStringno;
privateEmployeeSalaryemployeeSalary;
privateEmployeeemployee;
privateSalarysalary;
publicSalarygetSalary(){
returnsalary;
this.employee=employee;
this.salary=salary;
publicEmployeeSalarygetEmployeeSalary(){
returnemployeeSalary;
publicvoidsetEmployeeSalary(EmployeeSalaryemployeeSalary){
this.employeeSalary=employeeSalary;
publicStringgetNo(){
returnno;
publicvoidsetNo(Stringno){
no=no;
publicList<
EmployeeSalary>
getEmployeeSalaryList(){
returnemployeeSalaryList;
publicStringtoEditPage(){
getEmployeeListInfo();
getSalaryListInfo();
mergeEmployeeSalaryDate();
println(employeeSalaryList);
return"
toEditEmployeePage”;
publicStringdeleteEmployee(){
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());
println(employee);
out.println(salary);
BaseService.add(employee);
BaseService.add(salary);
add"
publicStringtoUpdateEmployeePage(){
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(){
println(employeeSalary);
Employeee=newEmployee();
e.setEmployeeNo(employeeSalary。
getEmployeeNo());
e。
setEmployeeName(employeeSalary.getEmployeeName());
Salarys=newSalary();
s.setEmployeeNo(employeeSalary。
s。
setSalary(employeeSalary。
getSalary());
BaseService.update(e);
BaseService.update(s);
update”;
EmployeeSalary〉mergeEmployeeSalaryDate(){
out.println(employeeList);
out.println(salaryList);
if(employeeList!
=null){
for(Employeee:
employeeList){
EmployeeSalaryes=newEmployeeSalary(e);
if(salaryList!
for(Salarys:
salaryList){
if(e。
getEmployeeNo()。
equals(s.getEmployeeNo())){
es.setSalary(s.getSalary());
break;
}
}
}
employeeSalaryList
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 系统分析