《2022年企业人事管理设计报告.pdf》由会员分享,可在线阅读,更多相关《2022年企业人事管理设计报告.pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java 课程设计报告题目企业人事管理系统专业信息管理与信息系统班级信管 152 学号 1510402204 姓名陈嘉文指导教师傅莉完成时间二零一六年六月二十九日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 36 页 - - - - - - - - - - 目录一、设计任务与要求. 21.1 设计任务与要求 . . 21.2 选题目的与意义 . . 2二、需求分析 . 32.1 用户需求分析 . . 32.2 开发环境分析 . . 3三、系统设计 . 43.1 系统总体设计 . . 43.2
2、 功能模块设计 . . 43.3 类及方法的设计 . . 5四、程序实现 . 64.1 程序流程图 . . 64.2 关键程序 . . 6五、测试运行 . 85.1 系统测试方案 . . 85.2 系统测试运行及结果分析. . 8六、设计体会 . 12主要参考文献 . 13附录: . 14精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 36 页 - - - - - - - - - - 一、 设计任务与要求1.1 设计任务与要求根据所选课题“企业人事管理系统”,完成课程设计的分析、设计和编码,制
3、作一个简单的管理系统, 并用窗口界面实现, 可以对企业员工的基本信息 (员工编号、姓名、性别、联系电话、部门、职务、底薪)实现录入、修改、调用、删除。并完成课程设计报告。1.2 选题目的与意义无论企业大小,都需要进行人事管理,企业人事管理系统基于这样的要求,实现了对企业人事的基本信息管理。通过企业人事管理系统的设计过程,深刻了解掌握面向对象程序设计语言Java 的核心概念和特性;了解编程技术知识,会处理异常情况。了解基于 Swing 的图形用户界面开发;掌握Java 应用软件的开发环境和开发过程;灵活选择程序设计思想。精品资料 - - - 欢迎下载 - - - - - - - - - - -
4、欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 36 页 - - - - - - - - - - 二、需求分析2.1 用户需求分析现在的社会是信息化的社会, 随着科学技术的发展, 人们越来越多的用计算机去代替和延伸脑力劳动,而且计算机能够更高效地帮助人们去处理一些事情,为了把传统的人事管理和现在用计算机技术对人事进行管理相结合,这次,我设计了这套基本的企业人事管理系统方案。通过此系统的运用, 可以满足企业人事管理的诸多需求,例如对新员工基本信息录入,对离职员工实现信息删除,对员工信息实现修改等需求。2.2 开发环境分析系统编程基于JAVA Swing 的图形用户界面开
5、发,使用WINDOWS 环境下的Myeclipse6.0.1软件开发。 MyEclipse 企业级工作平台( MyEclipse Enterprise Workbench ,简称 MyEclipse )是对 Eclipse IDE 的扩展,利用它我们可以在数据库和 JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 36 页 - - - - - - - - - - 三、系统设计3.1 系统总体设计该软件功能分析说明图如所示:
6、企业人事管理系统图 3.1 功能分析说明3.2 功能模块设计模块功能主界面显示系统名称“企业人事管理系统”录入界面实现员工基本信息录入修改界面对员工基本信息实现修改调用界面调用信息实现查询及打印的功能删除界面删除员工基本信息表 3.2 调用员工基本信息删除员工基本信息录入员工基本信息主界面修改员工基本信息精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 36 页 - - - - - - - - - - 3.3 类及方法的设计类名方法Delete Delete(File) actionPerfor
7、med(ActionEvent) InputEmployee InputEmployee(File) actionPerformed(ActionEvent) clearMess() EmployeePicture EmployeePicture() paintComponent(Graphics) setImage(File) Inquest Inquest(File) actionPerformed(ActionEvent) clearMess() ManagerWindow main(String) ManagerWindow() actionPerformed(ActionEvent)
8、 ModifySituation ModifySituation(File) actionPerformed(ActionEvent) clearMess() Employee getDepartment() getImagePic() getName() getNumber() getPhone() getPosition() getSalary() getSex() setDepartment(String) setImagePic(File) setName(String) setNumber(String) setPhone(String) setPosition(String) se
9、tSalary(String) setSex(String) 表 3.3 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 36 页 - - - - - - - - - - 四、程序实现4.1 程序流程设计图 4.14.2 关键程序public class EmployeePicture extends JPanel/继承图形用户界面的面板容器类public class Employee implements Serializable/继承有序列化功能的接口public class Modify
10、Situation extends JPanel implements ActionListener/继承负责创建监视器的类try inOne=new FileInputStream(systemFile); inTwo=new ObjectInputStream(inOne); 基本信息表=(HashMap)inTwo.readObject(); inOne.close(); inTwo.close(); 主界面录入修改调用删除录入员工姓名、联系电话等信息企业人事管理系统实现信息修改查询员工信息及打印删除员工信息精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎
11、下载 名师归纳 - - - - - - - - - -第 7 页,共 36 页 - - - - - - - - - - catch(Exception ee)/处理异常基本信息录入 =new InputEmployee (file); 基本信息修改 =new ModifySituation(file); 基本信息查询与打印 =new Inquest(file); 基本信息删除 =new Delete(file); pCenter.add(主界面 ,label); pCenter.add(录入界面 , 基本信息录入 ); pCenter.add(修改界面 , 基本信息修改 ); pCenter.
12、add(删除界面 , 基本信息删除 );/新建菜单并加入到容器中group=new ButtonGroup(); 男=new JRadioButton(男,true); 女=new JRadioButton(女,false); group.add(男); group.add(女);/新建单选按钮并添加putButton.setBackground(Color.red);/添加背景颜色Image image=tool.getImage(imageFile.getAbsolutePath(); g.drawImage(image,0,0,w,h,this);/实现对照片的添加FileNameExt
13、ensionFilter filter = new FileNameExtensionFilter( JPG & GIF Images, jpg, gif);/对 filter的实现public void actionPerformed(ActionEvent e) if(e.getSource()=查询 |e.getSource()=学号 ) /触发事件实现调用public void actionPerformed(ActionEvent e) if(e.getSource()=删除|e.getSource()=员工编号) / 触发事件实现删除public void actionPerfor
14、med(ActionEvent e) if(e.getSource()=开始 修改|e.getSource()=员工编号) / 触发事件实现修改public static void main(String args) new ManagerWindow(); /主类精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 36 页 - - - - - - - - - - 五、测试运行5.1 系统测试方案本次设计采用 WINDOWS环境下的 MyEclipse , MyEclipse 包括了完备的编码、调
15、试、测试和发布功能,极大的提高了工作效率。在MyEclipse 中进行测试,较为方便。5.2 系统测试运行及结果分析(1)主界面:进入管理系统后,显示系统名称,点击菜单,显示其他模块选项。图 5.2.1 (2)录入员工基本信息:实现对员工编号、姓名、性别、联系电话、部门选择、职务、底薪和照片的录入。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 36 页 - - - - - - - - - - 图 5.2.2.1 选择图片界面图 5.2.2.2 图 5.2.2.3 (3)修改员工基本信息:实现
16、对员工编号、姓名、性别、联系电话、部门选择、职务、底薪和照片的修改。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 36 页 - - - - - - - - - - 图 5.2.3 (4)调用员工基本信息:输入员工编号,对员工信息实现查询调用,还可以进行打印。图 5.2.4.1 若输入错误编号图 5.2.4.2 (5)删除员工基本信息:输入编号实现对员工信息的删除。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - -
17、- -第 11 页,共 36 页 - - - - - - - - - - 图 5.2.5.1 若未输入编号:图 5.2.5.2 (6)退出关闭窗口时图 5.2.6 所有功能皆可实现,程序运行成功!精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 36 页 - - - - - - - - - - 六、设计体会系统设计最重要的不是创意,而是功能。设计系统是对一个人整体思维能力的、挑战自己大脑极限的工作, 总是伴着某种痛苦,因为很多你想加入的系统功能和特色,经过自己检验和想象式测试,就会发现存在很多
18、问题, 于是不断的改, 直到最后才发现, 最简单的设定往往最有效最合理,然后再以此追加更高级的复杂设定。希望进行更多的探讨和交流. 这次系统设计中遇到了一些问题,比如系统运行过程中如何完成录入、添加照片等操作,经过查阅资料和编程测试最终解决。经过一个学期的学习,我对Java 有了一定的初步了解,可以完成简单程序的设计,但对于较为熟练地运用还有一定的问题,在查阅资料及咨询老师后, 完成了这个系统的设计, 但是这个系统还不是很完善,功能还可以继续增加, 使之更加完美, 例如数据库的知识不是很了解,如果加入大量数据库编程, 系统将会更加完善。如今社会中,计算机技术与企业管理密不可分, 通过计算机系统
19、程序的使用,使得企业管理更加方便快捷, 因此企业人事管理系统比较重要,很开心能完成此程序的设计,希望程序能起到应有的作用。发现问题,提出问题,解决问题,使我从不足之处出发, 寻找新的学习方向。一边实习一边探索, 发现理论和实践要充分地结合,是需要扎实的基本功的, 这就表明学好基础知识是理论付诸实践的前提。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 36 页 - - - - - - - - - - 主要参考文献1 耿祥义 .Java2 实用教程 M. 北京:清华大学出版社 . 2012.
20、2 耿祥义 .Java 课程设计 M. 北京:清华大学出版社 . 2008. 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 36 页 - - - - - - - - - - 附录:ManagerWindow.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.HashMap;publicclass ManagerWindow extends
21、JFrame implements ActionListener InputEmployee 人事信息录入; ModifySituation 基本信息修改; Inquest 基本信息调用; Delete 基本信息删除; JMenuBar bar; JMenu fileMenu; JMenuItem 录入 , 修改 , 调用 , 删除 , 主界面 ; HashMap 基本信息 =null; File file=null; CardLayout card =null ; JLabel label =null ; JPanel pCenter ;public ManagerWindow()录入 =n
22、ew JMenuItem( 录入员工基本信息 );修改 =new JMenuItem( 修改员工基本信息 );调用 =new JMenuItem( 调用员工基本信息 );删除 =new JMenuItem( 删除员工基本信息 );主界面 =new JMenuItem(主界面 );bar =new JMenuBar();fileMenu =new JMenu( 菜单 );fileMenu .add( 录入 );fileMenu .add( 修改 );fileMenu .add( 调用 );fileMenu .add( 删除 );fileMenu .add( 主界面 );bar .add( fil
23、eMenu); setJMenuBar(bar );label=new JLabel( 企业人事管理系统 ,JLabel.CENTER);label.setIcon(new ImageIcon(welcome.jpg);label.setFont(new Font(楷体 ,Font.BOLD,40);label.setHorizontalTextPosition(SwingConstants.CENTER);label.setForeground(Color.BLACK);基本信息 =new HashMap();录入 .addActionListener(this );修改 .addActio
24、nListener(this );精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 36 页 - - - - - - - - - - 调用 .addActionListener(this );删除 .addActionListener(this );主界面 .addActionListener(this );card =new CardLayout();pCenter =new JPanel();pCenter .setLayout(card ); file=new File( 基本信息 .t
25、xt);if (! file.exists()try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(基本信息 ); objectOut.close(); out.close(); catch (IOException e) 人事信息录入=new InputEmployee(file);基本信息修改=new ModifySituation(file);基本信息调用=new Inquest
26、(file);基本信息删除=new Delete(file);pCenter .add( 欢迎界面 , label );pCenter .add( 录入界面 , 人事信息录入 );pCenter .add( 修改界面 , 基本信息修改 );pCenter .add( 删除界面 , 基本信息删除 ); add(pCenter ,BorderLayout.CENTER); validate(); setVisible(true ); setBounds(100,50,500,300); setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); ad
27、dWindowListener(new WindowAdapter()publicvoid windowClosing(WindowEvent e)int n=JOptionPane.showConfirmDialog( null , 确认退出 ? , 确认对话框” , JOptionPane.YES_NO_OPTION );if (n=JOptionPane.YES_OPTION) System.exit(0); ); validate(); publicvoid actionPerformed(ActionEvent e)if (e.getSource()=录入 )人事信息录入.clear
28、Mess();card .show( pCenter , 录入界面 ); elseif (e.getSource()=修改 )基本信息修改 .clearMess();card .show( pCenter , 修改界面 ); elseif (e.getSource()=调用 )基本信息调用 .clearMess();精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 36 页 - - - - - - - - - - 基本信息调用 .setLocation(getBounds().width ,g
29、etBounds().height );基本信息调用 .setVisible(true ); elseif (e.getSource()=删除 )card .show( pCenter , 删除界面 );elseif (e.getSource()=主界面 )card .show( pCenter , 主界面 ); publicstaticvoid main(String args)new ManagerWindow(); Employee.javaimport java.io.*;publicclass Employee implements SerializableString number
30、, name , phone, department , position, salary , sex ;File imagePic ;publicvoid setNumber(String number)this . number=number; public String getNumber()returnnumber; publicvoid setName(String name)this . name =name; public String getName()returnname; publicvoid setPhone(String phone)this . phone=phone
31、; public String getPhone()returnphone; publicvoid setDepartment(String department)this . department =department; public String getDepartment()returndepartment ; publicvoid setPosition(String position)this . position=position; public String getPosition()returnposition; publicvoid setSalary(String sal
32、ary)this . salary =salary; public String getSalary()returnsalary ; publicvoid setSex(String sex)this . sex=sex; public String getSex()returnsex; publicvoid setImagePic(File imagePic2) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 36 页 - - - - - - - - - - public File get
33、ImagePic() returnnull; InputEmployee.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;import javax.swing.filechooser.*;public class InputEmployee extends JPanel implements ActionListener Employee 员工 =null; EmployeePicture pic; HashMap 基本信息表 =null
34、; JTextField 员工编号 , 姓名 , 联系电话 , 职务 , 底薪 ; JButton 选择照片 ; JComboBox 部门 ; JRadioButton 男, 女; ButtonGroup group=null; JButton 录入 , 重置 ; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File systemFile,imagePic; public InputEmployee(
35、File file) systemFile=file; pic=new EmployeePicture();员工编号 =new JTextField(5);姓名 =new JTextField(5);联系电话 =new JTextField(13);部门 =new JComboBox(); try FileReader inOne=new FileReader(部门 .txt); BufferedReader inTwo= new BufferedReader(inOne); String s=null; int i=0; while(s=inTwo.readLine()!=null)部门 .
36、addItem(s); inOne.close(); inTwo.close(); catch(IOException exp)部门 .addItem(行政部 );精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 36 页 - - - - - - - - - - 部门 .addItem(MPC);部门 .addItem(财务 ); 职务 =new JTextField(5);底薪 =new JTextField(5);选择照片 =new JButton(选择 ); group=new Butt
37、onGroup();男=new JRadioButton(男,true);女=new JRadioButton(女,false); group.add(男); group.add(女);录入 =new JButton(录入 );重置 =new JButton(重置 );录入 .addActionListener(this);选择照片 .addActionListener(this);重置 .addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel(员工编号 :,JLabel.CENTER);
38、 box1.add(员工编号 ); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(姓名 :,JLabel.CENTER); box2.add(姓名 ); Box box3=Box.createHorizontalBox(); box3.add(new JLabel(性别 :,JLabel.CENTER); box3.add(男 ); box3.add(女 ); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(联系电话 :,JLabel.CENTER); box4.a
39、dd(联系电话 ); Box box5=Box.createHorizontalBox(); box5.add(new JLabel(部门 :,JLabel.CENTER); box5.add(部门 ); Box box6=Box.createHorizontalBox(); box6.add(new JLabel(职务 :,JLabel.CENTER); box6.add(职务 ); Box box7=Box.createHorizontalBox(); box7.add(new JLabel(底薪 :,JLabel.CENTER); box7.add(底薪 ); Box boxH=Box.
40、createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(box5); boxH.add(box6);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 36 页 - - - - - - - - - - boxH.add(box7); boxH.add(Box.createVerticalGlue(); JPanel picPanel=new JPanel(); pi
41、cPanel.setBackground(Color.GRAY); picPanel.add(new JLabel(选择照片 :,JLabel.CENTER); picPanel.add(选择照片 ); JPanel putButton=new JPanel(); putButton.add(录入 ); putButton.add(重置 ); JPanel messPanel=new JPanel(); messPanel.add(boxH); messPanel.setBackground(Color.white); putButton.setBackground(Color.GRAY);
42、setLayout(new BorderLayout(); JSplitPane splitV= new JSplitPane(JSplitPane.VERTICAL_SPLIT,picPanel,pic); JSplitPane splitH=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,messPanel,splitV); add(splitH,BorderLayout.CENTER); add(putButton,BorderLayout.SOUTH); validate(); public void actionPerformed(ActionE
43、vent ee) if(ee.getSource()=录入 ) String number=; number=员工编号 .getText(); if(number.length()0) try inOne=new FileInputStream(systemFile); inTwo=new ObjectInputStream(inOne);基本信息 =(HashMap)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception eee) if(基本信息表 .containsKey(number) String warnin
44、g=该员工基本信息已存在, 请到修改页面修改!; JOptionPane.showMessageDialog(this,warning,警告 , JOptionPane.WARNING_MESSAGE); else String m=基本信息将被录入!; int ok=JOptionPane.showConfirmDialog(this,m,确认 , JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名 .getText(); String
45、 phone=联系电话 .getText();精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 20 页,共 36 页 - - - - - - - - - - String department=(String)部门 .getSelectedItem(); String position=职务 .getText(); String salary=底薪 .getText(); String sex=null; if(男.isSelected() sex=男.getText(); else sex=女.getT
46、ext();员工 =new Employee();员工 .setNumber(number);员工 .setName(name);员工 .setPhone(phone);员工 .setDepartment(department);员工 .setPosition(position);员工 .setSalary(salary);员工 .setSex(sex);员工 .setImagePic(imagePic); try outOne=new FileOutputStream(systemFile); outTwo=new ObjectOutputStream(outOne);基本信息表 .put(
47、number,员工 ); outTwo.writeObject(基本信息表 ); outTwo.close(); outOne.close(); clearMess(); catch(Exception eee) else String warning=必须要输入员工编号!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else if(ee.getSource()=选择照片 ) JFileChooser chooser=new JFileChooser(); FileNameExtens
48、ionFilter filter = new FileNameExtensionFilter( JPG & GIF Images, jpg, gif); chooser.setFileFilter(filter); int state=chooser.showOpenDialog(null); File choiceFile=chooser.getSelectedFile(); if(choiceFile!=null&state=JFileChooser.APPROVE_OPTION)选择照片 .setText(choiceFile.getName(); imagePic=choiceFile
49、; pic.setImage(imagePic); pic.repaint(); else if(e.getSource()=重置 ) clearMess(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 21 页,共 36 页 - - - - - - - - - - public void clearMess()员工编号 .setText(null);姓名 .setText(null);联系电话 .setText(null);职务 .setText(null);底薪 .setText(null);选
50、择照片 .setText(选择 ); imagePic=null; pic.setImage(imagePic); pic.repaint(); ModifySituation.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;import javax.swing.filechooser.*;public class ModifySituation extends JPanel implements ActionListener Emplo