




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JIJIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 软件工程开发工具实践学院名称: 东方学院 专 业: 软件工程 班 级: 08软件(2)班 姓 名: 顾振强 学 号: 指导教师姓名: 张俐 2011年 1月 7日 人力资源管理系统实验一、人力资源系统使用的必要性 如今计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。员工信息管理是企业信息管理的重要部分,面对大量的人事信息,采用人力处理即浪费时间、又浪费人力和物力,并且数据的准确性低。 因此,开发一个界面友好,易于操作的人力资源管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。本文所阐述的人力资源管理系统.提升了企业的效率和竞争力,满足了现代企业管理的需要. 本系统采用java语言基于C/S架构设计,能够跨平台使用,有较大的实用性和移植性,极大地方便了公司的人力资源管理。可以节省很多工作时间,进而节省公司运作成本。 关键字:J2SE,C/S架构2、 可行性分析(一)概论 人事管理系统的开放需要用到多方面的知识,包括数据库的选用、数据库驱动程序的选择和安装、管理界面的设计、信息的存储和读取等。这对设计者的水平都有一定的要求。因此,如何设计和开发好这个人事管理系统,对提高开发水平和系统的设计能力有极大的帮助。在设计开发过程中,开放者需要选用恰当的数据库和数据库连接驱动程序、设计好合适的数据库表格和设计好美观大方的管理界面。 在现在信息爆发的情况下,企业间的竞争和企业对人才的需求都更加激烈,人力资源也越来越受到重视。科学的管理方式与IT技术相结合成为提高人力资源部门管理水平的主要方式,人力资源管理开发将成为围绕人的信息化过程。发展的重要标识是E化的员工、E化的人力资源,最终成为E化的企业。因此,建立现代化的计算机人事管理系统已成为现代化企业基础建设的一个重要方式。1.系统要求 本系统要求基于C/S结构的人力资源管理系统,可使公司内部业务实现计算机管理,加速数据的采集、处理、分析、输出、帮助管理人员查看、分析、管理人员和部门资料,了解各位职员和部门之间的关系和情况。2. 系统目标 使用本系统之后可以使公司的管理层更方便的管理公司的部门和人员资料,实现一点即看,一点即管的管理方式,大大的增加公司管理者的管理效率,可以更及时更准确的把公司的部门和人员信息储存和管理。(二)技术可行性分析 人力资源系统采用常规的数据库管理方法,根据人事管理的特点对数据库进行操作,例如对数据库的增加、修改、删除、打印和输出都做出了进一步的优化。1、优越性 本系统有利于数据的集中、有效管理。与手动管理方式相比,易更新,易备份。本系统增强了系统的灵活性。当原始数据发生变动时,应用程序可对数据库稍作修改即可使数据及时反映最新情况。本系统能够较好地保证数据库的安全。建立用户并为之分配密码和操作权限,这样,任何用户只能在他的权限范围内对数据库进行操作。2、结合自身的技术可行性分析 本系统为一个人力资源管理系统的一个模块功能,以现有所学的java技术和数据库技术,完成需求所需要的功能是没有问题的,可是在既定时间内顺利完成任务。3、所需要的硬件和软件准备A、硬件设备:PC;B、软件:Windows XP、MyEclipse、Mysql、Microsoft project、Power Designer、Microsoft visio、Rational Rose。(三)可行性分析小结 由可行性分析得出结论,根据现有技术力量和公司资金情况,可以着手开发此项目,完成人力资源系统软件,满足公司的需求。3、 系统开发计划(一)概述1系统描述 公司或企业的人力资源管理是公司或企业内部管理中很重要的一部分,因为人才的全球化竞争使公司或企业的人力资源管理面临前所未有的挑战。传统的人事管理使人事经理需要花费大量的时间处理人事信息数据,而仅剩时间可专注于人力资源的发展和规划。人力资源管理系统可以改变这一切,使人力资源部门可轻松地管理复杂繁琐的人事信息,从复杂性的日常生活中解脱出来,投注更多的精力与人力资源战略规划以支持和推动公司的战略目标的实现,提高其对公司的价值。2待开发软件的功能 待开发软件的主要功能模块图(1)(二)开发过程表述甘特图:图(2)图(3)(3) 系统运行要求:1、 windows 2000/xp/vista/7、内存256MB、CPU1.0GHZ、硬盘10GB以上。2、 数据库:mysql(4) 软件运行缺陷 考虑到本软件使用的广泛性,在设计时应注意软件的可移植性,这也是符合开发语言java的特点,这样可以在不同的运行平台上运行了。 但是本软件的安全性还不是很高,密码很容易被破解,所以安全性方面还有待提高,以后将继续完善和维护。(五)基本功能需求A、基本的信息的增、删、改;B、隐含信息提示下图为用Power Designer画的基本的数据流图:图(4)(六)系统接口需求1、用户界面 简洁的用户界面,便于操作的按钮设计。简单易懂,和普通软件类似的操作方式使人能够很快的上手,不需要系统的学习。2、硬件接口 支持一般的PC机。四、需求分析(一)任务概述1、功能需求用mysql建立人力资源管理系统基础数据库。用Myeclips编程建立人力资源管理系统。该系统将实现一个较为通用的人力资源管理系统,模块功能详见功能需求部分。具体功能如下:1) 人员信息和部门信息的增、删、改,系统管理员对用户信息的管理,实现登陆一次就可以进行全部操作,并且还能在初始登录窗口注册为新的用户,用户信息存储保存。2)档案缴费,人事部可以通过本软件为每个员工进行档案缴费,并且记录在数据库中进行保存。2、数据结构描述 本系统有三张数据表,一张用户表,一张部门表,一张公司人员表,下图为三张表在本系统中的关系。图(5)用户表的数据如表:图(6)部门表的数据如表:图(7)公司人员表的数据如表:图(8)(2) 其他需求1) 安全保密性本系统必须通过注册才能登录本系统进而对系统中的数据进行操作,这样就可以保护用户资料以及公司的商业机密资料。2) 可移植性本系统可以在PC电脑上反复安装,安装简单,配置要求不高,大多数电脑可以满足要求。五、概要设计(一)总体设计1、系统总体结构和模块外部设计图(9) 模块编号和模块名称模块编号模块名称备注M1.1新员工调档M1.2档案缴费M1.3档案维护M1.4退出系统正常退出图(10)(二)接口设计1、 外部接口1) 用户界面系统登陆界面如图所示:图(11) 如果把完整的程序比作一个屋子,那么,用户登录模块就是一扇门,用户名和密码就是门和钥匙,锁就是验证用户名和密码的;逻辑,只有确保用户名和密码都正确才能进入屋子。用户名直接登录的流程如图所示:图(12)用户修改密码之后在进行登录的流程图如图所示:图(13)6、 详细设计(一)概述1.系统开发目的 人力资源管理系统是一个面向企业人才资源人员,为其提供服务的综合信息管理系统。人才资源人员通过本系统完成相关的日常工作,这些工作也是平常较为繁重的工作。人员的个人信息、以及各种相关的亲属等情况开课情况都记录在人才资源系统里进行管理。由人才资源人员在档案更新中完成对运行人才资源系统所需的基本数据的维护。包括这些信息的增、修、改等,变动都将在这进行操作。系统开始投入使用,人才资源人员先根据企业实际情况,建立相关人员的信息,主要信息包括系所的姓名及它的学历等。输入人员信息的过程是首先从系统数据库中选择相关的系所,然后再它下面加入新的辅助信息。当人员情况发生变动后,人才资源人员要及时完成对库中的信息进行维护。如果发生人才资源的变动(如进和出),则可以在档案更新中进行处理。 2.社会背景 在科技不断发展进步、技术创新加快的情况下,企业间的竞争和企业对人才的需求都更加激烈,人力资源也越来越受到重视。科学的管理方式与IT技术相结合成为提高人力资源部门管理水平的主要方式,人力资源管理开发将成为围绕人的信息化过程。发展的重要标识是E化的员工、E化的人力资源,最终成为E化的企业。因此,建立现代化的计算机人事管理系统已成为现代化企业基础建设的一个重要方式。(二)总体设计模块描述:图(14)程序设计说明:图(15)(三)部分用户界面图(1) 、用户登录界面,如果没有账号可以注册为用户,界面如下所示:图(16)(2) 、注册界面,通过此界面的操作注册为用户,注册界面如下所示:图(17)(3) 、系统主界面,如下图所示:图(18)(4) 、用户信息管理界面,如下图所示:图(19)(5) 、添加用户界面,如下图所示:图(20)(6) 、修改用户界面,如下图所示:图(21)(7) 、公司人员管理界面,如下图所示:图(22)(8) 、添加员工信息界面,如下图所示:图(23)(9) 、修改公司人员信息界面,如下图所示:图(24)(10) 、新员工注册界面,如下图所示:图(25)(11) 、修改公司人员信息界面,如下图所示:图(26)(12) 、公司部门管理界面,如下图所示:图(27)(13) 、添加员工信息界面,如下图所示:图(28)(14) 修改部门信息界面,如下图所示图(29)(15) 、档案缴费界面,如下图所示:图(30)(16) 、员工缴费界面,如下图所示:图(31)七、UML建模1、系统整体用例图用例图:图(32)2、人事部用例图【局部已实现模块用例图】图(33)3、系统管理员用例图图(34)4、类图图(35)5、 序列图1)系统管理员注册登录序列图图(36)与之对应的协作图:图(37)2) 系统管理员添加用户界面图(38)与之对应的协作图:图(39)3) 系统管理员删除用户用例图图(40)与之对应的协作图:图(41)4) 系统管理员修改用户信息用例图图(42)与之对应的协作图:图(43)5)人事部添加部门信息用例图图(44)与之对应的协作图:图(45)6)人事部删除部门信息用例图图(46)与之对应的协作图:图(47)7)人事部修改信息用例图图(48)与之对应的协作图:图(49)8)人事部添加员工信息用例图图(50)与之对应的协作图: 图(51)9)人事部删除员工信息用例图图(52)与之对应的协作图:图(53)10)人事部修稿员工信息用例图图(54)与之对应的协作图:图(55)11)人事部缴费用例图图(56)与之对应的协作图:图(57)9、 主要代码(只列出部分代码)1、登录窗口package leslie;import java.awt.BorderLayout;import java.awt.Font;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.sql.*;import javax.swing.*;public class UserManage extends JFrame implements ActionListenerJLabel jl1,jl2,jl3,jl4,jl5,jl6;JTable jt = null;JTextField jtf1;JPasswordField jtf2;JButton jb0,jb1,jb2,jb3;JPanel jp0,jp1,jp2,jp3;UserModel userModel = null;ResultSet rs = null;public static final String driver =com.mysql.jdbc.Driver;public static final String url = jdbc:mysql:/localhost:3306/jstu?useUnicode=true&characterEncoding=gb2312;public static final String user = root;public static final String password=root; Connection conn = null;PreparedStatement pstmt = null;String sql = select * from user;public static void main(String args)UserManage manage=new UserManage();public UserManage()userModel = new UserModel(); jt = new JTable(userModel);jl1= new JLabel(姓 名);jl2= new JLabel(密 码);jp1 = new JPanel(new GridLayout(2,1);jp1.add(jl1);jp1.add(jl2);jtf1 = new JTextField(10);jtf2 = new JPasswordField(10);jp2 = new JPanel(new GridLayout(2,1);jp2.add(jtf1);jp2.add(jtf2);jb1 = new JButton(登 录);jb1.addActionListener(this);jb2 = new JButton(注 册);jb2.addActionListener(this);jb3 = new JButton(退 出);jb3.addActionListener(this);jp0=new JPanel();jp3 = new JPanel();jp3.add(jb1);jp3.add(jb2);jp3.add(jb3);this.add(jp0,BorderLayout.NORTH);this.add(jp1,BorderLayout.WEST);this.add(jp2,BorderLayout.EAST);this.add(jp3,BorderLayout.SOUTH);this.setSize(250,160);this.setVisible(true);public void actionPerformed(ActionEvent e) if(e.getSource()=jb1)boolean flag =false;try Class.forName(driver);conn = DriverManager.getConnection(url,user,password);pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();while(rs.next()String name=rs.getString(name);String pwd = rs.getString(password);if(jtf1.getText().trim().equals(name)&jtf2.getText().trim().equals(pwd)new WorkerMain(人力资源管理系统);this.dispose();flag =true;return ;if(flag =false)JOptionPane.showMessageDialog(this, 还没有注册,如需进入请注册!); catch (ClassNotFoundException e1) e1.printStackTrace(); catch (SQLException e1) e1.printStackTrace();finallytry rs.close();pstmt.close();conn.close(); catch (SQLException e1) e1.printStackTrace(); if(e.getSource()=jb2)new AddUser(this,注册界面,true);else if(e.getSource()=jb3)this.dispose();2、主界面代码package leslie;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class WorkerMain extends JFrame implements ActionListener JMenuBar menubar; JMenu menu1,menu2; JButton button1,button2,button3,button4; JPanel Panel1,Panel2,Panel3,Panel4; JMenuItem Exititem,AddWorkerInfoitem; public static final String driver =com.mysql.jdbc.Driver; public static final String url = jdbc:mysql:/localhost:3306/jstu?useUnicode=true&characterEncoding=gb2312; public static final String user = root; public static final String password=root; public static void main(String args) new WorkerMain(人力资源管理系统); WorkerMain(String s) super(s); menubar = new JMenuBar(); Panel1=new JPanel(); Panel2=new JPanel(); Panel3=new JPanel(); Panel4=new JPanel(); setDefaultCloseOperation(EXIT_ON_CLOSE); menu1 = new JMenu(用户信息管理); menu2 = new JMenu(系统管理); button1=new JButton(公司部门资料); button2=new JButton(公司人员详细资料); button3=new JButton(新员工调档); button4=new JButton(档案缴费); Exititem = new JMenuItem(退出系统); AddWorkerInfoitem = new JMenuItem(管理); Panel1.add(button1); Panel2.add(button2); Panel3.add(button3); Panel4.add(button4); add(Panel1); add(Panel2); add(Panel3); add(Panel4); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); menubar.add(menu1); menubar.add(menu2); menu2.add(Exititem); Exititem.addActionListener(this); menu1.add(AddWorkerInfoitem);AddWorkerInfoitem.addActionListener(this);setJMenuBar(menubar);setLayout(new FlowLayout();setBounds(100,100,400,400);setSize(300,400);setVisible(true);validate();public void actionPerformed(ActionEvent e) if(e.getSource()=AddWorkerInfoitem)new UserJFrame(信息管理界面); if(e.getSource()=button1)new ApartmentJFrame(公司部门管理); if(e.getSource()=button2)new WorkerJFrame(公司人员管理); if(e.getSource()=button3)new WorkerJFrame(新员工注册); if(e.getSource()=button4)new PayJFrame(档案缴费);if(e.getSource()=Exititem)this.dispose();3、数据库连接代码package leslie;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;public class UserModel extends AbstractTableModel public static final String driver =com.mysql.jdbc.Driver;public static final String url = jdbc:mysql:/localhost:3306/jstu?useUnicode=true&characterEncoding=gb2312;public static final String user = root;public static final String password=root;Vector rowData,columnNames;Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;public UserModel() columnNames = new Vector();columnNames.add(工号);columnNames.add(姓名);columnNames.add(密码);rowData = new Vector();tryClass.forName(driver);conn= DriverManager.getConnection(url, user, password);String sql =select * from user;ps = conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()Vector row = new Vector();row.add(rs.getString(1);row.add(rs.getString(2);row.add(rs.getString(3);rowData.add(row);catch(Exception e)e.printStackTrace();finallytry rs.close();ps.close();conn.close(); catch (SQLException e) e.printStackTrace();public int getColumnCount() return this.columnNames.size();public int getRowCount() return this.rowData.size();public Object getValueAt(int rowIndex, int columnIndex) return (Vector)this.rowData.get(rowIndex).get(columnIndex);public String getColumnName(int column) return (String)this.columnNames.get(column);4、 添加用户代码package leslie;import java.awt.BorderLayout;import java.awt.Frame;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import javax.swing.*;public class AddUser extends JDialog implements ActionListenerJLabel jl1,jl2;JTextField jtf1,jtf2;JButton jb1,jb2;JPanel jp1,jp2,jp3;public static final String driver =com.mysql.jdbc.Driver;public static final String url = jdbc:mysql:/localhost:3306/jstu?useUnicode=true&characterEncoding=gb2312;public static final String user = root;public static final String password=root; Connection conn = null;PreparedStatement pstmt = null;String sql = insert into user(name,password) values(?,?);public AddUser(Frame owner, String title, boolean modal) super(owner, title, modal);jl1= new JLabel(姓 名);jl2= new JLabel(密 码);jp1 = new JPanel(new GridLayout(2,1);jp1.add(jl1);jp1.add(jl2);jtf1 = new JTextField(10);jtf2 = new JTextField(10);jp2 = new JPanel(new GridLayout(2,1);jp2.add(jtf1);jp2.add(jtf2);jb1 = new JButton(确认);jb2 = new JButton(取消);jb1.addActionListener(this);jb2.addActionListener(this);jp3 = new JPanel();jp3.add(jb1);jp3.add(jb2);this.add(jp1,BorderLayout.WEST);this.add(jp2,BorderLayout.EAST);this.add(jp3,BorderLayout.SOUTH);this.setSize(200,120);this.setVisible(true);public void actionPerformed(ActionEvent e) if(e.getSource()=jb1)try Class.forName(driver);conn= DriverManager.getConnection(url, user, password);pstmt = conn.prepareStatement(sql);pstmt.setString(1, jtf1.getText().trim();pstmt.setString(2,jtf2.getText().trim(); pstmt.executeUpdate(); catch (Exception e1) e1.printStackTrace(); finallytry pstmt.close();conn.close(); catch (SQLException e1) e1.printStackTrace();this.dispose(); if(e.getSource()=jb2) jtf1.setText(null);jtf2.setText(null);5、 修改用户代码package leslie;import java.awt.BorderLayout;import java.awt.Event;import java.awt.Frame;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import javax.swing.*;public class Updateuser extends JDialog implements ActionListenerprivate static final String driver = com.mysql.jdbc.Driver;private static final String url = jdbc:mysql:/127.0.0.1:3306/jstu?useUnicode=true&characterEncoding=gb2312;private static final String user = root;private static final String password = root;Connection conn = null;PreparedStatement pstmt = null;String sql = update user set name=?,password=? where id=?;JLabel jl1,jl2,jl3,jl4,jl5,jl6;JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;JButton jb1,jb2;JPanel jp1,jp2,jp3; public Updateuser(Frame owner, String title, boolean modal,UserModel userModel,int rowIndex) super(owner, title, modal);jl1 = new JLabel(工号);jl2 = new JLabel(用户名); jl3 = new JLabel(密码);jp1 = new JPanel(new GridLayout(3,1);jp1.add(jl1);jp1.add(jl2);jp1.add(jl3);jtf1 = new JTextField(10); jtf2 = new JTextField(10);jtf3 = new JTextField(10);jtf1.setText(String)userModel.getValueAt(rowIndex, 0);jtf2.setText(String)userModel.getValueAt(rowIndex, 1);jtf3.setText(String)userModel.getValueAt(rowIndex, 2);jp2 = new JPanel(new GridLayout(3,1);jp2.add(jtf1);jp2.add(jtf2);jp2.add(jtf3);jb1 = new JButton(确定);jb1.addActionListener(this);jb2 = new JButton(取消);jb2.addActionListener(this);jp3 = new JPanel(); jp3.add(jb1); jp3.add(jb2);this.add(jp1,BorderLayout.WEST);this.add(jp2,BorderLayout.EAST);this.add(jp3,BorderLayout.SOUTH);this.setBounds(400,260,200,200);this.setVisible(true);public void actionPerformed(ActionEvent e) if(e.getSource()=jb1)try Class.forName(driver);conn = DriverManager.getConnection(url, user, password);pstmt = conn.prepareStatement(sql);pstmt.setString(3, this.jtf1.getText().trim();pstmt.setString(1, this.jtf2.getText().trim();pstmt.setString(2, this.jtf3.getText().trim();pstmt.executeUpdate(); catch (ClassNotFoundException e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();finallytry pstmt.close();conn.close(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();this.dispose();else if(e.getSource()=jb2)this.dispose();6、添加公司员工代码package leslie;import java.awt.BorderLayout;import java.awt.Frame;import java.awt.GridLay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五Oracle企业数字化转型咨询服务协议
- 二零二五年度二次结构工程材料供应合同范本下载
- 二零二五年度建筑工地民工劳动权益保护及法律援助合同
- 二零二五年度建筑工程造价咨询委托协议书
- 二零二五年度建筑公司整体转让及安全管理合同
- 二零二五年度文化产业项目劳务派遣合作合同
- 二零二五年度物流快递车辆加盟服务合同
- 2025至2030年中国黑龙江省房地产市场深度分析及投资战略咨询报告
- 二零二五年度高科技项目工程战略合作协议书
- 2025版办公楼物业综合服务及设施设备更新改造合同模板
- 道德与法治作业设计感悟
- 小学生编织手工课件
- 广西现代物流集团招聘笔试真题2024
- 2025餐饮劳动合同书 电子版
- (2025)职业教育法知识竞赛题库带含答案
- CJ/T 449-2014切断型膜式燃气表
- 滨州海上风电项目可行性研究报告
- 人工智能赋能中小学教育:个性化学习路径优化研究
- 2025年月嫂考证:母婴护理师等技能资格知识考试题与答案
- 脑脊液相关试题及答案
- T/CAEPI 64-2023固体回收燃料分类与分级
评论
0/150
提交评论