工资管理系统工资管理设计.docx
- 文档编号:23869866
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:38
- 大小:472.54KB
工资管理系统工资管理设计.docx
《工资管理系统工资管理设计.docx》由会员分享,可在线阅读,更多相关《工资管理系统工资管理设计.docx(38页珍藏版)》请在冰豆网上搜索。
工资管理系统工资管理设计
Java程序设计基础
课程设计
课题名称工资管理系统——工资管理设计
学号
姓名
班级
指导老师
企业工资管理——工资管理子系统
4.数据字典………………...…………………………………………………………………..9
一.需求分析报告
1.组织机构操作方式上的可行性
本系统运行在通用的Windows操作系统上,具有Windows相似的操作界面。
具有简单易学,使用方便等特点,只需在计算机上进行相关的简单的设置即可,懂得计算机基本操作的人员经过短期培训培训即可熟练操作,熟悉计算机操作的人员不需要再经过专门的培训即可熟练操作。
所以,从组织机构操作方式上的可行性分析,该系统是可行的。
2.基础数据的可用性
企业工资管理系统的基础数据都是一些比较常见的基础数据,比如职工编号,姓名,部门编号等等,在系统的设计过程中都是很好使用和编排的,所以,从系统基础数据可用性的角度看,该系统是可行的。
3.经济上的可行性
a.采用新的工资管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高工资汇总的效率,使公司变的资金运转更加便捷。
b.开发经费、投资方面的来源和限制:
各种硬件及人员花费至少需8000元.
所以,从经济上的可行性分析,该系统是可行的。
4.技术上的可行性
本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。
职工工资管理系统开发与运行环境选择如下:
开发环境:
WindowsXP
开发工具:
Java,Java软件可以选用eclipse3.5
数据库管理系统:
access数据库
5.目标分析
做出一个简单实用工资管理系统,不需要功能复杂,只需要实用性强。
功能要在很多小型企业都能够使用。
操作性简单,要最大限度的减少使用用户的工作量。
二.项目开发计划
1.项目开发组织机构的设置和人员的安排
本系统开发人员共有4位,每人负责一部分。
:
负责工资管理部分;
:
负责考勤管理部分;
:
负责工资管理部分;
:
负责前台设置部分;
2.项目开发的进度
本小组决定在两周之内完成该项目的开发,即完成对该工资管理系统的开发,本系统计划分为四个模块,分别为工资管理,工资管理,考勤管理,前后台设置。
第一周将系统设计报告撰写好,第三周时间进行系统设计和java代码设计,最后测试系统并加以完善。
3.项目开发经费的概算
项目开发经费的预算为:
各种软硬件及人员花费至少需8000元。
4.项目所需的硬件和软件资源等
硬件、软件、运行环境和开发环境方面的条件和限制:
软件需求:
操作系统WINDOWS2000AdvanceServer以上;数据库服务器端软件access,java编程软件,jdk1.6版本。
硬件需求:
10M以上的LAN接入网络带宽,P43.0GXeonCPU/1G内存/360G(10K)SCSI硬盘的服务器,P3以上微机(带网卡)的客户机,P43.0GXeonCPU/1G内存/36G(10K)RAID硬盘的数据库服务器。
本系统采用java实现,依靠其强大的控件系统以及access数据库管理系统。
三.系统分析报告
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
类型:
数字序号
长度:
8职务编号
说明:
员工的具体编号
有关数据结构:
基本工资表,工资表,可变工资表,最终工资表
考勤表
数据元素条目
总编码:
3-2
编号:
02
数据项名称:
姓名
类型:
字符
长度:
8
说明:
员工的姓名
有关数据结构:
基本工资表,工资表,可变工资表,最终工资表
考勤表
数据元素条目
总编码:
3-3
编号:
03
数据项名称:
性别
类型:
字符
长度:
2
说明:
员工的所拥有的性别
有关数据结构:
工资表,最终工资表,考勤表
数据元素条目
总编码:
3-4
编号:
04
数据项名称:
部门编号有关编码说明:
数值类型:
离散XX
类型:
数字部门编号
长度:
2
说明:
员工的所在部门的编号
有关数据结构:
工资表,可变工资表,最终工资表
考勤表
数据元素条目
总编码:
3-5
编号:
05
数据项名称:
职务编号有关编码说明:
数值类型:
离散XX
类型:
数字职务编号
长度:
2
说明:
员工的拥有的职务的编号
有关数据结构:
工资表,最终工资表
数据元素条目
总编码:
3-8
编号:
08
数据项名称:
底薪
类型:
数字
长度:
8
说明:
员工的得到的工资
有关数据结构:
工资表,最终工资表
数据元素条目
总编码:
3-9
编号:
09
数据项名称:
津贴
数值类型:
离散
类型:
数字
长度:
8
说明:
员工得到的津贴
有关数据结构:
工资表,最终工资表
(2)数据流条目
名称:
基本工资表
简要说明:
每月结束时,有工资管理员填写的表总编号:
3-10
数据来源:
管理员编号:
10
数据流向:
P1.1,P1.3
包含的数据结构:
流通量:
1份/月
员工编号
性别
姓名
部门编号
职务编号
底薪
津贴
(3)处理过程定义
名称:
查询最终工资
说明:
月末员工查询最终工资总编号:
3-12
输入:
P3.2编号:
12
输出:
D6
处理:
员工通过正确的权限,进入到
最终工资表界面,查询其本月所得到
的最终工资.
名称:
修改基本工资表
说明:
月末管理员修改或查询基本工资总编号:
3-14
输入:
P1.1,P1.3编号:
14
输出:
D2
处理:
管理员通过工资表和基本工资表的变动,对
基本工资表进行查询或修改.
(4)数据存储
数据存储名称:
基本工资表
说明:
月末按员工编号给员工发的最基本工资总编号:
3-16
包含的数据结构:
编号:
16
员工编号
性别有关的数据流:
姓名
部门编号
职务编号信息量:
1份/月
底薪有无立即查询:
有
津贴
5.数据加工处理的描述
数据加工处理的工具主要包括:
结构化语言,判断树,决策表。
下面用结构化语言描述。
如果 职务是经理
则 基本工资为2500
如果 职务是部长
则 基本工资为2000
如果 职务是工人
则 基本工资为1200
6.管理信息系统流程设计图(新系统模型)
图3-7企业工资管理——工资管理子系统设计报告
四.系统设计报告
1.功能结构设计
本学工资管理子系统主要分为三个模块,包括查询,添加,修改和删除。
本系统首先将员工的基本和基本工资信息输入,然后可以进行以下三种功能操作。
图4-1企业工资管理——工资管理子系统功能模块设计
2.新系统信息处理流程设计
图4-2
3.代码设计(如:
职工证号和部门代号等)
每一个代码都只代表唯一的实体或属性,代码必须简单明了,但必须有利于对数据进行统计、汇总、分析等操作。
同时必须满足系统要求,便于记忆和使用。
该工资管理子系统是针对员工信息进行管理的,主要涉及到的人员是员工,下面对员工的相关代码结构及编码规则进行说明,如下所示:
员工编号
1000
5.程序设计说明书
五.系统实现部分
1.程序框图(程序流程图)
2.源程序
下面是程序的各部分关系图:
普通员工进入后的界面,只有查询功能,其余有添加修改删除操作的菜单为灰色,不能操作。
这是管理员进入后的界面,全部可以操作,菜单显示可以全部操作。
这是登陆界面的代码:
importjava.awt.*;
classdengluextendsFrame
{publicLabelname=newLabel("用户名");
publicLabelpass=newLabel("密码");
publicTextFieldtxtname=newTextField();
publicTextFieldtxtpass=newTextField();
publicButtonbtok=newButton("登陆");
publicButtonbtexit=newButton("取消");
publiccondbconu=newcondb();
privateStringsql=null;
privateResultSetrs=null;
privateImageimg;
publicdenglu()
{
img=getToolkit().getImage(getClass().getResource("/ww.png"));
setTitle("欢迎使用工资管理系统");
setLayout(null);
setResizable(false);
setSize(500,350);
Dimensionscr=Toolkit.getDefaultToolkit().getScreenSize();
Dimensionfrm=this.getSize();
setLocation((scr.width-frm.width)/2,(scr.height-frm.height)/2-18);
txtpass.setEchoChar('*');
txtname.setBounds(120,260,120,27);
txtpass.setBounds(120,300,120,27);
btok.setBounds(340,260,100,28);
btexit.setBounds(340,300,100,28);
add(name);
add(txtname);
add(pass);
add(txtpass);
add(btok);
add(btexit);
setVisible(true);
btexit.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
dispose();
System.exit(0);
}});
btok.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
sql="select*from数据库用户where用户名='"+txtname.getText()+"'and密码='"+txtpass.getText()+"'";
try{rs=conu.getrs(conu.con,sql);
if(rs.next())
{mainffmf=newmainff();
if(rs.getInt(4)!
=0){
mf.getInitsys().setEnabled(false);
mf.getUser().setEnabled(false);
mf.getGong2().setEnabled(false);
}
dispose();
mf.show();
}
else{JOptionPanejop=newJOptionPane();
jop.showMessageDialog(null,"用户名或密码错误","信息提示!
",-1);}
}catch(Exceptionee){}
}
});
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{dispose();
System.exit(0);
}
});
}
publicvoidpaint(Graphicsg)
{g.setClip(newRectangle2D.Float(0,0,500,350));
g.drawImage(img,0,0,this);
}
}
publicclassdl
{publicstaticvoidmain(Stringargs[])
{dengludeng=newdenglu();
}
}
工资查询的功能截图
查询代码:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
classwholeextendsJDialogimplementsActionListener{
privatecondbcon=null;
privateResultSetrs=null;
privateStringsql=null;
privateJLabelbmhao=newJLabel("员工编号:
");
privateJLabelbmname=newJLabel("姓名:
");
privateJTextFieldwholetx1=newJTextField();
privateJTextFieldwholetx2=newJTextField();
privateJButtonok=newJButton("查询");
privateJOptionPanejop=newJOptionPane();
privateJTableta=null;
privateJScrollPanetaooo=newJScrollPane();
privateStringcol[]={"员工编号","姓名","旷工","迟到","底薪","加班","绩效奖励",
"出勤金额","实发工资"};
privateObjectrowline[][]=newString[45][10];
privatebooleantf=false;
publicwhole(){
con=newcondb();
setTitle("全部信息");
setSize(600,300);
getContentPane().setBackground(Color.LIGHT_GRAY);
getContentPane().setLayout(null);
Dimensionscr=Toolkit.getDefaultToolkit().getScreenSize();
Dimensionfrm=getSize();
setLocation((int)(scr.getWidth()-frm.getWidth())/2,150);
bmhao.setBounds(50,20,80,30);
wholetx1.setBounds(140,20,50,20);
bmname.setBounds(210,20,80,30);
wholetx2.setBounds(300,20,50,20);
ok.setBounds(400,20,100,30);
getContentPane().add(bmhao);
getContentPane().add(wholetx1);
getContentPane().add(bmname);
getContentPane().add(wholetx2);
getContentPane().add(ok);
ok.addActionListener(this);
setVisible(true);
}
publicvoidinitTable(Objectrow[][],Stringcol[]){
if(wholetx1.getText().equals("")&&wholetx2.getText().equals("")){
sql="select*from员工数据表,出勤表,员工绩效,最终工资where"+
"员工数据表.员工编号=最终工资.员工编号and最终工资.员工编号=出勤表.员工编号and出勤表.员工编号=员工绩效.员工编号";
}elseif(wholetx1.getText().equals("")==false){
sql="select*from员工数据表,出勤表,员工绩效,最终工资where"+
"员工数据表.员工编号=最终工资.员工编号and最终工资.员工编号=出勤表.员工编号and出勤表.员工编号=员工绩效.员工编号and员工数据表.员工编号="+wholetx1.getText()+"";
System.out.println(sql);
}
elseif(wholetx2.getText().equals("")==false){
sql="select*from员工数据表,出勤表,员工绩效,最终工资where"+
"员工数据表.员工编号=最终工资.员工编号and最终工资.员工编号=出勤表.员工编号and出勤表.员工编号=员工绩效.员工编号and员工数据表.员工姓名='"+wholetx2.getText()+"'";
System.out.println(sql);
}
Connectionconn=con.getConn();
Statementsta=null;
try{
sta=conn.createStatement();
ResultSetrs=sta.executeQuery(sql);
intcnt=0;
while(rs.next())
{
rowline[cnt][0]=rs.getString("员工编号");
rowline[cnt][1]=rs.getString("员工姓名");
rowline[cnt][2]=rs.getString("矿工次数");
rowline[cnt][3]=rs.getString("迟到次数");
rowline[cnt][4]=rs.getString("底薪");
rowline[cnt][5]=rs.getString("加班次数");
rowline[cnt][6]=rs.getString("绩效奖励");
rowline[cnt][7]=rs.getString("出勤金额");
rowline[cnt][8]=rs.getString("实发工资");
cnt++;
}
ta=newJTable(rowline,col);
ta.setSize(580,190);
taooo=newJScrollPane(ta);
taooo.setLocation(20,50);
taooo.setSize(560,190);
getContentPane().add(taooo);
this.repaint(0,0,500,300);
tf=false;
}catch(SQLExceptione){
//TODO自动生成catch块
e.printStackTrace();
}
}
publicvoidactionPerformed(ActionEventae){
/*{intcnt=1;
while(cnt<11)
{rowline[cnt][0]="1";
rowline[cnt][1]="2";
rowline[cnt][2]="3";
rowline[cnt][3]="4";
rowline[cnt][4]="5";
rowline[cnt][5]="6";
rowline[cnt][6]="7";
rowline[cnt][7]="8";
rowline[cnt][8]="9";
rowline[cnt][9]="10";
cnt++;
}
ta=newJTable(rowline,col);
ta.setSize(580,190);
taooo=newJScrollPane(ta);
taooo.setLocation(20,50);
taooo.setSize(560,190);
getContentPane().add(taoo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 系统 设计