数据库优秀课程设计企业工资综合管理系统java版完整代码.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开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(name, k, 1); table.setValueAt(jb, k, 3); table.setValueAt(jt, k,展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




数据库优秀课程设计企业工资综合管理系统java版完整代码.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2797133.html