收藏 分销(赏)

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

上传人:a199****6536 文档编号:2727214 上传时间:2024-06-05 格式:DOC 页数:48 大小:390.54KB
下载 相关 举报
java专业课程设计人事标准管理系统.doc_第1页
第1页 / 共48页
java专业课程设计人事标准管理系统.doc_第2页
第2页 / 共48页
java专业课程设计人事标准管理系统.doc_第3页
第3页 / 共48页
java专业课程设计人事标准管理系统.doc_第4页
第4页 / 共48页
java专业课程设计人事标准管理系统.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、人事管理系统一.系统需求分析:2(1)系统功效设计2(2)系统功效结构2(3)数据库设计2二.功效模块开发3(1)查询人员信息界面3(2)添加职员界面3(3)修改职员信息界面4(4)删除职员界面5(5)职员考评界面5(6)职员考评历史统计界面6三.各个类说明6四.程序代码9(1)Manager9(2)CardEmploy11(3)SelEmploy12(4)AddEmploy14(5)ReviseEmploy16iUpdDialog18(6)DelEmploy21(7)AllEmploy22(8)Examine23(9)History27(10)EmployModel28(11)Apprais

2、alModel30(12)SqlHelper33一.系统需求分析:(1) 系统功效设计i 职员信息管理:职员信息管理包含对职员基础信息和情况进行查询、添加、删除和修改及部门管理ii 职员考评管理:包含对职员考评情况进行操作,还能够对历史考评情况进行浏览(2) 系统功效结构人事管理系统结构功效结构图所表示:(3) 数据库设计职员基础表(Employinfo)名称字段名称数据类型主键非空工号Empnovarchar(10)YesYes姓名Enamevarchar(10)No yes性别Sexvarchar(4)No yes出生年月BirthdayDatetimeNo Yes部门DeptNoChar

