数据库课程设计—企业工资管理系统(java版+完整代码).doc
《数据库课程设计—企业工资管理系统(java版+完整代码).doc》由会员分享,可在线阅读,更多相关《数据库课程设计—企业工资管理系统(java版+完整代码).doc(51页珍藏版)》请在咨信网上搜索。
(完整word版)数据库课程设计—企业工资管理系统(java版+完整代码) 得分: 课程设计报告 企业工资管理系统 姓名 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系统主界面……………………………………… 4.1.4信息录入,修改,删除,查询界面………… 4.2设计代码………………………………………………… 五.实验总结………………………………………………… 1、 需求分析 1.1 功能需求 1.1.1功能划分 (1)、员工信息表;及时反映员工的基本信息 (2)、员工津贴表,反映员工津贴 (3)、员工基本工资表 1.1.2 功能描述 (1)、基本工资的设定 (2)、津贴的设定 (3)、计算出月工资 (4)、录入员工工资信息 (5)、添加员工工资信息 (6)、更改员工工资信息 1.2性能需求 此工资管理系统对工资数据精度的计算能在默认情况之下精确到小数点后3位小数,即是精确到分的计算。但在用户使用过程中,能自行根据实际情况进行小数计算精度的设定,最大能允许保留小数点后5位的精度。在时间特性上,当用户发出命令请求时的服务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格式的磁盘上的数据均能实现信息的互通,及共享。当服务器移植到其他的系统平台,如:Linux平台下时,同样能和其他的系统进行数据存取同步,不会出现系统之间互不兼容的情况,系统支持多系统之间的互连互通,系统有巨大的强健性。本课程设计是用Java语言编写,mysql数据库。 1.3数据流图 根据工资管理要求及用户需求调查分析,得到以下数据流图 图1.1第一层数据流图 修改职工信息 删除职工记录 输入职工基本信息 工资表 添加操作 修改操作 删除操作 用户 查询操作 职工号 图1.2职工信息的载入 津贴表 添加操作 修改操作 删除操作 查询操作 用户 图1.4考勤的信息载入 2.总体设计 2.1数据库概念设计 有了数据流图,用E-R图来说明工资信息管理系统的数据库概念模式,如图 姓名 基本工资 职工号 工资 员工 职工号 领取 1 n m 影响 姓名 津贴 领取 姓名 津贴 密码 职工号 图2.1实体之间关系E-R图 2.2功能模块 工资管理系统 员工管理模块 职工登陆模块 工资管理模块 系统模块 3.系统详细设计 3.1数据库逻辑设计 将以上E-R转换成如下关系模式 员工(职工号,姓名,密码) 工资(职工号,姓名,基本工资,) 津贴(职工号,姓名,奖金) 其中,标有下划线的字段表示为该数据表的主码,即主关键字。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。 工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。 表一:员工信息表: 列名 数据类型 可否取空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) name Char(10) NOT NULL 职工姓名 mi Smallint NOT NULL 登录密码 表二:基本工资表: 列名 数据类型 可否取空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) name Char(10) NOT NULL 职工姓名 Jb money NOT NULL 基本工资 表四:津贴信息表 列名 数据类型 可否为空 备注说明 no Char ( 8 ) NOT NULL 职工号(主键) name Char(10) NOT NULL 职工姓名 Jt money NOT NULL 津贴 3.2各模块功能 3.2.1职工信息管理系统 功能为:财务部门相关人员录入、修改、删除、查询员工个人信息 3.2.2职工工资管理系统 功能为:根据工资生成公式,按照员工的考勤情况及各种表现按月生成相应的工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工的工资信息以及工资汇总;员工本人能查询自己的工资信息以及工资汇总; 3.2.3职工登陆查询系统 功能为:员工本人能通过用户名和密码查询自己的信息以及修改自己的密码; 4.系统实现 4.1界面截图 4.1.1主界面 4.1.2登录界面 4.1.3管理员管理工资界面 4.1.4信息录入,修改,删除,查询界面 4.1.5职工信息查询界面 4.1.6职工密码修改界面 4.2设计代码 DB.java package wage_management; import java.awt.*; import java.awt.event.*; import javax.swing.*; class DB extends JFrame implements ActionListener { 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(); pcontentPane.add(a1); pcontentPane.add(label); pcontentPane.setLayout(new FlowLayout()); pcontentPane.add(button1); pcontentPane.add(button2); pcontentPane.setVisible(true); button1.addActionListener(this); button2.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.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.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; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import com.mysql.jdbc.PreparedStatement; import Query.Querypad; class DL extends JFrame implements 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 JButton("退出"); 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.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(logonButton2); p.add(cancelButton); p.setBackground(Color.cyan); p.setVisible(true); 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 = username.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, "输入用户名或密码错误!"); } } if (e.getSource()==logonButton2) { try { 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 workerinfo 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(); } } else { JOptionPane.showMessageDialog(this, "输入用户名或密码错误!"); } }catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } if (cancelButton.equals(e.getSource())) // 退出 { System.exit(0); } } } GZGLZJM.java//工资管理主界面 package wage_management; import java.awt.Color; import java.awt.FlowLayout; import java.awt.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 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.setVisible(true); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); f.setBounds(200, 100, 500, 200); f.setVisible(true); } public void actionPerformed(ActionEvent e) { if (b3.equals(e.getSource())) {// 返回 DL d = new DL(); d.create(); f.dispose(); } if (b2.equals(e.getSource())) {// 员工信息管理 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.sql.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.JScrollPane; import javax.swing.JSplitPane; 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("查询所有"); 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 = new Object[50][5]; 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(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); p.add(new JLabel("姓名")); p.add(tf2); p.add(new 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); 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 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()+"','"+tf2.getText()+"','"+tf3.getText()+"');"; sql.executeUpdate(insertStr); String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1.getText()+"','"+tf2.getText()+"','"+tf4.getText()+"');"; sql.executeUpdate(insertStr1); con.close(); JOptionPane.showMessageDialog(this, "入录成功!"); } catch (SQLException e1) { JOptionPane.showMessageDialog(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.createStatement(); 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, "修改成功!"); con.close(); } catch (SQLException e1) { JOptionPane.showMessageDialog(this, "信息不存在!"); } } if (b3.equals(e.getSource())) {// 删除 Connection con; Statement sql; ResultSet rs; 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(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.showMessageDialog(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) { JOptionPane.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); if (b4.equals(e.getSource())) { for (int i = 0; i < 50; i++) for (int j = 0; j < 4; j++) 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.getInt(6); table.setValueAt(no, k, 0); table.setValueAt- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 企业 工资管理 系统 java 完整 代码
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文