收藏 分销(赏)

人力资源-Java工资管理系统.docx

上传人:xrp****65 文档编号:8484866 上传时间:2025-02-14 格式:DOCX 页数:37 大小:3.71MB
下载 相关 举报
人力资源-Java工资管理系统.docx_第1页
第1页 / 共37页
人力资源-Java工资管理系统.docx_第2页
第2页 / 共37页
点击查看更多>>
资源描述
Java程序设计基础 课程设计 课题名称 工资管理系统——工资管理设计 学 号 姓 名 班 级 指导老师 企业工资管理——工资管理子系统 企业工资管理——工资管理子系统 2 一.需求分析报告 3 1.组织机构操作方式上的可行性 3 2.基础数据的可用性 3 3.经济上的可行性 3 4.技术上的可行性 3 5.目标分析 3 二.项目开发计划 4 1.项目开发组织机构的设置和人员的安排 4 2.项目开发的进度 4 3.项目开发经费的概算 4 4.项目所需的硬件和软件资源等 4 三.系统分析报告 4 1.业务流程图 4 2.数据流程图 6 3.功能分析图 8 4.数据字典………………...…………………………………………………………………..9 5.数据加工处理的描述 12 6.管理信息系统流程设计图(新系统模型) 12 四 .系统设计报告 13 五.系统实现部分 16 2.源程序 16 3.模拟运行数据 33 4.测试用例 34 6.系统使用说明书。 37 六.工作总结 35 七、致谢 36 八.附录 36 一.需求分析报告 1.组织机构操作方式上的可行性 本系统运行在通用的Windows操作系统上,具有Windows相似的操作界面。具有简单易学,使用方便等特点,只需在计算机上进行相关的简单的设置即可,懂得计算机基本操作的人员经过短期培训培训即可熟练操作,熟悉计算机操作的人员不需要再经过专门的培训即可熟练操作。所以,从组织机构操作方式上的可行性分析,该系统是可行的。 2.基础数据的可用性 企业工资管理系统的基础数据都是一些比较常见的基础数据,比如职工编号,姓名,部门编号等等,在系统的设计过程中都是很好使用和编排的,所以,从系统基础数据可用性的角度看,该系统是可行的。 3.经济上的可行性 a.采用新的工资管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高工资汇总的效率,使公司变的资金运转更加便捷。 b.开发经费、投资方面的来源和限制:各种硬件及人员花费至少需8000元. 所以,从经济上的可行性分析,该系统是可行的。 4.技术上的可行性 本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。职工工资管理系统开发与运行环境选择如下: 开发环境:Windows XP 开发工具:Java,Java软件可以选用eclipse3.5 数据库管理系统:access数据库 5.目标分析 做出一个简单实用工资管理系统,不需要功能复杂,只需要实用性强。功能要在很多小型企业都能够使用。操作性简单,要最大限度的减少使用用户的工作量。 二.项目开发计划 1.项目开发组织机构的设置和人员的安排 本系统开发人员共有4位,每人负责一部分。 :负责工资管理部分; :负责考勤管理部分; :负责工资管理部分; :负责前台设置部分; 2.项目开发的进度 本小组决定在两周之内完成该项目的开发,即完成对该工资管理系统的开发,本系统计划分为四个模块,分别为工资管理,工资管理,考勤管理,前后台设置。第一周将系统设计报告撰写好,第三周时间进行系统设计和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 CPU /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 数据项名称:员工编号 有关编码说明: 数值类型:离散 XX XX 类型:数字 序号 长度: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.代码设计(如:职工证号和部门代号等) 每一个代码都只代表唯一的实体或属性,代码必须简单明了,但必须有利于对数据进行统计、汇总、分析等操作。同时必须满足系统要求,便于记忆和使用。 该工资管理子系统是针对员工信息进行管理的,主要涉及到的人员是员工,下面对员工的相关代码结构及编码规则进行说明,如下所示: 员工编号 10 00 编号 部门编号 5.程序设计说明书 五.系统实现部分 1.程序框图(程序流程图) 2.源程序 下面是程序的各部分关系图: 普通员工进入后的界面,只有查询功能,其余有添加修改删除操作的菜单为灰色,不能操作。 这是管理员进入后的界面,全部可以操作,菜单显示可以全部操作。 这是登陆界面的代码: import java.awt.*; class denglu extends Frame { public Label name=new Label("用户名"); public Label pass=new Label("密码"); 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().getImage(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('*'); 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(new ActionListener(){ public void actionPerformed(ActionEvent 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)!=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 windowClosing(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.swing.*; 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 JTextField 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 String[45][10]; private boolean 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, 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); } public void initTable(Object row[][], String col[]) { if (wholetx1.getText().equals("")&& wholetx2.getText().equals("")) { sql = "select * from 员工数据表,出勤表,员工绩效,最终工资 where" + " 员工数据表.员工编号=最终工资.员工编号 and 最终工资.员工编号=出勤表.员工编号 and 出勤表.员工编号=员工绩效.员工编号"; } else if (wholetx1.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 员工数据表,出勤表,员工绩效,最终工资 where" + " 员工数据表.员工编号=最终工资.员工编号 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()) { 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 = new JTable(rowline, 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; 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=new JTable(rowline,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); 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++) rowline[i][j] = null; initTable(rowline, col); wholetx1.setText(""); wholetx2.setText(""); } } } 这是工资设置的功能截图: 工资设置的代码: import java.awt.*; import 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 Te
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服