Java人事管理系统.doc_第1页
Java人事管理系统.doc_第2页
Java人事管理系统.doc_第3页
Java人事管理系统.doc_第4页
Java人事管理系统.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉工程大学计算机科学与工程学院 综合设计报告目 录摘 要 IIAbstract . II第一章 概述. . 11.1 前言.11.2 系统功能简介. 2第二章设计简介及设计方案论述 . 32.1 设计简介 . . .32.2 设计方案论述 .3第三章详细设计. 43.1 算法描述 .43.2 系统功能模块 .7第四章设计结果及分析. 84.1 系统实现 . . .84.2 结果分析 .8总 结 .9致 谢 .10参考文献 .11附录 主要程序代码 .12摘 要随着计算机技术的发展,办公自动化进入社会的每一个角落已经势不可挡,而人事管理系统是办公自动化的一个小小体现,它为人事管理大量又繁杂的员工数据工作提供了方便,提高了人事管理工作的效率,为办公自动化的普及奠定了基础。人事管理系统是任何一个现代化企事业单位不可或缺的部分,它的内容对于企事业的管理者来说至关重要。人事管理系统应该能够为管理者提供充足的信息和快捷的查询手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着传统管理所无法比拟的优点,例如,检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等,这些优点能够极大地提高人事管理的效率。因此,用Java开发这样一套管理程序,对单位人事管理工作进行有效电子化管理,化简繁琐的手工操作,提高工作效率都是很有意义的。关键词:人事管理;办公自动化;信息化;JavaAbstractWith the development of the computer, personnel management system is getting more and more necessary for the enterprises management. It can make our work more convenient and it also simplify our daily work. Personnel management system plays a very important role in contemporary society. Whats more, it can provide sufficient information and convenient searching methods for managers. Developing a series of management programs with Java language is meaningful to improve our working efficiency! Keywords: Personnel Management;Java - 18 -第一章 概述1.1 前言1.1.1 背景随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机在实现企业人事档案的管理势在必行。当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。目前很多企业的人事管理还处于人工管理的阶段,效率低下,已经远远落后于当今技术的发展。并且人工管理的弊端也愈来愈严重,由于不可避免的人为因素,造成数据的遗漏、误报,而造成企业重大损失的事例层出不穷。计算机信息化管理有着储存信息量大,速度快等许多优点,提供给我们的处理信息及时快捷,同时也提高了我们工作人员的自身素质。因此我们利用计算机提供给我们信息,做出了这个人事信息管理系统。人事管理系统是现在企业管理工作不可缺少的一部分,是适应现在企业制度的要求,是推动企业劳动人事走向科学化、规范化的必要条件。传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。如今,随着计算机技术的普及人们开始采用一系列的计算机语言编写程序开发人事管理系统,它实现了办公地自动化,能使企业运行的数据更加准确、及时、全面、详实,同时对各种信息进一步地加工,使企业领导层对生产、经营的决策依据更充分,更具有合理性科学性,并创造出更多的发展机会;另外也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台阶,为企业持续、健康、稳定的发展打下基础。本文主要介绍一个简单的基于Java的企业人事管理系统的实现,系统开发的总体任务是实现企业人事信息关系的系统化、规范化和自动化。1.1.2 计算机应用的发展当今社会的计算机已经达到非常普及的程度,随处都可以见到计算机的身影。对于它的发展,我们似乎从未犹豫过。硬件的发展为软件提供了良好的发展平台,而软件的发展也让硬件有用武之地。无论是家庭,还是办公;无论是年幼的孩子,还是年迈的老人,都可以借助于windows平台的便捷操作来碰一碰计算机,体验它的神秘。计算机发展至今,我们也熟悉了在社会各处遇见它们。家庭娱乐,学校的机房,金融场所,以及到处可见的网吧,计算机如水银般无孔不入。我国实施“以信息化带动工业化”发展战略以来,经济建设得到了飞速发展。企业作为国民经济的基本单元,其信息化应用水平是国家信息化建设的关键,也是企业提高核心竞争力,与国际接轨的重要途径。信息网络时代,企业不仅需要依靠降低产品成本和提高响应速度以确保在激烈的竞争环境中站稳脚,更需要不断的地获取知识、提升创新能力和深化协同工作以获取成功。市场环境瞬息万变,竞争激烈。传统粗放式、外延式和规模化理论越来越不适应世界企业的发展趋势。现代企业对内管理,要求高效协作沟通,并且还强调以人为本的精细化管理;对外规模化发展也更加要求与客户、合作伙伴的跨组织高效协同,要求企业和上下游相关单位之间的联动,从而提高整个产业链的效率。1.2 系统功能介绍 本系统主要解决一个小型公司中人员信息管理的问题。设计的程序能进行人事管理,如员工信息记录的增加、查询、删除、员工工资计算以及退出系统等。公司的员工分为一名经理、若干名仓库管理员和销售人员。员工的信息主要包括:员工编号、姓名、月薪等。员工工资的计算方法分为三种:对于销售人员,他的工资由两部分组成,即固定工资和提成。销售人员的固定工资为2000元,提成为个人当月销售额乘以提成比率百分之五;经理的工资也由固定工资和提成构成,经理的固定工资为4000元,提成为当月总营业额乘以提成比率千分之五;仓库管理员的工资由固定工资和奖金构成,其中固定工资为3000元,奖金由其当月表现确定,若表现为Perfect,则奖金为1000,若表现为Good,则奖金为500,若表现为So-so,则奖金为0。第二章 设计简介及设计方案论述2.1 设计简介本系统是一个简单的人事管理系统,实现了员工基本信息的简单管理,应用了图形化用户界面,使得系统操作简单化,而且看上去更加美观。首先在框架上添加一个列表和两个面板,在列表上显示添加的员工信息,在面板pan1上添加需要输入的员工信息,员工的工资通过设置一个按钮将所输入的销售额/营业额取出后计算工资,在已知选项的地方设置下拉组合框,通过选择即可,在面板pan2上添加四个按钮,分别为添加、删除、查询、退出。添加:在面板pan1上输入信息的地方输入信息,点击添加按钮即可;删除:点击删除按钮,弹出输入对话框,输入要删除的员工编号,点击确定,显示列表框内相应员工信息将被删除;查询:点击查询按钮,弹出输入对话框,输入要查询的员工编号,点击确定,即可弹出另一个对话框显示要查询的员工信息;退出:点击退出即可退出此系统。2.2 设计方案论述本设计程序包括三个类:Person类、Personnel类、PersonJFrame类,在Person类里定义员工的基本信息,在Personnel类里实现人员的添加、删除、查询,在PersonJFrame类里实现运行界面的布局及相关操作,添加事件监听器,设置点击按钮后的行为,同时计算工资的方法也在此类中,最后通过主函数main()创建一个PersonJFrame类的对象即可实现。下面给出该问题的类图,如图2-1。PersonJFrame类JButton add,delete,seek,cancel, wageC JList listPersonnel personnel=new Personnel()Personnel类 List pListListIterator itPerson paddPersondeletePersonseekPersonPerson类成员变量: ID,name,sex,position,wage成员方法:构造方法,重载toString()方法图2-1 类图第三章 详细设计3.1 算法描述3.1.1 Person类在Person类中,除了构造方法外,还重载了toString()方法。public String toString()String s=ID+ +name+ +sex+ +position+ +wage;return s;3.1.2 Personnel类在Personnel类中,有三个成员方法:添加:public void addPerson(String id,String name,String sex,String position,String wage)pList.add(new Person(id,name,sex,position,wage);删除:public void deletePerson(String id)it=pList.listIterator();while(it.hasNext()p=(Person)it.next();if(p.ID.equals(id)it.remove();break; 查询:public Person seekPerson(String id)p=null;it=pList.listIterator();while(it.hasNext()p=(Person)it.next();if(p.ID.equals(id)break;elsep=null;return p;3.1.3 PersonJFrame类在PersonJFrame类中,构造方法设置整个界面的布局及界面上的标签、按钮、文本框,为按钮注册单击事件监听器,为列表框注册鼠标事件监听器。单击事件的事件处理程序由ActionListener接口中的actionPerformed()方法实现,在该方法中进行按钮类的处理。当单击一个按钮时,Java创建一个ActionEvent事件类对象e,并且自动执行actionPerformed()方法,在actionPerformed()方法体中,调用e.getSource()方法获得产生单击事件的事件源,即用户单击的是哪一个按钮,识别出按钮后,则分别执行需要的操作。text.setText()方法设置文本行内容,combobox.setSelectedItem()方法返回选中数据项对象,combobox.getSelectedIndex()方法返回选中数据项索引。鼠标事件的事件处理程序由mouseClicked()方法实现,单击列表框里面的内容即可在输入信息处显示信息。public void actionPerformed(ActionEvent e) if(e.getSource()=add) if(!text_ID.getText().equals() String s=(String) combobox_sex.getSelectedItem(); String p=(String) combobox_position.getSelectedItem(); personnel.addPerson(text_ID.getText(),text_name.getText(),s,p,text_wage.getText(); list.setListData(personnel.pList.toArray(); if(e.getSource()=delete) personnel.deletePerson(text_ID.getText(); text_ID.setText(); text_name.setText(); text_quantity.setText(); text_wage.setText(); list.setListData(personnel.pList.toArray(); if(e.getSource()=seek) String id=JOptionPane.showInputDialog(请输入要查询的员工编号:); Person thePerson=personnel.seekPerson(id); if(thePerson=null) JOptionPane.showMessageDialog(this,查无此人!,查询结果,JOptionPane.WARNING_MESSAGE); else String s=; text_ID.setText(thePerson.ID); text_name.setText(theP); combobox_sex.setSelectedItem(thePerson.sex); combobox_position.setSelectedItem(thePerson.position); text_wage.setText(thePerson.wage); s=text_ID.getText()+text_name.getText()+combobox_sex.getSelectedItem()+ +combobox_position.getSelectedItem()+ +text_wage.getText(); JOptionPane.showMessageDialog(this,你要查询的员工信息:n+s,查询结果,JOptionPane.INFORMATION_MESSAGE); if(e.getSource()=wageC) if(combobox_position.getSelectedIndex()=0) N=text_quantity.getText(); i=Double.parseDouble(N); w=4000+i*0.005; text_wage.setText(¥+this.w); if(combobox_position.getSelectedIndex()=1) N=text_quantity.getText(); i=Double.parseDouble(N); w=2000+i*0.05; text_wage.setText(¥+this.w); if(combobox_position.getSelectedIndex()=2) if(combobox_perform.getSelectedIndex()=0) w=3000+1000; if(combobox_perform.getSelectedIndex()=1) w=3000+500; if(combobox_perform.getSelectedIndex()=2) w=3000; text_quantity.setText(); text_wage.setText(¥+this.w); if(e.getSource()=cancel) System.exit(0); 3.2 系统功能模块该系统是一个简单的人事管理系统,实现的功能很简单,包括基本的添加员工信息、删除员工信息、查询员工信息、计算员工工资以及退出系统。本系统分为如下的几大模块:添加员工信息模块,在这个模块需要先在文本框里面输入信息后单击添加,添加以后信息显示在主界面左边的列表框内;删除员工信息模块,点击删除,输入需要删除的员工编号,点击确定即可删除,同时主界面左边的列表框内也将需要删除的员工信息删除,然后刷新;查询员工信息模块,点击查询,输入需要查询的员工编号,点击确定即可,同时弹出对话框显示需要查询的员工信息;计算员工工资模块,在输入销售额/营业额后,点击工资按钮,即可计算出工资,显示在不可编辑的文本框内,需要注意的是先要计算出工资再点击添加,这样才能在列表框中显示员工的工资信息;退出系统模块,点击退出按钮即可退出。第四章 设计结果及分析4.1 系统实现 登录本系统后,管理员输入所有员工信息并添加,对于已辞职或被开除的员工,可以给予删除,一般员工可以通过查询功能来查询自己的信息。4.1 结果分析4.1.1 数据分析通过对程序的测试,分别设置以下数据进行分析,如表4-1。数据编号姓名性别职位销售额/营业额/表现正确数据001张三男经理100000000002李四女销售人员10000000003王五男仓库管理员Perfect错误数据胡婷女经理100000000表4-1 数据分析4.1.2 出现的问题及未解决的问题 一、对于添加功能,输入的编号已经存在,一般情况下是不能再添加,但是在运行过程中即使输入信息相同还是可以添加。 二、对于工资的计算,是采取手工输入销售额/营业额,无法得到当月总营业额,所以不能准确计算经理工资。三、没有考虑用户的登录权限,只有管理员才能进行所有的操作,而普通用户应该只能进行查询和退出系统操作。四、没有连接数据库,使得系统看起来简单,但功能并不那么齐全,只能实现简单的操作。总 结 这次的课程设计,是在学习了Java以后通过阅读课本及在图书馆借阅相关书籍同严景、孟珍三人共同完成的。在开发这个系统的过程中,碰到很多或大或小的问题,我们一起思考,一起努力,最后大部分都解决了,得到了现在的这个简单的人事管理系统。 在编制过程中,我们首先考虑到了界面的友好性,并在界面设计时不采用烦琐的细节,使界面简单、清晰,便于操作。一开始我们是想做个登录界面,实现用户的登录权限管理,但试了几次都没有达到预期的效果,最后不得不放弃。通过这次课程设计,我知道了什么事情都不那么简单,只有努力去做了,你才会有收获,不管收获大小,付出的过程总是有的。有些事情只有亲身感受,你才知道它的价值有多大。同时在遇到困难的时候要沉着冷静,首先要冷静分析问题,对于很难解决的问题要学会请教他人,还可以与别人合作。虽然这次课程设计付出了大量的时间,但是我知道我得到的收获远远不是这些时间可以衡量的,它将给我今后的学习和工作带来更多的收益。通过对此课题的开发,使我对用Java开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如没有设置登录界面,没有考虑到异常等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。致 谢在这次课程设计过程中,首先要感谢老师让我们做这个作业,如果不是老师“逼”着我们去做,我想在平时的学习生活中,我是不会花很多的时间去做这个系统的,谢谢老师让我们体验了这个过程,同时使我们在付出的同时有所收获,不管是谁,总会学到点什么东西。其次要感谢和我一起做程序的严景和孟珍,我们一起思考怎么去做这个系统,一起查阅资料,一起解决程序中的错误与不足,最后做出了这个系统,虽然简单,但我们在做的过程中有所收获就是最大的收获,感谢她们使我在做程序的过程中学会了怎样与人更好的合作。接着要感谢帮我们看程序和改程序的我们班的同学,谢谢他们给予我们一些宝贵的意见,帮我们完善程序。最后我要感谢自己,在做程序的过程中总会遇到困难,但最终还是坚持下来了,希望以后能不断提高自己,争取更大的进步!参考文献 1 叶核亚,陈道蓄Java2程序设计实用教程(第2版)M北京:电子工业出版社,2008年 2 耿祥义,张跃平Java基础教程(第2版) M北京:清华大学出版社,2007年 3 刘艺,吴英Java程序设计大学教程 M北京:科学出版社,2005年附录 主要程序代码Person类package mypackage;import java.util.*;public class Person public String ID,name,sex,position,wage;public Person(String id,String na,String se,String po,String wa)ID=id;name=na;sex=se;position=po;wage=wa;public String toString()String s=ID+ +name+ +sex+ +position+ +wage;return s; Personnel类package mypackage;import java.util.*;public class Personnel public List pList=new ArrayList();private ListIterator it;private Person p;public void addPerson(String id,String name,String sex,String position,String wage)pList.add(new Person(id,name,sex,position,wage);public void deletePerson(String id)it=pList.listIterator();while(it.hasNext()p=(Person)it.next();if(p.ID.equals(id)it.remove();break;public Person seekPerson(String id)p=null;it=pList.listIterator();while(it.hasNext()p=(Person)it.next();if(p.ID.equals(id)break;elsep=null;return p;PersonJFrame类package mypackage;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class PersonJFrame extends JFrame implements ActionListener private JLabel lab1,lab2,lab3,lab4,lab5,lab6,lab7,lab8; private JTextField text_ID,text_name,text_quantity,text_wage; private JButton add,delete,seek,cancel,wageC; private JComboBox combobox_sex,combobox_position,combobox_perform; private JPanel pan1,pan2; private JList list; private Personnel personnel=new Personnel(); private String N; private double i,w=0; public PersonJFrame() super(简单人事管理系统(欢迎进入(*_*) ); this.setSize(500,350); this.setLocation(300,240); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); this.setLayout(new BorderLayout(1,1); this.setResizable(false); list=new JList(); this.add(list,BorderLayout.WEST); list.setPreferredSize(new Dimension(250,350); list.setListData(personnel.pList.toArray(); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); validate(); pan1 = new JPanel(new GridLayout(8,1); lab7=new JLabel(员工基本信息); pan1.add(lab7); lab8=new JLabel(输入基本信息); pan1.add(lab8); lab1=new JLabel(编号:); pan1.add(lab1); text_ID=new JTextField(10); pan1.add(text_ID); lab2=new JLabel(姓名:); pan1.add(lab2); text_name=new JTextField(10); pan1.add(text_name); lab3=new JLabel(性别:); pan1.add(lab3); Object sex=男,女; combobox_sex= new JComboBox(sex); pan1.add(combobox_sex); lab4=new JLabel(职位:); pan1.add(lab4); Object position=经理,销售人员,仓库管理员; combobox_position= new JComboBox(position); pan1.add(combobox_position); lab5=new JLabel(工作表现:); pan1.add(lab5); Object perform=Perfect,Good,So-so; combobox_perform= new JComboBox(perform); pan1.add(combobox_perform); lab6=new JLabel(销售额/营业额:); pan1.add(lab6); text_quantity=new JTextField(10); pan1.add(text_quantity); wageC=new JButton(工资:); pan1.add(wageC); text_wage=new JTextField(10); pan1.add(text_wage); text_wage.setEditable(false); this.add(pan1,BorderLayout.EAST); validate(); pan2=new JPanel(); add=new JButton(添加); delete=new JButton(删除); seek=new JButton(查询); cancel=new JButton(退出); pan2.add(add); pan2.add(delete); pan2.add(seek); pan2.add(cancel); this.add(pan2,BorderLayout.SOUTH); validate(); add.addActionListener(this); delete.addActionListener(this); seek.addActionListener(this); cancel.addActionListener(this); wageC.addActionListener(this); list.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) Person thePerson=(Person)(list.getSelectedValue(); text_ID.setText(thePerson.ID); text_name.setText(theP); combobox_sex.setSelectedItem(thePerson.sex); combobox_position.setSelectedItem(thePerson.position); text_wage.setText(thePerson.wage); ); public void actionPerformed(ActionEvent e) if(e.getSource()=add) if(!text_ID.getText().equals() String s=(String) combobox_sex.getSelectedItem(); String p=(String) combobox_position.getSelectedItem(); personnel.addPerson(text_ID.getText(),text_name.getText(),s,p,text_wage.getText(); list.setListData(personnel.pList.toArray(); if(e.getSource()=delete) personnel.deletePerson(text_ID.getText(); text_ID.setText(); text_name.setText(); text_quantity.setText(); text_wage

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论