3、(10)No Yes职务EjobChar(20)No Yes工资SalfloatNo Yes职员考评表(Appraisal)名称字段名称数据类型主键非空工号Empnovarchar(10)yesyes考评Consequencevarchar(10)noyes变更日期RegDatedatetimeNo Yes 考评历史统计(History)名称字段名称数据类型主键非空流水号JourNoIntYesyes工号Empnovarchar(10)noyes姓名Enamevarchar(10)No Yes 上次考评OldInfovarchar(10)No Yes 此次考评NewInfovarchar(10

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

5、点击“删除”时调用EmployModel类updEmploy方法实现删除功效(5) 职员考评界面实例一个Examine类当点击“确定”时调用AppraisalModel类updAppraisal方法来完成考评功效(6) 职员考评历史统计界面实例一个History类当点击时调用AppraisalModel类updAppraisal方法来完成考评功效三. 各个类说明类之间关系图:1. Manager类Manager类一个实例,从而生成了人事管理系统界面,用JSplitPane类将整个界面分为左右两个部分。其中左侧实现了人事管理系统功效树,采取JTree类构建,同时实现了TreeSelectionL

6、istener接口,定义了该接口所必需实现valueChanged(TreeSelectionEvent e)方法,JSplitPane右边加入卡片布局CardEmploy类。当JTreeTreeSelectionEvent事件发生时,调用CardEmployc.show方法 切换不一样卡片,实现不一样管理界面。2. CardEmploy类CardEmploy为卡片布局类面板,关键功效是添加各个界面卡片,当JTreeTreeSelectionEvent事件发生时。切换不一样卡片3. EmployModel、AppraisalModel类这两个类继承了AbstractTableModel,关键实

7、现功效是,存放调用sqlhelper类得到数据。能够经过调用sqlhelper实现 增 删 查 改 功效4. SqlHelper类关键就是连接数据库部分基础操作是,方便代码修改,反复使用5. SelEmploy这个类继承Panel,为“查询职员”界面。实现了Actionlistener 接口,当ActionEvent 事件发生时,调用EmployModel类queryEmploy方法实现查询6. AddEmploy、ReviseEmploy、DelEmploy类这些类继承Pane,分别为“添加职员信息”“修改职员信息”“删除职员信息”界面, 这些类实现了Actionlistener 接口,当A

8、ctionEvent 事件发生时,调用EmployModel类updEmploy方法实现添加、查询、删除、功效7. Examine类这个类继承Panel,为“考评职员”界面。这个类实现了Actionlistener 接口,当ActionEvent 事件发生时,(1)先经过调用AppraisalModelqueryAppraisal获取上次考评成绩,(2)修改Appraisal表考评成绩(3)再把上次考评成绩跟此次考评成绩加到History表中8. History这个类关键是把History表中信息显示到界面上。四. 程序代码(1) Managerpackage com.Manager;impo

9、rt java.awt.*;import javax.swing.*;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import javax.swing.tree.*;import java.awt.event.*;public class Manager extends JFrame implements TreeSelectionListener JPanel jp;JSplitPane js;JScrollPane jsp;JTree tree;Defa

10、ultMutableTreeNode root, t1, t2, t1_1, t1_2, t1_3, t1_4, t1_5, t2_1,t2_2;CardEmploy ae;EmployModel em;public static void main(String args) Manager manager = new Manager();public Manager() / 给树各个结点赋值root = new DefaultMutableTreeNode(人事管理系统);t1 = new DefaultMutableTreeNode(基础信息管理);t1_1 = new DefaultMu

11、tableTreeNode(查询职员);t1_2 = new DefaultMutableTreeNode(添加职员);t1_3 = new DefaultMutableTreeNode(修改职员信息);t1_4 = new DefaultMutableTreeNode(删除职员资料);t1_5 = new DefaultMutableTreeNode(查询全体职员);t2 = new DefaultMutableTreeNode(人员考评管理);t2_1 = new DefaultMutableTreeNode(人员考评);t2_2 = new DefaultMutableTreeNode(

12、考评历史查询);t1.add(t1_1);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 = new JSplitPane();js.setLeftComponent(tree);js.set

13、RightComponent(ae);this.getContentPane().add(js);this.setTitle(人事管理系统);this.setVisible(true);this.setSize(600, 500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void valueChanged(TreeSelectionEvent e) / 获取点击结点名称DefaultMutableTreeNode dpath = (DefaultMutableTreeNode) tree.getLastSelecte

14、dPathComponent();/ 经过点击不一样结点切换不一样界面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) 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

15、, 6); else if (dpath.equals(t2_2) ae.c.show(ae, 7);(2) CardEmploy/* * 用卡片布局设置各个界面 */package com.Manager;import javax.swing.*;import java.awt.*;public class CardEmploy extends PanelCardLayout c; /查询表SelEmploy selE;/添加表AddEmploy addE; /修改职员信息表 ReviseEmploy revE; /删除职员表格 DelEmploy delE; /全部职员信息 AllEmpl

16、oy allE; /职员考评表 Examine exaE; /历史统计界面 History His; public CardEmploy() /查询职员表 selE = new SelEmploy();/添加职员表addE = new AddEmploy(); /修改职员信息 revE = new ReviseEmploy(); /删除职员表格 delE = new DelEmploy(); /全部职员信息 allE =new AllEmploy(); /职员考评表 exaE = new Examine(); /历史统计界面 His = new History(); JPanel jp = n

17、ew JPanel(); /定义cardemploy面板 为卡片布局 /把各个面板加入到C卡片布局中 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 类 设置查询职员界面 */package com.Manager;import java.awt.*;impo

18、rt 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 SelEmploy() / 北部jp1 = new JPanel();jl = new JLabel(输入职员号:);jtf = new JTextField(20);jb = new JButton(

19、查询);/ 对查询按钮监听jb.addActionListener(this);jp1.add(jl);jp1.add(jtf);jp1.add(jb);/ 中部em = new EmployModel();String paras = 1 ;em.queryEmploy(select * from Employinfo where 1 = ?, paras);jt = new JTable(em);jsp = new JScrollPane(jt);this.setLayout(new BorderLayout();this.add(jp1, BorderLayout.NORTH);this

20、.add(jsp, BorderLayout.CENTER);public void actionPerformed(ActionEvent e) if (e.getSource() = 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) AddEmplo

21、ypackage com.Manager;import 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;EmployModel e

22、m;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);jtf3 = new JTextField(20);jtf4 = new JTextField(20);jtf5 = new JTextFie

23、ld(20);jtf6 = new JTextField(20);jtf7 = new JTextField(20);jb1 = new JButton(添加);jb2 = new JButton(取消);/ 监听添加 取消按钮jb1.addActionListener(this);jb2.addActionListener(this);jp1 = new JPanel(new GridLayout(7, 1);jp2 = new JPanel(new GridLayout(7, 1);jp3 = new JPanel();jp1.add(jl1);jp1.add(jl2);jp1.add(j

24、l3);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.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

25、);this.setLayout(new FlowLayout();this.add(jp4);this.add(jp3);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(

26、), jtf5.getText(), jtf6.getText(),jtf7.getText() ;em = new EmployModel();if (em.updEmploy(sql, paras) / 当添加新职员成功时,则弹出”添加成功“对话框JOptionPane.showMessageDialog(this, 添加成功); else if (!em.updEmploy(sql, paras) JOptionPane.showMessageDialog(this, 添加失败);/ 当新职员加入成功后,要把新加入职员工号加到考评表AppraisalModel temp = new Ap

27、praisalModel();String sql1 = insert into Appraisal(Empno) values(?);String paras1 = jtf1.getText() ;temp.updAppraisal(sql1, paras1);else if(e.getSource() = jb2)jtf1.setText();jtf2.setText();jtf3.setText();jtf4.setText();jtf5.setText();jtf6.setText();jtf7.setText();(5) ReviseEmploypackage com.Manager

28、;/* * 修改职员界面 */import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ReviseEmploy extends Panel implements ActionListener JTable jt;JScrollPane jsp;JButton jb1, jb2;JPanel jp1,jp2;EmployModel em; JLabel jl1;public ReviseEmploy() jl1 = new JLabel(修改职员信息,JLabel.CENTER);jl1.setFon

29、t(new Font(宋体, Font.BOLD, 28);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);jb1 = new JButton(修改);jb2 = new JButton(刷新);/ 对两个按钮进行监听jb1.addActionListener(this);jb2.addA

30、ctionListener(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() = jb1) int rowNum = this.jt.getSelecte

31、dRow();if (rowNum = -1) JOptionPane.showMessageDialog(this, 请选择一行);return;/ 弹出修改对话框new UpdDialog(em, rowNum); else if (e.getSource() = jb2) / 刷新修改界面中表格em = new EmployModel();String paras1 = 1 ;em.queryEmploy(select * from Employinfo where 1 = ?, paras1);jt.setModel(em);i UpdDialogpackage com.Manager

32、;/* * 弹出修改界面 */import javax.swing.*;import java.awt.*;import java.awt.event.*;public class UpdDialog extends JDialog implements ActionListener 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(EmployMod

33、el em, int rowNums) 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(30);jtf3 = new JTextField(30);jtf4 = new JTextField(30);jtf5 = new JTextFiel

34、d(30);jtf6 = new JTextField(30);jtf7 = new 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(

35、String) 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();jp2 = new JPanel();jp3 = new JPanel();/ 设置布局

36、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);jp2.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(

37、jp1, BorderLayout.WEST);this.add(jp2, BorderLayout.CENTER);this.add(jp3, BorderLayout.SOUTH);this.setSize(300, 250);this.setVisible(true);this.setLocation(200, 200);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(););public void actionPerformed(ActionEvent

38、 e) if (e.getSource() = jb1) / 修改职员信息 sql 语句,paras 为待注入值String sql = 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() ;Employ

39、Model temp = new EmployModel();/ 假如修改语句运行成功 则弹出“修改成功”对话框if (temp.updEmploy(sql, paras) JOptionPane.showMessageDialog(this, 修改成功);this.dispose(); else if (e.getSource() = jb2) / 关闭对话框this.dispose();(6) DelEmploy/* * 删除职员 */package com.Manager;import javax.swing.*;import java.awt.*;import java.awt.eve

40、nt.*;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(删除职员, 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);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服