《2022年java人事管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年java人事管理系统 .pdf(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1人事管理系统用户登录信息入库身份验证管理员权限一般用户权限添加职工信息修改密码和权限添加用户修改职工信息查询职工信息退出系统查询职工信息退出系统删除职工信息1 系统设计目标1.1 需求分析本系统应具有以下功能:(1)系统管理员:可以添加用户信息、修改密码和设置用户权限,以及对职工信息进行添加、修改、查询、删除等操作。(2)一般用户:可以查询职工信息。1.2 系统功能设计(1)系统功能结构图,如图1-1 所示:图 1-1 系统功能结构图 1.3 系统开发工具本系统采用 Access 2003 创建后台数据库,前台开发工具采用Eclipse ,开发语言为java 。名师资料总结 - - -精品资
2、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 41 页 - - - - - - - - - 2系统用户职工号密码用户类员工信息职工号姓名工资参加工作时间部门电话地址职务2 系统数据库设计与实现 2.1 数据表的实体 E-R 图通过对的系统总体分析,可以得到大概的实体-关系模型( E-R模型) ,如下:(1)员工信息表的 E-R 图,如图 2-1 所示:图 2-1 员工信息表的E-R 图(2)系统用户表的 E-R 图,如图 2-2 所示:图 2-2 系统用户表的E-R 图 2.2 数据表的结构(1)员
3、工信息表的结构如图2-3 所示:图 2-3 员工信息表结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 41 页 - - - - - - - - - 3(2)系统用户表的结构,如图2-4 所示:图 2-4 系统用户表结构3 窗体设计3.1 登录页面设计启动程序“ Eclipse ”后,选择“文件”、 “新建” 、 “Java 项目” ,打开“新建Java 项目”对话框,输入项目名称为“personInfo ” ,在项目下添加包和所需的类。(1)登录界面如图 3-1 所示
4、:图 3-1 系统登录界面(2)用户身份验证,如图3-2 所示:图 3-2 用户身份验证界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 41 页 - - - - - - - - - 4 3.2 管理员权限(1)管理员权限主菜单,如图3-3 所示:图 3-3 管理员主菜单界面(2)用户修改密码和设置权限,如图3-4 所示:图 3-4 用户修改密码和设置权限界面(3)添加新职工如图3-5 所示:图 3-5 添加新职工界面名师资料总结 - - -精品资料欢迎下载 - - -
5、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 41 页 - - - - - - - - - 5(4)查询职工信息如图3-6 所示:图 3-6 查询职工信息界面(5)删除职工信息如图3-7 所示:图 3-7 删除职工信息界面(6)退出系统消息提示,如图3-8 所示:图 3-8 退出系统消息提示对话框名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 41 页 - - - - - - - - - 6 3.3
6、 一般用户权限(1)一般用户权限主菜单,如图3-9 所示:图 3-9 一般用户主菜单界面(2)查询职工信息如图3-10 所示:图 3-10 查询职工信息界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 41 页 - - - - - - - - - 74 设计体会及今后的改进意见 4.1 设计体会经过一个周的努力,已基本上完成了“人事管理系统”的课程设计。其功能基本符合用户需求,能够实现用户身份验证、主界面管理、用户管理以及添加、修改、查询、删除职工信息等功能。由于时间较
7、短和自身因素,该系统必然会存在缺陷和不足。期间,通过查阅相关资料,以及向老师和同学请教,纠正了一些开始设计时的错误和误区,弥补了自己在编程思想的疏漏。4.2 今后的改进意见通过本次课程设计,使我明白了画功能结构图的重要性,它对设计思想以及编写程序代码有指导性的意义。在开始时,由于没能意识到这一点,走了不少弯路,浪费了时间。它启发了我的思维,培养了动手实践的能力。同时,也让我学会了一些编程技巧和方法,使我的学习能力和编程能力都得到了提高,它将为我以后的学习和发展打下坚实的基础。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
8、心整理 - - - - - - - 第 7 页,共 41 页 - - - - - - - - - 8参 考 文 献1 郑莉编著 .Java 语言程序设计 M. 北京:清华大学出版社,2011 2 於东军,杨静宇等编著 .Java 程序设计与应用开发 M. 北京:清华大学出版社, 2005名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 41 页 - - - - - - - - - 9附录:源程序代码(1)LoginFrame.java import java.awt.*;
9、import java.awt.event.*; import javax.swing.*; import java.sql.*; public class LoginFrame extends JFrame Container contentPane; JPanel paneTop = new JPanel(); JPanel paneMid = new JPanel(); JPanel paneBut = new JPanel(); JLabel Top = new JLabel(); JLabel Names= new JLabel(); JLabel Pwd = new JLabel(
10、); JLabel Model = new JLabel(); JLabel Null = new JLabel(); JTextField Namefield = new JTextField(15); JPasswordField Pwdfield = new JPasswordField(15); JComboBox cmb = new JComboBox(); JButton button2= new JButton(取消); JButton button1 = new JButton(登录); int ss; LoginFrame() Names.setText(职工号 :); Pw
11、d.setText(密码:); Model.setText(用户类 :); Null.setText( ); String s1 = 管理员 , 一般用户 ; cmb.addItem(s10); cmb.addItem(s11); paneTop.add(Names); paneTop.add(Namefield); paneMid.add(Pwd); paneMid.add(Pwdfield); paneMid.add(Model); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
12、 9 页,共 41 页 - - - - - - - - - 10 paneMid.add(cmb); paneBut.add(button1); paneBut.add(button2); contentPane = this.getContentPane(); contentPane.add(paneTop,BorderLayout.NORTH); contentPane.add(paneMid,BorderLayout.CENTER); contentPane.add(paneBut,BorderLayout.SOUTH); setTitle(欢迎登录 ); setSize(260,170
13、); / 将窗口放置在中央 Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); setLocation(screen.width - getSize().width)/2,(screen.height - getSize().height)/2 ); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); button1.addActionListener(new ButtonHandle(); cmb.addActionListener(ne
14、w GetSelected(); button2.addActionListener(new Exit(); public class Exit implements ActionListener public void actionPerformed(ActionEvent e) dispose(); public class GetSelected implements ActionListener public void actionPerformed(ActionEvent e) ss=cmb.getSelectedIndex(); public class ButtonHandle
15、implements ActionListener public void actionPerformed(ActionEvent e) switch(ss) case 0: administer();break; case 1: commonclass();break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 41 页 - - - - - - - - - 11 public void administer() String str1,str2; str1=Na
16、mefield.getText(); str2= new String(Pwdfield.getPassword(); try if(str1.equals()|str2.equals() JOptionPane.showMessageDialog(null,请 输入 职 工 号 和密码! ); return; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.getConnection(jdbc:odbc:redsun,); PreparedStatement stmt = conn.pr
17、epareStatement(select * from 系统用户 where 职工号 =? and 密码=?); stmt.setString(1,str1); stmt.setString(2,str2); ResultSet rs =stmt.executeQuery(); if (rs.next() JOptionPane.showMessageDialog(null,登录成功 !,欢迎登录人事管理系统 ,JOptionPane.INFORMATION_MESSAGE); MenuFrame o=new MenuFrame(); o.go(); else JOptionPane.sho
18、wMessageDialog(null,非 系 统 用 户 , 返回!,登录失败 ,JOptionPane.INFORMATION_MESSAGE); System.out.println(无此用户 , 返回!); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 41 页 -
19、- - - - - - - - 12 public void commonclass() String str1,str2; str1=Namefield.getText(); str2= new String(Pwdfield.getPassword(); try if(str1.equals()|str2.equals() JOptionPane.showMessageDialog(null,请输入职工号和密码!); return; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.ge
20、tConnection(jdbc:odbc:redsun,); PreparedStatement stmt = conn.prepareStatement(select * from 系统用户 where 职工号 =? and 密码=?); stmt.setString(1,str1); stmt.setString(2,str2); ResultSet rs =stmt.executeQuery(); if (rs.next() JOptionPane.showMessageDialog(null,登录成功 !,欢迎登录人事管理系统 ,JOptionPane.INFORMATION_MES
21、SAGE); MenuFrame1 o=new MenuFrame1(); o.go(); else JOptionPane.showMessageDialog(null,非系统用户, 返回 !,登录失败 ,JOptionPane.INFORMATION_MESSAGE); System.out.println(无此用户 , 返回!); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); 名师资料总结 - - -精品资料欢迎下载 - - - - - -
22、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 41 页 - - - - - - - - - 13 public static void main(String args) new LoginFrame(); (2)MenuFrame.java import java.awt.*; import javax.swing.*; import java.awt.event.*; class MenuFrame extends JFrame private JPanel panel=new JPanel(); JMenuBar jmenu
23、bar1=new JMenuBar();/创建菜单栏 JMenu jmenu1=new JMenu(); JMenu jmenu2=new JMenu(); JMenu jmenu3=new JMenu(); JMenu jmenu4=new JMenu();/创建菜单 JMenuItem jmenuitem1=new JMenuItem(); JMenuItem jmenuitem2=new JMenuItem(); JMenuItem jmenuitem3=new JMenuItem(); JMenuItem jmenuitem4=new JMenuItem(); JMenuItem jm
24、enuitem5=new JMenuItem(); JMenuItem jmenuitem6=new JMenuItem(); JMenuItem jmenuitem7=new JMenuItem();/创建菜单条 /定义方法 public void go() / 设置窗口容器的布局管理器this.getContentPane().setLayout(new BorderLayout(); / 设置窗口的标题this.setTitle(人事管理系统 ); / 添加菜单栏this.setJMenuBar(jmenubar1); / 设置菜单和菜单项名称jmenu1.setText(用户管理 );
25、 jmenuitem2.setText(修改密码和权限 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 41 页 - - - - - - - - - 14jmenuitem4.setText(添加用户 ); jmenu2.setText(职工信息管理 ); jmenuitem1.setText(添加职工信息 ); jmenuitem3.setText(修改职工信息 ); jmenuitem5.setText(查询职工信息 ); jmenu3.setText(删除员
26、工 ); jmenuitem6.setText(删除职工信息 ); jmenu4.setText(退出); jmenuitem7.setText(退出系统 ); / 向菜单栏中添加菜单jmenubar1.add(jmenu1); jmenubar1.add(jmenu2); jmenubar1.add(jmenu3); jmenubar1.add(jmenu4); / 向菜单中添加菜单项/jmenu1.add(jmenuitem1); jmenu1.add(jmenuitem2); jmenu1.add(jmenuitem4); jmenu2.add(jmenuitem1); jmenu2.a
27、dd(jmenuitem3); jmenu2.add(jmenuitem5); jmenu3.add(jmenuitem6); jmenu4.add(jmenuitem7); jmenuitem1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) WorkerAdd addusers1=new WorkerAdd(); panel.add(addusers1,添加职工 ); CardLayout c1=(CardLayout)panel.getLayout(); c1.show(p
28、anel,添加职工信息 ); ); jmenuitem2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 41 页 - - - - - - - - - 15 UpdatePwdUserclass o=new UpdatePwdUserclass(); panel.add(o,修改密码和权限 ); CardLa
29、yout c1=(CardLayout)panel.getLayout(); c1.show(panel,修改密码和权限 ); ); jmenuitem3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) WorkerUpdate o=new WorkerUpdate(); panel.add(o,修改职工信息 ); CardLayout c1=(CardLayout)panel.getLayout(); c1.show(panel,修改职工信息 ); ); jmenuitem4.
30、addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) UserAdd o=new UserAdd(); panel.add(o,); CardLayout c1=(CardLayout)panel.getLayout(); c1.show(panel,添加用户 ); ); jmenuitem5.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) WorkerSelect o=
31、new WorkerSelect(); panel.add(o,查询职工 ); CardLayout c1=(CardLayout)panel.getLayout(); c1.show(panel,查询职工信息 ); ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 41 页 - - - - - - - - - 16 jmenuitem6.addActionListener(new ActionListener() public void actionPerform
32、ed(ActionEvent e) WorkerDelete o=new WorkerDelete(); panel.add(o,删除职工 ); CardLayout c1=(CardLayout)panel.getLayout(); c1.show(panel,删除职工信息 ); ); jmenuitem7.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null,欢迎下次光临!, 消息提示,JOptionPane.I
33、NFORMATION_MESSAGE); System.exit(0); ); / 产生窗口的最佳尺寸、布局各组件,然后显示窗口pack(); this.setSize(320,240); setVisible(true); public static void main(String args) MenuFrame b=new MenuFrame(); b.go(); (3)UpdatePwdUserclass.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; i
34、mport javax.swing.table.*; import java.util.Vector; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 41 页 - - - - - - - - - 17public class UpdatePwdUserclass extends JFrame Container c; JPanel panel1,panel2,panel3,panel4; JLabel WnoLabel,PwdLabel,UserClassLabel;
35、 JTextField WTextField,XTextField,X1TextField; JButton Btnopen,Btnupdate; JTable table=null; DefaultTableModel defaultModel=null; UpdatePwdUserclass() super( 修改密码和权限 ); c=getContentPane(); c.setLayout(new BorderLayout(); WnoLabel=new JLabel( 职工号:,JLabel.CENTER); PwdLabel=new JLabel( 密码:,JLabel.CENTE
36、R); UserClassLabel=new JLabel(用户类 :,JLabel.CENTER); WTextField=new JTextField(15); XTextField=new JTextField(15); X1TextField=new JTextField(15); Btnopen=new JButton(打开); Btnupdate=new JButton(修改); panel1=new JPanel(); panel3=new JPanel(); panel4=new JPanel(); panel1.add(WnoLabel); panel4.add(PwdLab
37、el); panel3.add(UserClassLabel); panel1.add(WTextField); panel4.add(XTextField); panel3.add(X1TextField); panel1.add(Btnopen); panel3.add(Btnupdate); String n=职工号 , 密码, 用户类 ; String data=new String00; defaultModel=new DefaultTableModel(data,n); table=new JTable(defaultModel); 名师资料总结 - - -精品资料欢迎下载 -
38、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 41 页 - - - - - - - - - 18table.setPreferredScrollableViewportSize(new Dimension(500,100); JScrollPane s=new JScrollPane(table); panel2=new JPanel(); panel2.add(s); c.add(panel1,BorderLayout.NORTH); c.add(panel3,BorderLayout.EAST); c.add
39、(panel4,BorderLayout.WEST); c.add(panel2,BorderLayout.SOUTH); pack(); setVisible(true); Btnopen.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ex) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(java.lang.ClassNotFoundException e) System.out.println(ForName : +
40、 e.getMessage(); String Wno=WTextField.getText(); String str=null; String str1=select 职工号 , 密码, 用户类 from 系统用户 ; try if(Wno.equals() str=str1; else str=str1+ where 职工号 =+WTextField.getText()+; Connection con = DriverManager.getConnection(jdbc:odbc:redsun); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
41、 - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 41 页 - - - - - - - - - 19 Statement stmt = con.createStatement(); ResultSet rs=stmt.executeQuery(str); while(rs.next() Vector data=new Vector(); data.addElement(rs.getString(1); data.addElement(rs.getString(2); data.addElement(rs.getString(3); defaultModel.
42、addRow(data); table.revalidate(); catch(SQLException e) System.out.println(SQLException: +e.getMessage(); ); Btnupdate.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try Submit o=new Submit(); if(XTextField.getText().toString().equals() JOptionPane.showMessageDialo
43、g(null,密 码 不 能 为 空 ,添 加,JOptionPane.WARNING_MESSAGE); else o.tijiao(WTextField.getText().toString(),XTextField.getText().toString(),X1TextField.getText().toString(); catch(Exception e1) e1.printStackTrace(); JOptionPane.showMessageDialog(null,修 改 成 功!,修改 密 码 和 权 限,JOptionPane.INFORMATION_MESSAGE); )
44、; public static void main(String args) new UpdatePwdUserclass(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 41 页 - - - - - - - - - 20 (4)Submit.java import java.sql.*; public class Submit public void tijiao(String WTextField,String XTextField,String X1Text
45、Field) throws Exception String JDriver = sun.jdbc.odbc.JdbcOdbcDriver; String connectionURL=jdbc:odbc:redsun; Class.forName(JDriver); / Connect the ODBC resource. Connection con = DriverManager.getConnection(connectionURL); Statement stmt = con.createStatement(); System.out.println(连接数据库成功! ); Strin
46、g query1 = update 系统用户 set 密码 = +XTextField+, 用户类=+X1TextField+ where 职工号= +WTextField+; System.out.println(*+XTextField+ +X1TextField); stmt.executeUpdate(query1); stmt.close(); con.close(); (5)UserAdd.java import java.io.*; import .*; import java.awt.event.*; import javax.swing.*; public class Use
47、rAdd extends JFrame private JTextField Wno,Wpwd,Wuserclass; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 41 页 - - - - - - - - - 21private JLabel jno,jpwd,juserclass; private JButton Btnupdate,Btnexit; public UserAdd() this.setLayout(null); jno=new JLabel(职工号
48、 :); jpwd=new JLabel( 密码:); juserclass=new JLabel(用户类 :); Wno=new JTextField(); Wpwd=new JTextField(); Wuserclass=new JTextField(); Btnupdate=new JButton(添加); Btnexit=new JButton(取消); jno.setBounds(30,20,60,30);/设置标签大小 jpwd.setBounds(30,70,60,26); juserclass.setBounds(30,120,60,26); Wno.setBounds(11
49、0,20,120,26); Wpwd.setBounds(110,70,120,26); Wuserclass.setBounds(110,120,120,26); Btnupdate.setBounds(30,220,60,26); Btnexit.setBounds(140,220,60,26); this.add(jno); this.add(Wno); this.add(jpwd); this.add(Wpwd); this.add(juserclass); this.add(Wuserclass); this.add(Btnupdate); this.add( Btnexit); t
50、his.setSize(250,300); this.setTitle(添加新用户 ); Btnupdate.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try Add1 o=new Add1(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 41 页 - - - - - - - - - 22if(Wno.getText().toString().