数据库课程设计企业工资管理系统.docx

上传人:牧羊曲112 文档编号:3560016 上传时间:2023-03-13 格式:DOCX 页数:37 大小:44.59KB
返回 下载 相关 举报
数据库课程设计企业工资管理系统.docx_第1页
第1页 / 共37页
数据库课程设计企业工资管理系统.docx_第2页
第2页 / 共37页
数据库课程设计企业工资管理系统.docx_第3页
第3页 / 共37页
数据库课程设计企业工资管理系统.docx_第4页
第4页 / 共37页
数据库课程设计企业工资管理系统.docx_第5页
第5页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、数据库课程设计企业工资管理系统得分: 课程设计报告 企业工资管理系统 姓名 班级 学号 课程名称 指导教师 XXX XXXXX XXXXXX 数据库原理及应用 201X年X月X日 目 录 一工资管理系统需求分析 1.1功能需求 1.1.1功能划分 1.1.2功能描述 1.2性能需求 1.3数据流图 二.总体设计 2.1数据库概念设计 2.2功能模块 三.系统详细设计 3.1数据库逻辑设计 3.2各模块功能 3.2.1职工信息管理系统 3.2.2职工工资管理系统 3.2.3职工津贴管理系统 四.系统实现 4.1界面截图 4.1.1主界面及工资基本信息界面 4.1.2登录界面 4.1.3系统主界面

2、 4.1.4信息录入,修改,删除,查询界面 4.2设计代码 五.实验总结 1、 需求分析 1.1 功能需求 1.1.1功能划分 (1)、员工信息表;及时反映员工的基本信息 (2)、员工津贴表,反映员工津贴 (3)、员工基本工资表 1.1.2 功能描述 (1)、基本工资的设定 (2)、津贴的设定 (3)、计算出月工资 (4)、录入员工工资信息 (5)、添加员工工资信息 、更改员工工资信息 1.2性能需求 此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时

3、间特性上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。本课程设计是用Java语言编写,mysql数据库。 1.3数据流图 根据工资管理要求及用户需求调查分析,得到以下数据流图 图1.1第一层数据流图 1 添加操作 输入职工基本信息 用户 修改职工信

4、息 修改操作 工资表 删除职工记录 删除操作 职工号 查询操作 图1.2职工信息的载入 添加操作 用户 修改操作 津贴表 删除操作 查询操作 图1.4考勤的信息载入 2.总体设计 2.1数据库概念设计 有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图 2 职工号 密码 员工 领取 津贴 姓名 姓名 津贴 职工号 影响 m 领取 职工号 1 n 工资 基本工资 姓名 图2.1实体之间关系E-R图 3 2.2功能模块 工资管理系统 系统模块 工资管理模块 职工 登 陆模 块 员工管理模块 3系统详细设计 3.1数据库逻辑设计 将以上E-R转换成如下关系模式 员工 工资 津贴 其

5、中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。 工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。 表一:员工信息表: 列名 no name mi 数据类型 Char ( 8 ) Char Smallint 可否取空 NOT NULL NOT NULL NOT NULL 备注说明 职工号 职工姓名 登录密码 4 表二:基本工资表: 列名 no name Jb 数据类型 Char ( 8 ) Char money 可否取空 NOT NULL NOT NULL NO

6、T NULL 备注说明 职工号 职工姓名 基本工资 表四:津贴信息表 列名 no name Jt 数据类型 Char ( 8 ) Char money 可否为空 NOT NULL NOT NULL NOT NULL 备注说明 职工号 职工姓名 津贴 3.2各模块功能 3.2.1职工信息管理系统 功能为:财务部门相关人员录入、修改、删除、查询员工个人信息 3.2.2职工工资管理系统 功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总; 3.2.3职工登陆查

7、询系统 功能为:员工本人能通过用户名和密码查询自己的信息以及修改自己的密码; 4.系统实现 4.1界面截图 4.1.1主界面 5 4.1.2登录界面 4.1.3管理员管理工资界面 4.1.4信息录入,修改,删除,查询界面 6 4.1.5职工信息查询界面 4.1.6职工密码修改界面 7 4.2设计代码 DB.java package wage_management; import java.awt.*; import java.awt.event.*; import javax.swing.*; class DB extends JFrame implements ActionListener

