ImageVerifierCode 换一换
格式:DOC , 页数:48 ,大小:390.54KB ,
资源ID:2727214      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2727214.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

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

注意事项

本文(java专业课程设计人事标准管理系统.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

java专业课程设计人事标准管理系统.doc

1、人事管理系统 一.系统需求分析: 2 (1) 系统功效设计 2 (2) 系统功效结构 2 (3) 数据库设计 2 二. 功效模块开发 3 (1) 查询人员信息界面 3 (2) 添加职员界面 3 (3) 修改职员信息界面 4 (4) 删除职员界面 5 (5) 职员考评界面 5 (6) 职员考评历史统计界面 6 三. 各个类说明 6 四. 程序代码 9 (1) Manager 9 (2) CardEmploy 11 (3) SelEmploy 12 (4) AddEmploy 14 (5) ReviseEmploy 16 i UpdDialog 18

2、 (6) DelEmploy 21 (7) AllEmploy 22 (8) Examine 23 (9) History 27 (10) EmployModel 28 (11) AppraisalModel 30 (12) SqlHelper 33 一.系统需求分析: (1) 系统功效设计 i 职员信息管理:职员信息管理包含对职员基础信息和情况进行查询、添加、删除和修改及部门管理 ii 职员考评管理:包含对职员考评情况进行操作,还能够对历史考评情况进行浏览 (2) 系统功效结构 人事管理系统结构功效结构图所表示: (3) 数据库设计 职员基础表(E

3、mployinfo) 名称 字段名称 数据类型 主键 非空 工号 Empno varchar(10) Yes Yes 姓名 Ename varchar(10) No yes 性别 Sex varchar(4) No yes 出生年月 Birthday Datetime No Yes 部门 DeptNo Char(10) No Yes 职务 Ejob Char(20) No Yes 工资 Sal float No Yes 职员考评表(Appraisal) 名称 字段名称 数据类型 主键 非

4、空 工号 Empno varchar(10) yes yes 考评 Consequence varchar(10) no yes 变更日期 RegDate datetime No Yes 考评历史统计(History) 名称 字段名称 数据类型 主键 非空 流水号 JourNo Int Yes yes 工号 Empno varchar(10) no yes 姓名 Ename varchar(10) No Yes 上次考评 OldInfo varchar(10) No Yes 此次考评 NewI

5、nfo varchar(10) No Yes 变更日期 RegDate datetime No Yes 二. 功效模块开发 (1) 查询人员信息界面 实例一个SelEmploy类,当点击“查询”时调用EmployModel类queryEmploy方法实现查询 (2) 添加职员界面 实例一个AddEmploy类当点击“添加”时调用EmployModel类updEmploy方法实现添加功效 (3) 修改职员信息界面 实例一个ReviseEmploy类当点击“修改”时,先调用UpdDialo弹跳出一个修改信息对话框,信息修改完成后

6、调用EmployModel类updEmploy方法实现修改功效 (4) 删除职员界面 实例一个DelEmploy类当点击“删除”时调用EmployModel类updEmploy方法实现删除功效 (5) 职员考评界面 实例一个Examine类当点击“确定”时调用AppraisalModel类updAppraisal方法来完成考评功效 (6) 职员考评历史统计界面 实例一个History类当点击时调用AppraisalModel类updAppraisal方法来完成考评功效 三. 各个类说明 类之间关系图: 1. Manager类 Manager类一个实

7、例,从而生成了人事管理系统界面,用JSplitPane类将整个界面分为左右两个部分。其中左侧实现了人事管理系统功效树,采取JTree类构建,同时实现了TreeSelectionListener接口,定义了该接口所必需实现valueChanged(TreeSelectionEvent e)方法,JSplitPane右边加入卡片布局CardEmploy类。当JTreeTreeSelectionEvent事件发生时,调用CardEmployc.show方法 切换不一样卡片,实现不一样管理界面。 2. CardEmploy类 CardEmploy为卡片布局类面板,关键功效是添加各个界面卡片,当

8、JTreeTreeSelectionEvent事件发生时。切换不一样卡片 3. EmployModel、AppraisalModel类 这两个类继承了AbstractTableModel,关键实现功效是,存放调用sqlhelper 类得到数据。能够经过调用sqlhelper实现 增 删 查 改 功效 4. SqlHelper类 关键就是连接数据库部分基础操作是,方便代码修改,反复使用 5. SelEmploy 这个类继承Panel,为“查询职员”界面。实现了Actionlistener 接口,当ActionEvent 事件发生时,调用EmployModel类queryEmpl

9、oy方法实现查询 6. AddEmploy、ReviseEmploy、DelEmploy类 这些类继承Pane,分别为“添加职员信息”“修改职员信息”“删除职员信息”界面, 这些类实现了Actionlistener 接口,当ActionEvent 事件发生时,调用EmployModel类updEmploy方法实现添加、查询、删除、功效 7. Examine类 这个类继承Panel,为“考评职员”界面。这个类实现了Actionlistener 接口,当ActionEvent 事件发生时,(1)先经过调用AppraisalModelqueryAppraisal获取上次考评成绩,(2)修

10、改Appraisal表考评成绩(3)再把上次考评成绩跟此次考评成绩加到History表中 8. History 这个类关键是把History表中信息显示到界面上。 四. 程序代码 (1) Manager package com.Manager; import java.awt.*; import javax.swing.*; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.*

11、 import java.awt.event.*; public class Manager extends JFrame implements TreeSelectionListener { JPanel jp; JSplitPane js; JScrollPane jsp; JTree tree; DefaultMutableTreeNode root, t1, t2, t1_1, t1_2, t1_3, t1_4, t1_5, t2_1, t2_2; CardEmploy ae; EmployModel em; public st

12、atic void main(String[] args) { Manager manager = new Manager(); } public Manager() { // 给树各个结点赋值 root = new DefaultMutableTreeNode("人事管理系统"); t1 = new DefaultMutableTreeNode("基础信息管理"); t1_1 = new DefaultMutableTreeNode("查询职员"); t1_2 = new DefaultMutableTreeNode("添加职员");

13、 t1_3 = new DefaultMutableTreeNode("修改职员信息"); t1_4 = new DefaultMutableTreeNode("删除职员资料"); t1_5 = new DefaultMutableTreeNode("查询全体职员"); t2 = new DefaultMutableTreeNode("人员考评管理"); t2_1 = new DefaultMutableTreeNode("人员考评"); t2_2 = new DefaultMutableTreeNode("考评历史查询"); t1.add(t1_1

14、); t1.add(t1_2); t1.add(t1_3); t1.add(t1_4); t1.add(t1_5); t2.add(t2_1); t2.add(t2_2); root.add(t1); root.add(t2); tree = new JTree(root); // 对树进行监听 tree.addTreeSelectionListener(this); // 实例化CardEmploy面板 并加到jsplitpane边 ae = new CardEmploy(); js

15、 new JSplitPane(); js.setLeftComponent(tree); js.setRightComponent(ae); this.getContentPane().add(js); this.setTitle("人事管理系统"); this.setVisible(true); this.setSize(600, 500); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void valueChanged(TreeSelectionEv

16、ent e) { // 获取点击结点名称 DefaultMutableTreeNode dpath = (DefaultMutableTreeNode) tree .getLastSelectedPathComponent(); // 经过点击不一样结点切换不一样界面 if (dpath.equals(t1_1)) { ae.c.show(ae, "1"); } else if (dpath.equals(t1_2)) { ae.c.show(ae, "2"); } else if (dpath.equals(t1_3))

17、{ ae.c.show(ae, "3"); } else if (dpath.equals(t1_4)) { ae.c.show(ae, "4"); } else if (dpath.equals(t1_5)) { ae.c.show(ae, "5"); } else if (dpath.equals(t2_1)) { ae.c.show(ae, "6"); } else if (dpath.equals(t2_2)) { ae.c.show(ae, "7"); } } } (2) CardEmploy /**

18、 * 用卡片布局设置各个界面 */ package com.Manager; import javax.swing.*; import java.awt.*; public class CardEmploy extends Panel{ CardLayout c; //查询表 SelEmploy selE; //添加表 AddEmploy addE; //修改职员信息表 ReviseEmploy revE; //删除职员表格 DelEmploy delE; //全部职员

19、信息 AllEmploy allE; //职员考评表 Examine exaE; //历史统计界面 History His; public CardEmploy() { //查询职员表 selE = new SelEmploy(); //添加职员表 addE = new AddEmploy(); //修改职员信息 revE = new ReviseEmploy(); //删除职员表格

20、 delE = new DelEmploy(); //全部职员信息 allE =new AllEmploy(); //职员考评表 exaE = new Examine(); //历史统计界面 His = new History(); JPanel jp = new JPanel(); //定义cardemploy面板 为卡片布局 //把各个面板加入到C

21、卡片布局中 c = new CardLayout(); this.setLayout(c); this.add(selE,"1"); this.add(addE,"2"); this.add(revE,"3"); this.add(delE,"4"); this.add(allE,"5"); this.add(exaE,"6"); this.add(His,"7"); } } (3) SelEmploy /** * SelEmploy 类 设置查

22、询职员界面 */ package com.Manager; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class SelEmploy extends Panel implements ActionListener { EmployModel em; JLabel jl; JTextField jtf; JButton jb; JTable jt; JScrollPane jsp; JPanel jp1; public SelEmplo

23、y() { // 北部 jp1 = new JPanel(); jl = new JLabel("输入职员号:"); jtf = new JTextField(20); jb = new JButton("查询"); // 对查询按钮监听 jb.addActionListener(this); jp1.add(jl); jp1.add(jtf); jp1.add(jb); // 中部 em = new EmployModel(); String[] paras = { "1" }; em.query

24、Employ("select * from Employinfo where 1 = ?", paras); jt = new JTable(em); jsp = new JScrollPane(jt); this.setLayout(new BorderLayout()); this.add(jp1, BorderLayout.NORTH); this.add(jsp, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { if (e.getSource()

25、 == jb) { String name = this.jtf.getText().trim(); String sql = "select * from Employinfo where Empno = ?"; String[] paras = { name }; em = new EmployModel(); em.queryEmploy(sql, paras); // 查找成功更新表 jt.setModel(em); } } } (4) AddEmploy package com.Manager; i

26、mport java.awt.*; import javax.swing.*; import java.awt.event.*; public class AddEmploy extends Panel implements ActionListener { JLabel jl, jl1, jl2, jl3, jl4, jl5, jl6, jl7; JButton jb1, jb2; JTextField jtf1, jtf2, jtf3, jtf4, jtf5, jtf6, jtf7; JPanel jp1, jp2, jp3, jp4; EmployM

27、odel em; public AddEmploy() { jl1 = new JLabel("工号:"); jl2 = new JLabel("姓名:"); jl3 = new JLabel("性别:"); jl4 = new JLabel("出生年月:"); jl5 = new JLabel("部门:"); jl6 = new JLabel("职位:"); jl7 = new JLabel("工资:"); jtf1 = new JTextField(20); jtf2 = new JTextField(20); j

28、tf3 = new JTextField(20); jtf4 = new JTextField(20); jtf5 = new JTextField(20); jtf6 = new JTextField(20); jtf7 = new JTextField(20); jb1 = new JButton("添加"); jb2 = new JButton("取消"); // 监听‘添加’ ‘取消’按钮 jb1.addActionListener(this); jb2.addActionListener(this); jp1 = n

29、ew JPanel(new GridLayout(7, 1)); jp2 = new JPanel(new GridLayout(7, 1)); jp3 = new JPanel(); jp1.add(jl1); jp1.add(jl2); jp1.add(jl3); jp1.add(jl4); jp1.add(jl5); jp1.add(jl6); jp1.add(jl7); jp2.add(jtf1); jp2.add(jtf2); jp2.add(jtf3); jp2.add(jtf4); jp2

30、add(jtf5); jp2.add(jtf6); jp2.add(jtf7); jp3.add(jb1); jp3.add(jb2); jp4 = new JPanel(new BorderLayout()); jp4.add(jp1, BorderLayout.WEST); jp4.add(jp2, BorderLayout.EAST); jp4.setSize(300, 300); this.setLayout(new FlowLayout()); this.add(jp4); this.add(jp

31、3); } public void actionPerformed(ActionEvent e) { if (e.getSource() == jb1) { // 调用EmployModel 里updEmploy 方法,实现对表格添加 String sql = "insert into Employinfo values(?,?,?,?,?,?,?)"; String[] paras = { jtf1.getText(), jtf2.getText(), jtf3.getText(), jtf4.getText(), jtf5.getT

32、ext(), jtf6.getText(), jtf7.getText() }; em = new EmployModel(); if (em.updEmploy(sql, paras)) { // 当添加新职员成功时,则弹出”添加成功“对话框 JOptionPane.showMessageDialog(this, "添加成功"); } else if (!em.updEmploy(sql, paras)) { JOptionPane.showMessageDialog(this, "添加失败"); }

33、// 当新职员加入成功后,要把新加入职员工号加到考评表 AppraisalModel temp = new AppraisalModel(); String sql1 = "insert into Appraisal(Empno) values(?)"; String[] paras1 = { jtf1.getText() }; temp.updAppraisal(sql1, paras1); }else if(e.getSource() == jb2){ jtf1.setText(""); jtf2.setText("");

34、jtf3.setText(""); jtf4.setText(""); jtf5.setText(""); jtf6.setText(""); jtf7.setText(""); } } } (5) ReviseEmploy package com.Manager; /** * 修改职员界面 */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ReviseEmploy extends Panel i

35、mplements ActionListener { JTable jt; JScrollPane jsp; JButton jb1, jb2; JPanel jp1,jp2; EmployModel em; JLabel jl1; public ReviseEmploy() { jl1 = new JLabel("修改职员信息",JLabel.CENTER); jl1.setFont(new Font("宋体", Font.BOLD, 28)); jp2 = new JPanel(); jp2.add(jl1); em

36、 new EmployModel(); String[] paras = { "1" }; em.queryEmploy("select * from Employinfo where 1 = ?", paras); jt = new JTable(em); jsp = new JScrollPane(jt); jb1 = new JButton("修改"); jb2 = new JButton("刷新"); // 对两个按钮进行监听 jb1.addActionListener(this); jb2.addActionListener

37、this); this.setLayout(new BorderLayout()); jp1 = new JPanel(); jp1.add(jb1); jp1.add(jb2); this.add(jp2,BorderLayout.NORTH); this.add(jsp, BorderLayout.CENTER); this.add(jp1, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent e) { if (e.getSource()

38、 jb1) { int rowNum = this.jt.getSelectedRow(); if (rowNum == -1) { JOptionPane.showMessageDialog(this, "请选择一行"); return; } // 弹出修改对话框 new UpdDialog(em, rowNum); } else if (e.getSource() == jb2) { // 刷新修改界面中表格 em = new EmployModel(); String[] paras

39、1 = { "1" }; em.queryEmploy("select * from Employinfo where 1 = ?", paras1); jt.setModel(em); } } } i UpdDialog package com.Manager; /** * 弹出修改界面 */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class UpdDialog extends JDialog implements Acti

40、onListener { JLabel jl1, jl2, jl3, jl4, jl5, jl6, jl7; JButton jb1, jb2; JTextField jtf1, jtf2, jtf3, jtf4, jtf5, jtf6, jtf7; JPanel jp1, jp2, jp3; public UpdDialog(EmployModel em, int rowNums) { jl1 = new JLabel("工号:"); jl2 = new JLabel("姓名:"); jl3 = new JLabel("性别:"); jl4 =

41、 new JLabel("出生年月:"); jl5 = new JLabel("部门:"); jl6 = new JLabel("职位:"); jl7 = new JLabel("工资:"); jtf1 = new JTextField(20); jtf2 = new JTextField(30); jtf3 = new JTextField(30); jtf4 = new JTextField(30); jtf5 = new JTextField(30); jtf6 = new JTextField(30); jtf7 = ne

42、w JTextField(30); // 初始化jtextfield数据 jtf1.setText((String) em.getValueAt(rowNums, 0)); jtf1.setEditable(false); jtf2.setText((String) em.getValueAt(rowNums, 1)); jtf3.setText((String) em.getValueAt(rowNums, 2)); jtf4.setText((String) em.getValueAt(rowNums, 3)); jtf5.setText((S

43、tring) em.getValueAt(rowNums, 4)); jtf6.setText((String) em.getValueAt(rowNums, 5)); jtf7.setText((String) em.getValueAt(rowNums, 6)); jb1 = new JButton("修改"); jb2 = new JButton("取消"); // 对两个按钮监听 jb1.addActionListener(this); jb2.addActionListener(this); jp1 = new JPanel

44、); jp2 = new JPanel(); jp3 = new JPanel(); // 设置布局 jp1.setLayout(new GridLayout(7, 1)); jp2.setLayout(new GridLayout(7, 1)); // 添加组件 jp1.add(jl1); jp1.add(jl2); jp1.add(jl3); jp1.add(jl4); jp1.add(jl5); jp1.add(jl6); jp1.add(jl7); jp2.add(jtf1); jp

45、2.add(jtf2); jp2.add(jtf3); jp2.add(jtf4); jp2.add(jtf5); jp2.add(jtf6); jp2.add(jtf7); jp3.add(jb1); jp3.add(jb2); this.add(jp1, BorderLayout.WEST); this.add(jp2, BorderLayout.CENTER); this.add(jp3, BorderLayout.SOUTH); this.setSize(300, 250); this.setVisib

46、le(true); this.setLocation(200, 200); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); } }); } public void actionPerformed(ActionEvent e) { if (e.getSource() == jb1) { // 修改职员信息 sql 语句,paras 为待注入值 String sql =

47、 "update Employinfo set " + "Ename = ?,Sex = ?,Birthday = ?, DeptNo = ?, Ejob = ? ,Sal=? where Empno = ?"; String[] paras = { jtf2.getText(), jtf3.getText(), jtf4.getText(), jtf5.getText(), jtf6.getText(), jtf7.getText(), jtf1.getText() }; EmployModel temp = new EmployM

48、odel(); // 假如修改语句运行成功 则弹出“修改成功”对话框 if (temp.updEmploy(sql, paras)) { JOptionPane.showMessageDialog(this, "修改成功"); } this.dispose(); } else if (e.getSource() == jb2) { // 关闭对话框 this.dispose(); } } } (6) DelEmploy /** * 删除职员 */ package com.Manager;

49、 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class DelEmploy extends Panel implements ActionListener { JTable jt; JScrollPane jsp; JButton jb1, jb2; JPanel jp1, jp2; JLabel jl1; EmployModel em; public DelEmploy() { // 北部 jl1 = new JLabel("删

50、除职员", JLabel.CENTER); jl1.setFont(new Font("黑体", Font.BOLD, 30)); jp2 = new JPanel(); jp2.add(jl1); // 中部 em = new EmployModel(); String[] paras = { "1" }; em.queryEmploy("select * from Employinfo where 1 = ?", paras); jt = new JTable(em); jsp = new JScrollPane(jt);

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服