收藏 分销(赏)

企业人事管理设计报告.docx

上传人:快乐****生活 文档编号:3902360 上传时间:2024-07-23 格式:DOCX 页数:59 大小:272.35KB 下载积分:14 金币
下载 相关 举报
企业人事管理设计报告.docx_第1页
第1页 / 共59页
企业人事管理设计报告.docx_第2页
第2页 / 共59页


点击查看更多>>
资源描述
Java课程设计报告 题 目 公司人事管理系统 专 业 信息管理与信息系统 班 级 信管152 学 号 姓 名 陈嘉文 指导教师 傅 莉 完毕时间 六月二十九日 目 录 一、设计任务与规定 2 1.1 设计任务与规定 2 1.2 选题目的与意义 2 二、需求分析 3 2.1 用户需求分析 3 2.2 开发环境分析 3 三、系统设计 4 3.1 系统总体设计 4 3.2 功能模块设计 4 3.3 类及方法的设计 5 四、程序实现 6 4.1 程序流程图 6 4.2 关键程序 6 五、测试运营 8 5.1 系统测试方案 8 5.2 系统测试运营及结果分析 8 六、设计体会 12 重要参考文献 13 附录: 14 一、 设计任务与规定 1.1 设计任务与规定 根据所选课题“公司人事管理系统”,完毕课程设计的分析、设计和编码,制作一个简朴的管理系统,并用窗口界面实现,可以对公司员工的基本信息(员工编号、姓名、性别、联系电话、部门、职务、底薪)实现录入、修改、调用、删除。并完毕课程设计报告。 1.2 选题目的与意义 无论公司大小,都需要进行人事管理,公司人事管理系统基于这样的规定,实现了对公司人事的基本信息管理。 通过公司人事管理系统的设计过程,深刻了解掌握面向对象程序设计语言Java的核心概念和特性;了解编程技术知识,会解决异常情况。 了解基于Swing的图形用户界面开发;掌握Java应用软件的开发环境和开发过程;灵活选择程序设计思想。 二、需求分析 2.1 用户需求分析 现在的社会是信息化的社会,随着科学技术的发展,人们越来越多的用计算机去代替和延伸脑力劳动,并且计算机可以更高效地帮助人们去解决一些事情,为了把传统的人事管理和现在用计算机技术对人事进行管理相结合,这次,我设计了这套基本的公司人事管理系统方案。 通过此系统的运用,可以满足公司人事管理的诸多需求,例如对新员工基本信息录入,对离职工工实现信息删除,对员工信息实现修改等需求。 2.2 开发环境分析 系统编程基于JAVA Swing的图形用户界面开发,使用WINDOWS环境下的Myeclipse6.0.1软件开发。MyEclipse公司级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,运用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。 三、系统设计 3.1 系统总体设计 该软件功能分析说明图如所示: 公司人事管理系统 修改员工基本信息 录入员工基本信息 调用员工基本信息 删除员工基本信息 主界面 图3.1 功能分析说明 3.2 功能模块设计 模块 功能 主界面 显示系统名称“公司人事管理系统” 录入界面 实现员工基本信息录入 修改界面 对员工基本信息实现修改 调用界面 调用信息实现查询及打印的功能 删除界面 删除员工基本信息 表3.2 3.3 类及方法的设计 类名 方法 Delete Delete(File) actionPerformed(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) 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) setSalary(String) setSex(String) 表 3.3 四、程序实现 4.1程序流程设计 公司人事管理系统 主界面 录入员工姓名、联系电话等信息 录入 实现信息修改 修改 查询员工信息及打印 删除员工信息 删除 调用 图4.1 4.2关键程序 public class EmployeePicture extends JPanel{}//继承图形用户界面的面板容器类 public class Employee implements Serializable{}//继承有序列化功能的接口 public class ModifySituation extends JPanel implements ActionListener{}//继承负责创建监视器的类 try { inOne=new FileInputStream(systemFile); inTwo=new ObjectInputStream(inOne); 基本信息表=(HashMap<String, Employee>)inTwo.readObject(); inOne.close(); inTwo.close(); } catch(Exception ee){}//解决异常 基本信息录入=new InputEmployee (file); 基本信息修改=new ModifySituation(file); 基本信息查询与打印=new Inquest(file); 基本信息删除=new Delete(file); pCenter.add("主界面",label); 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.getAbsolutePath()); 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()==删除||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系统测试运营及结果分析 (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) 退出关闭窗口时 图5.2.6 所有功能皆可实现,程序运营成功! 六、设计体会 系统设计最重要的不是创意,而是功能。 设计系统是对一个人整体思维能力的、挑战自己大脑极限的工作,总是伴着某种痛苦,由于很多你想加入的系统功能和特色,通过自己检查和想象式测试,就会发现存在很多问题,于是不断的改,直到最后才发现,最简朴的设定往往最有效最合理,然后再以此追加更高级的复杂设定。希望进行更多的探讨和交流. 这次系统设计中碰到了一些问题,比如系统运营过程中如何完毕录入、添加照片等操作,通过查阅资料和编程测试最终解决。 通过一个学期的学习,我对Java有了一定的初步了解,可以完毕简朴程序的设计,但对于较为纯熟地运用尚有一定的问题,在查阅资料及征询老师后,完毕了这个系统的设计,但是这个系统还不是很完善,功能还可以继续增长,使之更加完美,例如数据库的知识不是很了解,假如加入大量数据库编程,系统将会更加完善。 如今社会中,计算机技术与公司管理密不可分,通过计算机系统程序的使用,使得公司管理更加方便快捷,因此公司人事管理系统比较重要,很开心能完毕此程序的设计,希望程序能起到应有的作用。 发现问题,提出问题,解决问题,使我从局限性之处出发,寻找新的学习方向。一边实习一边探索,发现理论和实践要充足地结合,是需要扎实的基本功的,这就表白学好基础知识是理论付诸实践的前提。 重要参考文献 [1] 耿祥义.Java2实用教程[M]. 北京:清华大学出版社. 2023. [2] 耿祥义.Java课程设计[M]. 北京:清华大学出版社. 2023. 附录: ManagerWindow.java import 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 基本信息调用; Delete 基本信息删除; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,调用,删除,主界面; HashMap<String,Employee> 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public ManagerWindow(){ 录入=new 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(fileMenu); 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<String,Employee>(); 录入.addActionListener(this); 修改.addActionListener(this); 调用.addActionListener(this); 删除.addActionListener(this); 主界面.addActionListener(this); card=new CardLayout(); pCenter=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(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); setDefaultCloseOperation(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(ActionEvent 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()==删除) card.show(pCenter,"删除界面"); else if(e.getSource()==主界面) card.show(pCenter,"主界面"); } public static void main(String args[]){ new ManagerWindow(); } } Employee.java import java.io.*; public class Employee implements Serializable{ String number,name,phone,department,position,salary,sex; File imagePic; public void setNumber(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.department=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=sex; } public String getSex(){ return sex; } public void setImagePic(File imagePic2) { } public File getImagePic() { return null; }} InputEmployee.java import 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<String,Employee> 基本信息表=null; 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(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) 部门.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("男",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.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.add(联系电话); 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.createVerticalBox(); boxH.add(box1); boxH.add(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(录入); 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.HORIZONTAL_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 ObjectInputStream(inOne); 基本信息=(HashMap<String,Employee>)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.showConfirmDialog(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())
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服