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