已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉工程大学邮电信息与工程学院 Java 课程综合设计报告 - I - 目 录 摘 要 II Abstract . II 第一章 概述 1 1.1 前言.1 1.2 系统功能简介 2 第二章 设计简介及设计方案论述 3 2.1 设计简介 . . .3 2.2 设计方案论述 .3 第三章 详细设计 4 3.1 算法描述 .4 3.2 系统功能模块 .7 第四章 设计结果及分析 8 4.1 系统实现 . . .8 4.2 结果分析 .8 总 结 .9 致 谢 .10 参考文献 .11 附录 主要程序代码 .12 摘 要 随着计算机技术的发展,办公自动化进入社会的每一个角落已经势不可挡,而人事 管理系统是办公自动化的一个小小体现,它为人事管理大量又繁杂的员工数据工作提 供了方便,提高了人事管理工作的效率,为办公自动化的普及奠定了基础。人事管理 系统是任何一个现代化企事业单位不可或缺的部分,它的内容对于企事业的管理者来 说至关重要。人事管理系统应该能够为管理者提供充足的信息和快捷的查询手段。随 着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进 入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计 算机对人事信息进行管理,具有着传统管理所无法比拟的优点,例如,检索迅速、查找 方便、可靠性高、存储量大、寿命长、成本低等,这些优点能够极大地提高人事管理 的效率。因此,用 Java 开发这样一套管理程序,对单位人事管理工作进行有效电子化 管理,化简繁琐的手工操作,提高工作效率都是很有意义的。 关键词:人事管理;办公自动化;信息化;Java Abstract With 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 武汉工程大学邮电信息与工程学院 Java 课程综合设计报告 - 1 - 第一章 概述 1.1 前言 1.1.1 背景 随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机在实 现企业人事档案的管理势在必行。当今社会正快速向信息化社会前进,信息自动化的 作用也越来越大。从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。目 前很多企业的人事管理还处于人工管理的阶段,效率低下,已经远远落后于当今技术 的发展。并且人工管理的弊端也愈来愈严重,由于不可避免的人为因素,造成数据的 遗漏、误报,而造成企业重大损失的事例层出不穷。计算机信息化管理有着储存信息 量大,速度快等许多优点,提供给我们的处理信息及时快捷,同时也提高了我们工作 人员的自身素质。因此我们利用计算机提供给我们信息,做出了这个人事信息管理系 统。人事管理系统是现在企业管理工作不可缺少的一部分,是适应现在企业制度的要 求,是推动企业劳动人事走向科学化、规范化的必要条件。 传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满 足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无 纸化逐步得到了人们的重视。如今,随着计算机技术的普及人们开始采用一系列的计 算机语言编写程序开发人事管理系统,它实现了办公地自动化,能使企业运行的数据 更加准确、及时、全面、详实,同时对各种信息进一步地加工,使企业领导层对生产、 经营的决策依据更充分,更具有合理性科学性,并创造出更多的发展机会;另外也进 一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台 阶,为企业持续、健康、稳定的发展打下基础。本文主要介绍一个简单的基于 Java 的 企业人事管理系统的实现,系统开发的总体任务是实现企业人事信息关系的系统化、 规范化和自动化。 1.1.2 计算机应用的发展 当今社会的计算机已经达到非常普及的程度,随处都可以见到计算机的身影。对 于它的发展,我们似乎从未犹豫过。硬件的发展为软件提供了良好的发展平台,而软 件的发展也让硬件有用武之地。无论是家庭,还是办公;无论是年幼的孩子,还是年 迈的老人,都可以借助于 windows 平台的便捷操作来碰一碰计算机,体验它的神秘。 计算机发展至今,我们也熟悉了在社会各处遇见它们。家庭娱乐,学校的机房, 金融场所,以及到处可见的网吧,计算机如水银般无孔不入。 我国实施“以信息化带动工业化”发展战略以来,经济建设得到了飞速发展。企 业作为国民经济的基本单元,其信息化应用水平是国家信息化建设的关键,也是企业 提高核心竞争力,与国际接轨的重要途径。 信息网络时代,企业不仅需要依靠降低产品成本和提高响应速度以确保在激烈的 竞争环境中站稳脚,更需要不断的地获取知识、提升创新能力和深化协同工作以获取 成功。 市场环境瞬息万变,竞争激烈。传统粗放式、外延式和规模化理论越来越不适应 世界企业的发展趋势。现代企业对内管理,要求高效协作沟通,并且还强调以人为本 的精细化管理;对外规模化发展也更加要求与客户、合作伙伴的跨组织高效协同,要 求企业和上下游相关单位之间的联动,从而提高整个产业链的效率。 1.2 系统功能介绍 本系统主要解决一个小型公司中人员信息管理的问题。设计的程序能进行人事管 理,如员工信息记录的增加、查询、删除、员工工资计算以及退出系统等。公司的员 工分为一名经理、若干名仓库管理员和销售人员。员工的信息主要包括:员工编号、 姓名、月薪等。员工工资的计算方法分为三种:对于销售人员,他的工资由两部分组 成,即固定工资和提成。销售人员的固定工资为 2000 元,提成为个人当月销售额乘以 提成比率百分之五;经理的工资也由固定工资和提成构成,经理的固定工资为 4000 元, 提成为当月总营业额乘以提成比率千分之五;仓库管理员的工资由固定工资和奖金构 成,其中固定工资为 3000 元,奖金由其当月表现确定,若表现为 Perfect,则奖金为 1000,若表现为 Good,则奖金为 500,若表现为 So-so,则奖金为 0。 武汉工程大学计算机科学与工程学院 综合设计报告 - 3 - 第二章 设计简介及设计方案论述 2.1 设计简介 本系统是一个简单的人事管理系统,实现了员工基本信息的简单管理,应用了图 形化用户界面,使得系统操作简单化,而且看上去更加美观。首先在框架上添加一个 列表和两个面板,在列表上显示添加的员工信息,在面板 pan1 上添加需要输入的员工 信息,员工的工资通过设置一个按钮将所输入的销售额/营业额取出后计算工资,在已 知选项的地方设置下拉组合框,通过选择即可,在面板 pan2 上添加四个按钮,分别为 添加、删除、查询、退出。添加:在面板 pan1 上输入信息的地方输入信息,点击添加 按钮即可;删除:点击删除按钮,弹出输入对话框,输入要删除的员工编号,点击确 定,显示列表框内相应员工信息将被删除;查询:点击查询按钮,弹出输入对话框, 输入要查询的员工编号,点击确定,即可弹出另一个对话框显示要查询的员工信息; 退出:点击退出即可退出此系统。 2.2 设计方案论述 本设计程序包括三个类:Person 类、Personnel 类、PersonJFrame 类,在 Person 类 里定义员工的基本信息,在 Personnel 类里实现人员的添加、删除、查询,在 PersonJFrame 类里实现运行界面的布局及相关操作,添加事件监听器,设置点击按钮 后的行为,同时计算工资的方法也在此类中,最后通过主函数 main()创建一个 PersonJFrame 类的对象即可实现。 下面给出该问题的类图,如图 2-1。 Person 类 成员变量: ID,name,sex ,position,wa ge 成员方法: 构造方法,重 载 toString()方 法 Personnel 类 List pList ListIterator it Person p addPerson deletePerson seekPerson PersonJFrame 类 JButton add,delete,seek, cancel, wageC JList list Personnel personnel =new Personnel() 图 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; 武汉工程大学计算机科学与工程学院 综合设计报告 - 5 - 查询: public Person seekPerson(String id) p=null; it=pList.listIterator(); while(it.hasNext() p=(Person)it.next(); if(p.ID.equals(id) break; else p=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); 武汉工程大学计算机科学与工程学院 综合设计报告 - 7 - 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 张三 男 经理 100000000 002 李四 女 销售人员 10000000 正确数据 003 王五 男 仓库管理员 Perfect 错误数据 胡婷 女 经理 100000000 表 4-1 数据分析 4.1.2 出现的问题及未解决的问题 一、对于添加功能,输入的编号已经存在,一般情况下是不能再添加,但是在运 行过程中即使输入信息相同还是可以添加。 武汉工程大学计算机科学与工程学院 综合设计报告 - 9 - 二、对于工资的计算,是采取手工输入销售额/营业额,无法得到当月总营业额, 所以不能准确计算经理工资。 三、没有考虑用户的登录权限,只有管理员才能进行所有的操作,而普通用户应 该只能进行查询和退出系统操作。 四、没有连接数据库,使得系统看起来简单,但功能并不那么齐全,只能实现简 单的操作。 总 结 这次的课程设计,是在学习了 Java 以后通过阅读课本及在图书馆借阅相关书籍同 严景、孟珍三人共同完成的。在开发这个系统的过程中,碰到很多或大或小的问题, 我们一起思考,一起努力,最后大部分都解决了,得到了现在的这个简单的人事管理 系统。 在编制过程中,我们首先考虑到了界面的友好性,并在界面设计时不采用烦琐的 细节,使界面简单、清晰,便于操作。一开始我们是想做个登录界面,实现用户的登 录权限管理,但试了几次都没有达到预期的效果,最后不得不放弃。 通过这次课程设计,我知道了什么事情都不那么简单,只有努力去做了,你才会 有收获,不管收获大小,付出的过程总是有的。有些事情只有亲身感受,你才知道它 的价值有多大。同时在遇到困难的时候要沉着冷静,首先要冷静分析问题,对于很难 解决的问题要学会请教他人,还可以与别人合作。 虽然这次课程设计付出了大量的时间,但是我知道我得到的收获远远不是这些时 间可以衡量的,它将给我今后的学习和工作带来更多的收益。通过对此课题的开发, 使我对用 Java 开发系统有了一个比较清楚的认识,体会到理论和实践的重要性。由于 自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地 方,比如没有设置登录界面,没有考虑到异常等多方面问题,这些都有待进一步完善 和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。 致 谢 在这次课程设计过程中,首先要感谢老师让我们做这个作业,如果不是老师“逼” 着我们去做,我想在平时的学习生活中,我是不会花很多的时间去做这个系统的,谢 谢老师让我们体验了这个过程,同时使我们在付出的同时有所收获,不管是谁,总会 学到点什么东西。 其次要感谢和我一起做程序的严景和孟珍,我们一起思考怎么去做这个系统,一 起查阅资料,一起解决程序中的错误与不足,最后做出了这个系统,虽然简单,但我 们在做的过程中有所收获就是最大的收获,感谢她们使我在做程序的过程中学会了怎 样与人更好的合作。 接着要感谢帮我们看程序和改程序的我们班的同学,谢谢他们给予我们一些宝贵 的意见,帮我们完善程序。 最后我要感谢自己,在做程序的过程中总会遇到困难,但最终还是坚持下来了, 希望以后能不断提高自己,争取更大的进步! 武汉工程大学计算机科学与工程学院 综合设计报告 - 11 - 参考文献 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) 武汉工程大学计算机科学与工程学院 综合设计报告 - 13 - 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; else p=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“; 武汉工程大学计算机科学与工程学院 综合设计报告 - 15 - 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.set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分期付款服务合同的签订合同签订依据
- 购销旅游帐篷协议书
- 红砖购买合同范本
- 土地整治合同
- 赞助商与主办方合作协议
- 权威保姆服务合同案例
- 污水泵购销合同
- 出租车司机的责任心
- 中介方违反合同的赔偿责任
- 工程装饰装修合同
- 中考复习-初中英语单词表大全(2182个带音标)
- 腹主动脉瘤护理查房课件(PPT 55页)
- 农业比较效益低的成因及应对
- 生产部绩效手册ppt课件
- 蓝色唯美创意泼水节主题宣传PPT模板课件
- 小学一年级上册数学20以内进位加法单元测试卷1
- 直观教具在小学英语词汇教学中的运用初探
- 《制冷设备原理与维修》期末试卷试题及参考答案
- 初中生物教学仪器配备明细目录
- 供水管道工程现场管理办法
- 酒店委托管理模式下的财务治理
评论
0/150
提交评论