Java工资管理系统.docx

上传人:牧羊曲112 文档编号:1894065 上传时间:2022-12-24 格式:DOCX 页数:37 大小:3.71MB
返回 下载 相关 举报
Java工资管理系统.docx_第1页
第1页 / 共37页
Java工资管理系统.docx_第2页
第2页 / 共37页
Java工资管理系统.docx_第3页
第3页 / 共37页
Java工资管理系统.docx_第4页
第4页 / 共37页
Java工资管理系统.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《Java工资管理系统.docx》由会员分享,可在线阅读,更多相关《Java工资管理系统.docx(37页珍藏版)》请在三一办公上搜索。

1、 Java程序设计基础课程设计课题名称 工资管理系统工资管理设计 学 号 姓 名 班 级 指导老师 企业工资管理工资管理子系统企业工资管理工资管理子系统2一需求分析报告31.组织机构操作方式上的可行性32.基础数据的可用性33.经济上的可行性34.技术上的可行性35.目标分析3二项目开发计划41.项目开发组织机构的设置和人员的安排42.项目开发的进度43.项目开发经费的概算44.项目所需的硬件和软件资源等4三系统分析报告41.业务流程图42.数据流程图63.功能分析图84.数据字典.95.数据加工处理的描述126.管理信息系统流程设计图(新系统模型)12四 .系统设计报告13五.系统实现部分1

2、62.源程序163.模拟运行数据334.测试用例346.系统使用说明书。37六.工作总结35七、致谢36八附录36一需求分析报告1.组织机构操作方式上的可行性本系统运行在通用的Windows操作系统上,具有Windows相似的操作界面。具有简单易学,使用方便等特点,只需在计算机上进行相关的简单的设置即可,懂得计算机基本操作的人员经过短期培训培训即可熟练操作,熟悉计算机操作的人员不需要再经过专门的培训即可熟练操作。所以,从组织机构操作方式上的可行性分析,该系统是可行的。2.基础数据的可用性企业工资管理系统的基础数据都是一些比较常见的基础数据,比如职工编号,姓名,部门编号等等,在系统的设计过程中都

3、是很好使用和编排的,所以,从系统基础数据可用性的角度看,该系统是可行的。3.经济上的可行性a.采用新的工资管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高工资汇总的效率,使公司变的资金运转更加便捷。b.开发经费、投资方面的来源和限制:各种硬件及人员花费至少需8000元.所以,从经济上的可行性分析,该系统是可行的。4.技术上的可行性本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。职工工资管理系统开发与运行环境选择如下: 开发

4、环境:Windows XP 开发工具:Java,Java软件可以选用eclipse3.5数据库管理系统:access数据库5.目标分析 做出一个简单实用工资管理系统,不需要功能复杂,只需要实用性强。功能要在很多小型企业都能够使用。操作性简单,要最大限度的减少使用用户的工作量。二项目开发计划1.项目开发组织机构的设置和人员的安排本系统开发人员共有4位,每人负责一部分。 :负责工资管理部分; :负责考勤管理部分; :负责工资管理部分; :负责前台设置部分;2.项目开发的进度本小组决定在两周之内完成该项目的开发,即完成对该工资管理系统的开发,本系统计划分为四个模块,分别为工资管理,工资管理,考勤管理

5、,前后台设置。第一周将系统设计报告撰写好,第三周时间进行系统设计和java代码设计,最后测试系统并加以完善。3.项目开发经费的概算项目开发经费的预算为:各种软硬件及人员花费至少需8000元。4.项目所需的硬件和软件资源等硬件、软件、运行环境和开发环境方面的条件和限制:软件需求:操作系统WINDOWS 2000 Advance Server以上;数据库服务器端软件access,java编程软件,jdk1.6版本。硬件需求:10M以上的LAN接入网络带宽,P4 3.0G Xeon CPU /1G内存/360G(10K) SCSI硬盘的服务器,P3以上微机(带网卡)的客户机,P4 3.0G Xeon