8、JFrame frame = new JFrame(欢迎进入企业工资管理系统); JLabel label = new JLabel(, 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; pcontentPan

9、e.add(a1); pcontentPane.add(label); pcontentPane.setLayout(new FlowLayout); pcontentPane.add(button1); pcontentPane.add(button2); pcontentPane.setVisible(true); button1.addActionListener(this); button2.addActionListener(this); 8 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack; frame

10、.setBounds(200, 100, 550, 180); frame.setVisible(true); public static void main(String args) DB dome = new DB; dome.Create; public void actionPerformed(ActionEvent e) if (button1.equals(e.getSource) DL dl = new DL; dl.create; frame.dispose; if (button2.equals(e.getSource) / 退出 System.exit(0); 登陆 DL.

11、java package wage_management; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.ImageIcon; imp

12、ort javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; 9 import javax.swing.JPasswordField; import javax.swing.JTextField; import com.mysql.jdbc.PreparedStatement; import Query.Querypad; class DL extends JFrame implem

13、ents ActionListener ImageIcon im = new ImageIcon(2.jpg); JLabel a2 = new JLabel(im); JFrame frame = new JFrame(职工/管理员登陆); JLabel label1 = new JLabel(用户名); JLabel label2 = new JLabel(密码); JButton logonButton1 = new JButton(管理员登录); JButton logonButton2 = new JButton(职工登录); JButton cancelButton = new J

14、Button(退出); JTextField username = new JTextField(9); JPasswordField password = new JPasswordField(9); static String t1; static String t2; void create JPanel p = (JPanel) frame.getContentPane; JPanel p1 = new JPanel; p.setLayout(new FlowLayout); p.add(a2); p.add(label1); p.setSize(5, 5); p.setLocatio

15、n(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); 10 p.add(logonButton1); p.add(logonButton2); p.add(cancelButton); p.setBackground(Color.cyan); p.setVisible(tr

16、ue); logonButton1.addActionListener(this); logonButton2.addActionListener(this); cancelButton.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack; frame.setBounds(200, 100, 500, 220); frame.setVisible(true); public void actionPerformed(ActionEvent e) t1 = userna

17、me.getText; t2 = password.getText; if(e.getSource=logonButton1) if( username.getText.equals(admin) = true & (password.getText.equals(admin) = true) JOptionPane.showMessageDialog(this, 登录成功!); GZGLZJM gz = new GZGLZJM; gz.create; frame.dispose; else JOptionPane.showMessageDialog(null, 输入用户名或密码错误!); i

18、f (e.getSource=logonButton2) try 11 Connection con; Statement ps; ResultSet rs; String sql = null; Class.forName(org.gjt.mm.mysql.Driver); Class.forName(org.gjt.mm.mysql.Driver).newInstance; con = DriverManager.getConnection( jdbc:mysql:/localhost:3306/wage management,root,jxb); sql=select * from wo

19、rkerinfo where name=+t1+ and mi=+t2+; ps=(PreparedStatement) con.prepareStatement(sql); rs = ps.executeQuery(sql); if(rs.next) if(rs.getString(name).equals(t1) & rs.getString(mi).equals(t2) YGDLJM yg = new YGDLJM; yg.create; frame.dispose; JOptionPane.showMessageDialog(this, 登录成功!); this.dispose; el

20、se JOptionPane.showMessageDialog(this, 输入用户名或密码错误!); catch (Exception e1) / TODO Auto-generated catch block e1.printStackTrace; if (cancelButton.equals(e.getSource) / 退出 System.exit(0); 12 GZGLZJM.java/工资管理主界面 package wage_management; import java.awt.Color; import java.awt.FlowLayout; import java.aw

21、t.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; class GZGLZJM extends JFrame implements ActionListener JFrame f = new JFrame(工资管理系统); JButton b1 = new

22、 JButton(工资管理); JButton b2 = new JButton(员工信息管理); JButton b3 = new JButton(返回); ImageIcon im = new ImageIcon(3.jpg); JLabel a1 = new JLabel(im); void create JPanel p = (JPanel) f.getContentPane; p.setLayout(new FlowLayout); p.add(a1); p.add(b1); p.add(b2); p.add(b3); p.setBackground(Color.cyan); p.s

23、etVisible(true); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); f.setBounds(200, 100, 500, 200); f.setVisible(true); 13 public void actionPerformed(ActionEvent e) if (b3.equals(e.getSource) / 返回 DL d = new DL; d.create; f.dispose; if (b2.equals(e.getSource) / 员工信

24、息管理 YGGL yg = new YGGL; yg.create; f.dispose; if (b1.equals(e.getSource) / 工资管理 GZGL gz = new GZGL; gz.create; f.dispose; /工资管理 GZGL.java package wage_management; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.s

25、ql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPan

26、e; import javax.swing.JSplitPane; 14 import javax.swing.JTable; import javax.swing.JTextField; public class GZGL extends JFrame implements ActionListener JFrame f = new JFrame(工资管理); JButton b1 = new JButton(录入); JButton b2 = new JButton(修改); JButton b3 = new JButton(删除); JButton b4 = new JButton(查询

27、所有); 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); JTextField tf6 = new JTextField(7); String cloum = 职工号, 姓名, 津贴, 月基本工资,月薪; Object row

28、= new Object505; 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 = n

29、ew JPanel; p1.add(b1); p1.add(b2); p1.add(b3); p1.add(b4); p1.add(b5); JPanel p2 = new JPanel; p2.setBackground(Color.cyan); p2.add(scrollpane); JPanel p3 = new JPanel; p.setLayout(new FlowLayout); p.add(new JLabel(); p.add(new JLabel(职工号); p.add(tf1); 15 p.add(new JLabel(姓名); p.add(tf2); p.add(new

30、JLabel(津贴); p.add(tf3); p.add(new JLabel(月基本工资); p.add(tf4); p.add(new JLabel(月薪); p.add(tf5); p.add(new JLabel(在此处输入职工号点击查询删除); p.add(tf6); splitpane.add(p1, splitpane.TOP); splitpane.add(p2, splitpane.BOTTOM); splitpane.setDividerLocation(50); p.setBackground(Color.CYAN); b1.addActionListener(this

31、); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.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

32、 sql; try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1); try con=DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb); sql = con.createStatement; String insertStr = INSERT INTO welfare (no,name,jt)VALUES(+tf1.getText+,

33、+tf2.getText+,+tf3.getText+); sql.executeUpdate(insertStr); String insertStr1 = INSERT INTO wageinfo (no,name,jb)VALUES(+tf1.getText+,+tf2.getText+16 ,+tf4.getText+); sql.executeUpdate(insertStr1); con.close; JOptionPane.showMessageDialog(this, 入录成功!); catch (SQLException e1) JOptionPane.showMessage

34、Dialog(this, 入录失败!); if (b2.equals(e.getSource) / 修改 Connection con; Statement sql; try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1); try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb); sql = con.createSta

35、tement; String updateStr = UPDATE welfare SET jt=+tf3.getText+,name=+tf2.getText+where no=+tf1.getText+; sql.executeUpdate(updateStr); String updateStr1 = UPDATE wageinfo SET jb=+tf4.getText+,name=+tf2.getText+where no=+tf1.getText+; sql.executeUpdate(updateStr1); JOptionPane.showMessageDialog(this,

36、 修改成功!); con.close; catch (SQLException e1) JOptionPane.showMessageDialog(this, 信息不存在!); if (b3.equals(e.getSource) / 删除 Connection con; Statement sql; ResultSet rs; 17 try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) System.out.println( + e1); try con = DriverManager.ge

37、tConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); sql.executeUpdate(DELETE FROM wageinfo where no=+tf6.getText+;); sql.executeUpdate(DELETE FROM welfare where no=+tf6.getText+;); JOptionPane.showM

38、essageDialog(this, 删除成功!); con.close; catch (SQLException e1) JOptionPane.showMessageDialog(this, 删除失败!); if (b4.equals(e.getSource) / 查询全部 Connection con; Statement sql; ResultSet rs; /Vector vector = new Vector; try Class.forName(org.gjt.mm.mysql.Driver); catch (ClassNotFoundException e1) JOptionP

39、ane.showMessageDialog(this, 连接数据库失败!); try con = DriverManager.getConnection(jdbc:mysql:/localhost:3306/wage management,root,jxb); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); 18 if (b4.equals(e.getSource) for (int i = 0; i 50; i+) for (int j = 0; j 4; j+)

40、table.setValueAt(, i, j); rs = sql.executeQuery(select distinct * from wageinfo ,welfare where wageinfo.name=welfare.name); int k = -1; while (rs.next) +k; String no = rs.getString(1); String name = rs.getString(2); String jb = rs.getString(3); String jt = rs.getString(6); int sum= rs.getInt(3)+rs.g

41、etInt(6); table.setValueAt(no, k, 0); table.setValueAt(name, k, 1); table.setValueAt(jb, k, 3); table.setValueAt(jt, k, 2); table.setValueAt(sum,k,4); catch (SQLException e1) JOptionPane.showMessageDialog(this, 查询失败!); if (b5.equals(e.getSource) / 返回 GZGLZJM gl=new GZGLZJM; gl.create; f.dispose; /修改管理主界面 19 YGGLZJM.java package wage_management; import java.

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号