收藏 分销(赏)

工资管理系统—职工考勤管理系统.doc

上传人:pc****0 文档编号:8469336 上传时间:2025-02-14 格式:DOC 页数:29 大小:1.01MB 下载积分:10 金币
下载 相关 举报
工资管理系统—职工考勤管理系统.doc_第1页
第1页 / 共29页
工资管理系统—职工考勤管理系统.doc_第2页
第2页 / 共29页


点击查看更多>>
资源描述
得分: 课程设计报告 工资管理系统--职工考勤管理系统 姓名 班级 学号 课程名称 数据库原理及应用 指导教师 乔平安 2013年6月20日 目 录 1.工资管理系统需求分析…………………………1 1.1功能需求………………………………………1 1.1.1功能划分……………………………………1 1.1.2功能描述……………………………………1 1.2性能需求………………………………………1 1.3数据流图………………………………………2 1.4 数据字典………………………………………5 1.4.1 数据流的描述………………………………5 1.4.2处理逻辑的描述……………………………6 1.4.3数据存储的描述……………………………6 2.总体设计……………………………………………7 2.1数据库概念设计…………………………………7 2.2功能模块…………………………………………8 3.系统详细设计………………………………………9 3.1数据库逻辑设计…………………………………9 3.2各模块功能……………………………………10 3.2.1职工信息管理系统…………………………10 3.2.2职工工资管理系统…………………………10 3.2.3职工津贴管理系统…………………………10 3.2.4职工考勤管理系统…………………………10 4.系统实现……………………………………………11 4.1界面截图…………………………………………11 4.1.1主界面及工资基本信息界面………………11 4.1.2登录界面……………………………………12 4.1.3系统主界面…………………………………13 4.1.4考勤信息录入,修改,删除,查询界面……14 4.2设计代码………………………………………15 1、 需求分析 1.1 功能需求 1.1.1功能划分 (1)、员工考勤情况表;及时反映员工的出勤,以及缺勤扣款情况 (2)、员工津贴表,反映员工的加班时间,加班类别、加班天数、津贴情况等; (3)、员工基本信息表,反映员工的基本信息,反映员工的工种、等级,基本工资等信息; (4)、员工月工资表,计算月工资,生成打印清单。 (5)、银行表,用于员工工资的发放。 (6)、后勤部门表;反映员工的水电扣款信息等 1.1.2 功能描述 (1)、员工每个工种基本工资的设定 (2)、加班津贴管理,根据加班时间和类型给予不同的加班津贴; (3)、按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; (4)、员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12; (5)、企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印; (6)、系统维护功能; 1.2性能需求 此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时间特性上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。 1.3数据流图 根据工资管理要求及用户需求调查分析,得到以下数据流图 数据库操作 操作数据 系统操作 工资信息 考勤信息 进入基本界面 职工信息 津贴管理 图1.1第一层数据流图 修改职工信息 删除职工记录 输入职工基本信息 职工表 添加操作 修改操作 删除操作 用户 查询操作 职工号 图1.2职工信息的载入 修改工资信息 删除工资信息 输入工资基本信息 工资表 添加操作 修改操作 删除操作 查询操作 图1.3 工资的信息载入 修改考勤信息 删除考勤信息 输入考勤基本信息 考勤表 添加操作 修改操作 删除操作 查询操作 用户 图1.4考勤的信息载入 修改津贴信息 删除津贴信息 输入津贴基本信息 津贴表 添加操作 修改操作 删除操作 查询操作 用户 图1.5津贴的信息载入 职工管理员进入系统 进入员工(工资,考勤,津贴)表 职工表 工资表 考勤表 津贴表 进行录入,修改,删除,查询操作 图1.6信息查询及管理的流程图 1.4数据字典 工资管理系统各实体及联系的数据字典 1.4.1数据流的描述 数据流的编号:D001 数据流的名称:员工基本信息 简述:与员工有关的基本信息 数据流来源:员工基本信息表 数据流去向:员工,部门 数据流组成:员工编号+姓名+性别+年龄+部门+进入公司时间+住址 数据流的编号:D002 数据流的名称:工资结构信息 简述:查询工资时所包含的相关信息 数据流来源:工资信息表 数据流去向:员工 数据流组成:员工编号+加班加班+出差工资+迟到早退+矿工工资+应发工资+实发工资 数据流的编号:D003 数据流的名称:职务部门信息 简述:查询员工职务部门信息 数据流来源:职务部门信息表 数据流去向:员工 数据流组成:员工编号+职务+部门 数据流的编号:D004 数据流的名称:员工变动信息 简述:查询员工变动情况 数据流来源:员工变动信息表 数据流去向:员工 数据流组成:员工编号+原职务+原部门+现职务+现部门 1.4.2处理逻辑的描述 处理逻辑编号:p001 处理逻辑名称:工资统计 简述:对工资进行统计、计算 输入的数据流:基本工资信息 处理描述:根据职工的职位及其他相应情况计算出工资 输出的数据流:工资信息 处理逻辑编号:p002 处理逻辑名称:员工信息处理 简述:对员工信息进行处理 输入的数据流:员工信息 处理描述:根据员工的基本信息进行各种操作 输出的数据流:员工信息 处理逻辑编号:p003 处理逻辑名称:变动处理 简述:对员工的变动情况进行处理 输入的数据流:员工变动信息 处理描述:可进行添加、修改和删除等操作 输出的数据流:员工变动信息 1.4.3数据存储的描述 数据存储编号:F001 数据存储名称:员工基本信息表 简述:员工的基本信息 数据存储组成:员工编号+姓名+性别+年龄+部门+进入公司时间+住址 关键字:员工编号 相关联的处理:P002 数据存储编号:F002 数据存储名称:基本工资表 简述:员工的工资信息 数据存储组成:员工编号+加班加班+出差工资+迟到早退+矿工工资 关键字:员工编号 相关联的处理:P001 数据存储编号:F003 数据存储名称:变动信息表 简述:员工的变动信息 数据存储组成:员工编号+原职务+原部门+现职务+现部门 关键字:员工编号 相关联的处理:P002,P003 2.总体设计 2.1数据库概念设计 有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图 基本工资 其他奖金 加班奖金 年终奖金 职工号 时间 缺勤类别 缺勤天数 职工号 医疗保险 个人所得税 职工号 部门岗位 工龄 姓名 职工号 考勤 工资 津贴 员工 领取 1 n 电话号码 m 缺勤扣除 影响 n 1 n m 密码 影响 n 领取 1 n 图2.1实体之间关系E-R图 2.2功能模块 工资管理系统 员工管理模块 考勤管理模块 津贴管理模块 工资生成模块 系统模块 3.系统详细设计 3.1数据库逻辑设计 将以上E-R转换成如下关系模式 员工(职工号,姓名,工龄,部门岗位,电话号码,密码) 工资(职工号,个人所得税,基本工资,医疗保险,缺勤扣除) 考勤(职工号,缺勤天数,缺勤类别,时间) 津贴(职工号,年终奖金,加班奖金,其他奖金) 其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。 工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。 表一:员工信息表: 列名 数据类型 可否取空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) name Char(10) NOT NULL 职工姓名 gw Char(20) NOT NULL 部门岗位 gl Smallint NOT NULL 工龄 hm Char(11) NULL 电话号码 mi Smallint NOT NULL 登录密码 表二:工资表: 列名 数据类型 可否取空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) Jb money NOT NULL 基本工资 yl money NULL 医疗保险 Sw money NULL 个人所得税 kc money NULL 缺勤扣除 Jt money NULL 津贴 yz money NOT NULL 月总工资 表三:员工考勤信息表 列名 数据类型 可否取空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) ts Int(4) NULL 缺勤天数 lb Char(30) NULL 缺勤类别 Sj Char(10) NULL 缺勤时间 表四:津贴信息表 列名 数据类型 可否为空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) Jiaban money NULL 月加班奖金 nz money NULL 年终奖金 qt money NULL 其他奖金 3.2各模块功能 3.2.1职工信息管理系统 功能为:财务部门相关人员录入、修改、删除、查询员工个人信息;员工本人能通过用户名和密码查询自己的信息以及修改自己的密码; 3.2.2职工工资管理系统 功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总; 3.2.3职工津贴管理系统 功能为:财务部门相关人员录入、修改、删除、查询职工津贴信息;职工本人能查询自己的津贴; 3.2.4职工考勤管理系统 功能为:后勤管理人员录入、修改、删除、查询职工考勤信息;职工本人能查询自己的考勤情况。 采用模块化设计思想,可以大大提高设计的效率,并且可以最大限度地减少不必要的错误。 4.系统实现 4.1界面截图 4.1.1主界面及工资基本信息界面 4.1.2登录界面 4.1.3系统主界面 4.1.4考勤信息录入,修改,删除,查询界面 4.2设计代码 Java源程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.sql.*; import java.lang.*; import java.util.*; import javax.swing.table.*; import java.math.*; class DB_LS implements ActionListener{ JFrame frame=new JFrame("欢迎进入LS工资管理系统"); JLabel label=new JLabel("09网络2_54_李胜",JLabel.CENTER); JButton button1=new JButton("进入系统"); JButton button2=new JButton("退出系统"); ImageIcon im=new ImageIcon("1.jpg"); JLabel a1=new JLabel(im); void Create(){ JPanel pcontentPane=(JPanel)frame.getContentPane(); JPanel pcontentPane1=new JPanel(); pcontentPane.add(label); pcontentPane.setLayout(new FlowLayout()); pcontentPane.add(button1); pcontentPane.add(button2); pcontentPane.add(new Label(" ")); pcontentPane.add(a1); pcontentPane.setBackground(Color.green); pcontentPane.setVisible(true); button1.addActionListener(this); button2.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setBounds(200,100,550,600); frame.setVisible(true); } public static void main(String[] args){ DB_LS dome=new DB_LS(); dome.Create(); } public void actionPerformed(ActionEvent e){ if(button1.equals(e.getSource())){ DL dl=new DL(); dl.create(); } if(button2.equals(e.getSource())){//退出 System.exit(0); } } } class DL implements ActionListener{ JFrame frame=new JFrame("职工/管理员登陆"); JLabel label1=new JLabel("用户名"); JLabel label2=new JLabel("密码"); JButton logonButton1=new JButton("管理员登录"); JButton logonButton2=new JButton("职工登录"); JButton cancelButton=new JButton("退出"); JTextField t1=new JTextField(0); JTextField t2=new JTextField(0); ImageIcon im=new ImageIcon("2.jpg"); JLabel a2=new JLabel(im); JTextField username=new JTextField(9); JPasswordField password=new JPasswordField(9); void create(){ JPanel p=(JPanel)frame.getContentPane(); JPanel p1=new JPanel(); p.setLayout(new FlowLayout()); p.add(label1); p.setSize(5,5); p.setLocation(4,8); p.add(username); p.setSize(100,200); p.setLocation(800,800); p.add(label2); p.setSize(50,20); p.setLocation(40,80); p.add(password); p.setSize(100,20); p.setLocation(80,120); p.add(logonButton1); p.add(new JLabel(" ")); p.add(logonButton2); p.add(new JLabel(" ")); p.add(cancelButton); p.add(new JLabel(" ")); p.add(a2); p.add(t1); p.add(t2); p.setBackground(Color.blue); p.setVisible(true); logonButton1.addActionListener(this); logonButton2.addActionListener(this); cancelButton.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setBounds(200,100,750,550); frame.setVisible(true); } public void actionPerformed(ActionEvent e){ if(logonButton1.equals(e.getSource())&&(username.getText().equals("123")==true)&&(password.getText().equals("123")==true)){ GZGLZJM gz=new GZGLZJM(); gz.create(); } else{JOptionPane.showMessageDialog(null,"对不起,你输入的密码错误!"); }; if(logonButton2.equals(e.getSource())&&(username.getText().equals(t1.getText())==true)&&(password.getText().equals(t2.getText())==true)){ XK xk=new XK(); xk.create(); Connection con; Statement sql; ResultSet rs; Vector vector=new Vector(); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e1) { System.out.println("" + e1); } try { con = DriverManager.getConnection("jdbc:odbc:123", "", ""); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); sql.executeQuery("SELECT Gno,mm FROM Y WHERE Gno="+t1.getText() +"AND mm="+t2.getText()); }catch (SQLException e1) { System.out.println(e1); } } if(cancelButton.equals(e.getSource())){ System.exit(0); } } } class GZGLZJM extends JFrame implements ActionListener{ JFrame f=new JFrame("工资管理系统"); JButton b1=new JButton("津贴管理"); JButton b2=new JButton("总查询"); JButton b3=new JButton("工资管理"); JButton b4=new JButton("后勤管理"); JButton b6=new JButton("员工个人信息管理"); JButton b5=new JButton("返回"); ImageIcon im=new ImageIcon("3.jpg"); JLabel a3=new JLabel(im); void create(){ JPanel p=(JPanel)f.getContentPane(); JPanel p1=new JPanel(); p.setLayout(new FlowLayout()); p.add(b1); p.add(new JLabel(" ")); p.add(b6); p.add(new JLabel(" ")); p.add(b3); p.add(new JLabel(" ")); p.add(b4); p.add(new JLabel(" ")); p.add(b2); p.add(new JLabel(" ")); p.add(b5); p.add(a3); p.setBackground(Color.red); p.setVisible(true); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); f.setBounds(200,100,800,600); f.setVisible(true); } public void actionPerformed(ActionEvent e){ if(b5.equals(e.getSource())){//返回 DL d=new DL(); f.dispose(); } if(b1.equals(e.getSource())){//津贴管理 JTGL jt=new JTGL(); jt.create(); } if(b6.equals(e.getSource())){//员工个人信息管理 YGGL yg=new YGGL(); yg.create(); } if(b2.equals(e.getSource())){//查询 XK xk=new XK(); xk.create(); } if(b4.equals(e.getSource())){//后勤管理 KQGL kq=new KQGL(); kq.create(); } if(b3.equals(e.getSource())){//工资管理 GZGL gz=new GZGL(); gz.create(); } } } class KQGL implements ActionListener{ JFrame f=new JFrame("录入修改删除考勤信息"); JButton b1=new JButton("录入"); JButton b2=new JButton("修改"); JButton b3=new JButton("删除"); JButton b4=new JButton("查询所有"); JButton b5=new JButton("返回"); JTextField tf1=new JTextField(4); JTextField tf2=new JTextField(4); JTextField tf3=new JTextField(4); JTextField tf4=new JTextField(4); JTextField tf5=new JTextField(6); JButton b6=new JButton("查询单人考勤"); String[] cloum={"职工号","缺勤天数","缺勤类别","缺勤时间"}; Object[][] row=new Object[50][4]; JTable table=new JTable(row,cloum); JScrollPane scrollpane=new JScrollPane(table); JSplitPane splitpane=new JSplitPane(JSplitPane.VERTICAL_SPLIT); void create() { JPanel p=(JPanel)f.getContentPane(); p.setLayout(new FlowLayout()); //p.add(scrollpane); p.add(splitpane); JPanel p1=new JPanel(); p1.add(b1); p1.add(b2); p1.add(b3); p1.add(b4); p1.add(b6); p1.add(b5); JPanel p2=new JPanel(); p2.setBackground(Color.red); p2.add(scrollpane); JPanel p3=new JPanel(); p.setLayout(new FlowLayout()); p.add(new JLabel("")); p.add(new JLabel("职工号")); p.add(tf1); p.add(new JLabel("缺勤天数")); p.add(tf2); p.add(new JLabel("缺勤类别")); p.add(tf3); p.add(new JLabel("")); p.add(new JLabel("缺勤时间")); p.add(tf4); p.add(new JLabel(" 在此处输入职工号点击查询删除")); p.add(tf5); splitpane.add(p1,splitpane.TOP); splitpane.add(p2,splitpane.BOTTOM); splitpane.setDividerLocation(50); p.setBackground(Color.CYAN); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); f.setBounds(200,100,500,600); f.setResizable(true);//可以调整界面大小 f.setVisible(true); } public void actionPerformed(ActionEvent e){ if(b1.equals(e.getSource())){ //添加 Connection con; Statement sql; ResultSet rs; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e1) { System.out.println("" + e1); } try { con = DriverManager.getConnection("jdbc:odbc:123", "", ""); sql = con.createStatement(); String insertStr = "INSERT INTO K VALUES " + "(" + "'" + tf1.getText() + "'" + "," + tf2.getText()+"," + "'" +tf3.getText()+"'" + ","+tf4.getText()+")"; sql.executeUpdate(insertStr); con.close(); } catch (SQLException e1) { System.out.println(e1); } } if(b2.equals(e.getSource())){//修改 Connection con; Statement sql; ResultSet rs; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e1) { System.out.println("" + e1); } try { con = DriverManager.getConnection("jdbc:odbc:123", "", ""); sql = con.createStatement(); sql.executeUpdate("UPDATE K SET ts="+tf2.getText()+"WHERE Kno="+tf1.getText()+""); sql.executeUpdate("UPDATE K SET lb="+tf3.getText()+"WHERE Kno="+tf1.getText()+""); sql.executeUpdate("UPDATE K SET sj="+tf4.getText()+"WHERE Kno="+tf1.getText()+""); con.close(); } catch (SQLException e1) { System.out.println(e1); } } if(b3.equals(e.getSource())){//删除 Connection con; Statement sql; ResultSet rs; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e1) { System.out.println("" + e1); } try { con = DriverM
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服