6、 CPU /1G内存/36G(10K) RAID硬盘的数据库服务器。本系统采用java实现,依靠其强大的控件系统以及access数据库管理系统。三系统分析报告1.业务流程图图例说明: 表示外部实体 表示处理过程的说明表示系统 表示生成文档 表示表 表示信息的传输过程,线段上的文字是对传递信息的说明根据需求分析,我们分析出一个工资管理系统中工资管理子系统业务的一般流程:首先,用户必须进行注册以及登陆,才能进入工资管理系统。注册及登陆的流程如下:图3-1员工注册及登陆业务流程图其次,员工登陆进入工资管理子系统之后就要进行工资查询。 图3-2 企业工资管理工资管理子系统业务流程图2.数据流程图图例说

7、明: 表示外部实体 表示处理过程表示存储信息或文件 带有名称的有向线段表示数据流图3-3 工资管理系统顶层DFD图3-4 工资管理系统的第一层DFD 图3-5 企业工资管理工资管理子系统的数据流程图3.功能分析图该工资管理工资管理子系统的总体功能可以从两个方面来分析,一是查找功能,二是编辑功能-包括修改,删除,和添加,总体功能设计如图3-4所示。功能名称查询功能编辑功能员工员工和管理员都可以通过在进入工资管理子系统后,对员工的基本,和基本工资信息进行查询无管理员管理员通过管理权限登录后,可根据改变员工信息,对基本工资表,工资表进行修改,添加和删除操作。图3-6 工资管理子系统功能分析图4.数据

8、字典数据字典中有六类条目:数据元素、数据结构、数据流、数据存储、处理过程和外部实体。不同类型的条目有不同的属性。根据“数据流程图”,编写相应的“数据字典”,如下所示。(1)数据元素条目 数据元素条目总编码:3-1 编号:01数据项名称:员工编号 有关编码说明:数值类型:离散 XX XX类型:数字 序号长度:8 职务编号说明: 员工的具体编号 有关数据结构:基本工资表,工资表,可变工资表,最终工资表考勤表 数据元素条目总编码:3-2 编号:02数据项名称:姓名 类型:字符 长度:8 说明: 员工的姓名 有关数据结构:基本工资表,工资表,可变工资表,最终工资表考勤表 数据元素条目总编码:3-3 编

9、号:03数据项名称:性别 类型:字符 长度:2 说明: 员工的所拥有的性别 有关数据结构:工资表,最终工资表,考勤表 数据元素条目总编码:3-4 编号:04数据项名称:部门编号 有关编码说明:数值类型:离散 XX 类型:数字 部门编号长度:2 说明: 员工的所在部门的编号 有关数据结构:工资表,可变工资表,最终工资表考勤表 数据元素条目总编码:3-5 编号:05数据项名称:职务编号 有关编码说明:数值类型:离散 XX 类型:数字 职务编号长度:2 说明: 员工的拥有的职务的编号 有关数据结构:工资表,最终工资表 数据元素条目总编码:3-8 编号:08数据项名称:底薪 类型:数字 长度:8 说明

10、: 员工的得到的工资 有关数据结构:工资表,最终工资表 数据元素条目总编码:3-9 编号:09数据项名称:津贴 数值类型:离散 类型:数字 长度:8 说明: 员工得到的津贴 有关数据结构:工资表,最终工资表 (2)数据流条目名称:基本工资表简要说明:每月结束时,有工资管理员填写的表 总编号:3-10数据来源:管理员 编号:10数据流向: P1.1,P1.3 包含的数据结构: 流通量:1份/ 月员工编号性别姓名部门编号职务编号底薪津贴(3)处理过程定义名称:查询最终工资说明:月末员工查询最终工资 总编号:3-12输入: P3.2 编号:12输出: D6 处理:员工通过正确的权限,进入到最终工资表

11、界面,查询其本月所得到的最终工资.名称:修改基本工资表说明:月末管理员修改或查询基本工资 总编号:3-14输入:P1.1,P1.3 编号:14输出: D2 处理:管理员通过工资表和基本工资表的变动,对基本工资表进行查询或修改.(4)数据存储数据存储名称:基本工资表说明:月末按员工编号给员工发的最基本工资 总编号:3-16包含的数据结构: 编号:16员工编号性别 有关的数据流:姓名部门编号职务编号 信息量:1份/月底薪 有无立即查询:有津贴5.数据加工处理的描述数据加工处理的工具主要包括:结构化语言,判断树,决策表。下面用结构化语言描述。如果 职务是经理则 基本工资为2500 如果职务是部长 则

12、基本工资为2000如果职务是工人 则基本工资为12006.管理信息系统流程设计图(新系统模型) 图3-7 企业工资管理工资管理子系统设计报告四 .系统设计报告1. 功能结构设计本学工资管理子系统主要分为三个模块,包括查询,添加,修改和删除。本系统首先将员工的基本和基本工资信息输入,然后可以进行以下三种功能操作。图4-1 企业工资管理工资管理子系统功能模块设计2. 新系统信息处理流程设计 图4-2 3.代码设计(如:职工证号和部门代号等)每一个代码都只代表唯一的实体或属性,代码必须简单明了,但必须有利于对数据进行统计、汇总、分析等操作。同时必须满足系统要求,便于记忆和使用。该工资管理子系统是针对

13、员工信息进行管理的,主要涉及到的人员是员工,下面对员工的相关代码结构及编码规则进行说明,如下所示:员工编号 10 00 编号部门编号5.程序设计说明书五.系统实现部分1.程序框图(程序流程图)2.源程序下面是程序的各部分关系图:普通员工进入后的界面,只有查询功能,其余有添加修改删除操作的菜单为灰色,不能操作。这是管理员进入后的界面,全部可以操作,菜单显示可以全部操作。这是登陆界面的代码:import java.awt.*;class denglu extends Frame public Label name=new Label(用户名); public Label pass=new Labe

14、l(密码); public TextField txtname=new TextField(); public TextField txtpass=new TextField(); public Button btok=new Button(登陆); public Button btexit=new Button(取消); public condb conu=new condb(); private String sql=null; private ResultSet rs=null; private Image img; public denglu() img=getToolkit().ge

15、tImage(getClass().getResource(/ww.png); setTitle(欢迎使用工资管理系统); setLayout(null); setResizable(false); setSize(500,350); Dimension scr=Toolkit.getDefaultToolkit().getScreenSize(); Dimension frm=this.getSize(); setLocation(scr.width-frm.width)/2,(scr.height-frm.height)/2-18); txtpass.setEchoChar(*); txt

16、name.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(new ActionListener() public void actionPerformed(A

17、ctionEvent e) dispose(); System.exit(0); ); btok.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) sql=select * from 数据库用户 where 用户名=+txtname.getText()+ and 密码=+txtpass.getText()+; try rs=conu.getrs(conu.con,sql); if(rs.next() ) mainff mf=new mainff(); if(rs.getInt(4)

18、!=0) mf.getInitsys().setEnabled(false); mf.getUser().setEnabled(false); mf.getGong2().setEnabled(false); dispose(); mf.show(); else JOptionPane jop=new JOptionPane(); jop.showMessageDialog(null,用户名或密码错误,信息提示!,-1); catch(Exception ee) ); addWindowListener( new WindowAdapter() public void windowClosin

19、g(WindowEvent e) dispose(); System.exit(0); ); public void paint(Graphics g) g.setClip(new Rectangle2D.Float(0,0,500,350); g.drawImage(img,0,0,this); public class dl public static void main(String args) denglu deng=new denglu(); 工资查询的功能截图查询代码:import java.awt.*;import java.awt.event.*;import javax.sw

20、ing.*;import java.sql.*;class whole extends JDialog implements ActionListener private condb con = null;private ResultSet rs = null;private String sql = null;private JLabel bmhao = new JLabel(员工编号:);private JLabel bmname = new JLabel(姓名:);private JTextField wholetx1 = new JTextField();private JTextFi

21、eld wholetx2 = new JTextField();private JButton ok = new JButton(查询);private JOptionPane jop = new JOptionPane();private JTable ta = null;private JScrollPane taooo = new JScrollPane();private String col = 员工编号, 姓名, 旷工, 迟到, 底薪, 加班, 绩效奖励,出勤金额, 实发工资 ;private Object rowline = new String4510;private bool

22、ean tf = false;public whole() con=new condb();setTitle(全部信息);setSize(600, 300);getContentPane().setBackground(Color.LIGHT_GRAY);getContentPane().setLayout(null);Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();Dimension frm = getSize();setLocation(int) (scr.getWidth() - frm.getWidth() / 2

23、, 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);getCo

24、ntentPane().add(ok);ok.addActionListener(this);setVisible(true);public void initTable(Object row, String col) if (wholetx1.getText().equals()& wholetx2.getText().equals() sql = select * from 员工数据表,出勤表,员工绩效,最终工资 where + 员工数据表.员工编号=最终工资.员工编号 and 最终工资.员工编号=出勤表.员工编号 and 出勤表.员工编号=员工绩效.员工编号; else if (whol

25、etx1.getText().equals() = false) sql = select * from 员工数据表,出勤表,员工绩效,最终工资 where + 员工数据表.员工编号=最终工资.员工编号 and 最终工资.员工编号=出勤表.员工编号 and 出勤表.员工编号=员工绩效.员工编号 and 员工数据表.员工编号= +wholetx1.getText() + ;System.out.println(sql);else if (wholetx2.getText().equals() = false) sql = select * from 员工数据表,出勤表,员工绩效,最终工资 whe

26、re + 员工数据表.员工编号=最终工资.员工编号 and 最终工资.员工编号=出勤表.员工编号 and 出勤表.员工编号=员工绩效.员工编号 and 员工数据表.员工姓名=+wholetx2.getText() + ;System.out.println(sql);Connection conn=con.getConn();Statement sta=null;try sta = conn.createStatement();ResultSet rs=sta.executeQuery(sql);int cnt = 0;while (rs.next()rowlinecnt0 = rs.getS

27、tring(员工编号);rowlinecnt1 = rs.getString(员工姓名);rowlinecnt2 = rs.getString(矿工次数);rowlinecnt3 = rs.getString(迟到次数);rowlinecnt4 = rs.getString(底薪);rowlinecnt5 = rs.getString(加班次数);rowlinecnt6 = rs.getString(绩效奖励);rowlinecnt7 = rs.getString(出勤金额);rowlinecnt8 = rs.getString(实发工资);cnt+;ta = new JTable(rowli

28、ne, col);ta.setSize(580, 190);taooo = new JScrollPane(ta);taooo.setLocation(20, 50);taooo.setSize(560, 190);getContentPane().add(taooo);this.repaint(0, 0, 500, 300);tf = false; catch (SQLException e) / TODO 自动生成 catch 块e.printStackTrace();public void actionPerformed(ActionEvent ae) /* int cnt=1; whi

29、le(cnt11) rowlinecnt0=1; rowlinecnt1=2; rowlinecnt2=3; rowlinecnt3=4; rowlinecnt4=5; rowlinecnt5=6; rowlinecnt6=7; rowlinecnt7=8; rowlinecnt8=9; rowlinecnt9=10; cnt+; ta=new JTable(rowline,col); ta.setSize(580,190); taooo=new JScrollPane(ta); taooo.setLocation(20,50); taooo.setSize(560,190); getCont

30、entPane().add(taooo); this.repaint(0,0,500,300); con.dbclose(con.con,rs); con=null; tf=false;/删除*/if (tf = false) for (int i = 0; i rowline.length; i+)for (int j = 0; j 10; j+)rowlineij = null;initTable(rowline, col);wholetx1.setText();wholetx2.setText();这是工资设置的功能截图:工资设置的代码:import java.awt.*;import

31、java.awt.event.*;import java.sql.*;import javax.swing.*;class bm extends Frame implements ActionListener,ItemListener private condb conx=null; private ResultSet rs=null; private String sql=null; long id; private Label num=new Label(员工编号); private Label jb=new Label(姓名); private Label fj=new Label(底薪); private Label in=new Label(绩效奖励); private Label chu=new Label(出勤金额); private Label sf=new Label(实发工资); private TextField numtx=new TextField(); private TextField jbtx=new

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号