软件工程课程设计(00002)_第1页
软件工程课程设计(00002)_第2页
软件工程课程设计(00002)_第3页
软件工程课程设计(00002)_第4页
免费预览已结束,剩余48页可下载查看

下载本文档

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

文档简介

1、软件工程课程设计滨江学院软件工程课程设计专业班级:软件工程2 班学生姓名:董衡学号: 20142344054指导教师:吴婷婷学期: 2016-2017第一学期人事管理系统董衡南京信息工程大学滨江学院计算机系,江苏南京 21004摘要:随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。 本系统结合公司实际的人事管理制度, 经过实际的需求分析, 采用功能强大的 Java 技术作为开发工具而开发出来的网络版人事管理系统。整 个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发 ,完 成人事管理的全过程,包括员工档案信息的管理, 员工工资信息的管理。 经

2、过实际使用证明,本文所设计的人事管理系统可以满足公司人事管理方面的需要。关键词: java; 数据库;信息管理;人事管理。Personnel management systemDonghengDepartment of computer science, Binjiang college, Nanjing University of Information Science and Technology,Nanjing 21004, Jiangsu,.Abstract : with the rapid development of computer technology, computer ap

3、plication in enterprise management, the use of computer to realize enterprise personnel management is imperative. This system combined with the company's actual personnel management system, after the actual demand analysis, using powerful Java technology as a development tool developed by the ne

4、twork version of the personnel management system. The whole system from thesimple, friendly interface, flexible, practical and safety requirements, complete the whole process of personnel management, including staff fileinformation management, staff salary information management. After practical use

5、, the personnel management system designed in this paper can meet the needs of personnel management in the company.Key words : Java; database; information management; personnel management .1.课程设计概述1 . 员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。2. 员工各种信息的修改;3 . 对于转出、辞职、辞退、退休员工信息的做相应标记,默认显示在职员工信息;4. 工资、奖金、扣款

6、细节可以自定义,员工可以网上查看个人的工资条5 . 按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间、工资等统计各自的员工信息;对查询、统计的结果打印输出。2.项目的可行性研究与需求分析2.1 项目的可行性研究可行性研究的主要目的不是解决实际问题, 而是确定问题是否值得去解决,为了做到这点,往往需要客观的头脑,分析可能解法的利弊,从而分析原定的系统在现实中是否能够实现,是否值得去实现。项目的技术可行性技术可行性研究的目的是现有的技术能不能实现这个系统, Java 语言

7、包括面向对象、可移植性、安全性、并发机制、支持可视化图形界面等特点,特别适合用来作为开发语言使用;本论文制作的系统为小型系统, MySQL数据库的简单性以及免费等特点特别适合用作本系统数据库;伴随着科技的进步,计算机进入了万千家庭,计算机配置越来越高,普通的机器已经能够承载此系统,综上所述,该系统具有技术可行性 。项目的经济可行性经济可行性研究的目的是制作的系统的经济效益是否超出它的开发成本,对于传统的人工方式管理人事档案、工资信息管理以及考勤管理,不仅工作繁琐而且需要大量的人力,这样做的结果可能会造成记录出错、效率低下以及增加企业的运营成本,从而阻碍企业的发展。而采用本系统的成本远远低于人工

8、管理的成本,部门只需要一个人去管理本部门的人事档案,这样就大大的缩减了企业在这方面的运营成本,所以本系统具有经济可行性 。项目的操作可行性操作可行性研究的主要目的是制作的系统的操作方式是否在用户组织内行得通,简言之就是用户能否操作、管理该系统。本系统层次分明,各种功能一目了然,只要稍微有点电脑基础,操作管理本系统并不难,所以说本系统具有操作可行性。2.2 项目的需求分析业务需求1. 系统操作简单,界面友好;2. 规范、完善的基础信息设置;3. 支持多人操作,要求有权限分配功能;4. 为了方便用户,要求系统支持多条件查询;用户需求1. 员工可以实现的功能:用户注册:主要实现员工的注册, 创建自己

9、的账户密码;用户登录:登陆应用程序查看自己的信息;修改密码:用户修改自己账户的密码。2 、管理员可以实现的功能:员工调动:查看修改员工的调动信息基本信息:统计与查询员工基本信息员工考评:记录员工考评信息人员调薪:管理员工的薪水调整职称评定:评定和记录员工的职称信息报表输出:将需要的信息以报表形式输出打印数据备份:管理员(或DBA)备份数据数据恢复:病毒,黑客等破坏数据库后对数据进行恢复系统管理:主要对用户的密码、 管理权限的设置等。3. 项目设计的基本原理和采用的主要方法与技术本设计程序包括三个类: Person类、 Personnel类、PersonJFrame 类,在 Person 类里定

10、义员工的基本信息,在 Personnel 类里实现人员的添加、删除、查询,在 PersonJFrame 类里实现运行界面的布局及相关操作,添加事件监听器,设置点击按钮后的行为,同时计算工资的方法也在此类中,最后通过主函数 main() 创建一个 PersonJFrame 类的对象即可实现。4. 总体设计人事管理系统个个工奖人人信信资惩息息信息查修询改5.详细设计5.1 算法描述类在 Person 类中,除了构造方法外,还重载了 toString () 方法。public String toString()String s=ID+""+name+""+se

11、x+""+position+""+wage;r eturn s;类在 Personnel 类中,有三个成员方法:添加:public void addPerson(String id,String name,String sex,String position,String wage)pList.add(newPerson(id,name,sex,position,wage);删除:public void deletePerson(String id)it=pList.listIterator();while(it.hasNext()p=(Person)i

12、t.next();it.remove();break;查询:public Person seekPerson(String id)p=null;it=pList.listIterator();while(it.hasNext()p=(Person)it.next();break;elsep=null;return p;类在 PersonJFrame 类中,构造方法设置整个界面的布局及界面上的标签、按钮、文本框,为按钮注册单击事件监听器,为列表框注册鼠标事件监听器。单击事件的事件处理程序由ActionListener接口中的 actionPerformed() 方法实现,在该方法中进行按钮类的处

13、理。当单击一个按钮时, Java 创建一个 ActionEvent 事件类对象 e,并且自动执行 actionPerformed() 方法,在actionPerformed() 方法体中,调用e.getSource()方法获得产生单击事件的事件源,即用户单击的是哪一个按钮,识别出按钮后,则分别执行需要的操作。 text.setText() 方法设置文本行内容, combobox.setSelectedItem() 方法返回选中数据项对象, combobox.getSelectedIndex() 方法返回选中数据项索引。鼠标事件的事件处理程序由 mouseClicked() 方法实现,单击列表框

14、里面的内容即可在输入信息处显示信息。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_nam e.getText(),s,p,text_wage.get

15、Text();if(e.getSource()=delete)personnel.deletePerson(text_ID.getText();text_ID.setText("");text_name.setText("");text_quantity.setText("");text_wage.setText("");if(e.getSource()=seek)Stringid=JOptionPane.showInputDialog("请输入要查询的员工编号 :");PersonthePer

16、son=personnel.seekPerson(id);if(thePerson=null)JOptionPane.showMessageDialog(this," 查无此人!"," 查询结果",JOptionPane.WARNING_MESSAGE); elseString s=""text_ID.setText(thePerson.ID);text_name.setText(theP);combobox_sex.setSelectedItem(thePerson.sex);combobox_position.

17、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," 你要查询的员工信

18、息 :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.getTex

19、t();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(

20、"");text_wage.setText("¥ "+this.w);if(e.getSource()=cancel)System.exit(0);5.2 系统功能模块该系统是一个简单的人事管理系统,实现的功能很简单,包括基本的添加员工信息、删除员工信息、查询员工信息、计算员工工资以及退出系统。本系统分为如下的几大模块:添加员工信息模块,在这个模块需要先在文本框里面输入信息后单击添加,添加以后信息显示在主界面左边的列表框内;删除员工信息模块,点击删除,输入需要删除的员工编号,点击确定即可删除,同时主界面左边的列表框内也将需要删除的员工信息删除,然后刷新;

21、查询员工信息模块,点击查询,输入需要查询的员工编号,点击确定即可,同时弹出对话框显示需要查询的员工信息;计算员工工资模块,在输入销售额 / 营业额后,点击工资按钮,即可计算出工资,显示在不可编辑的文本框内,需要注意的是先要计算出工资再点击添加,这样才能在列表框中显示员工的工资信息;退出系统模块,点击退出按钮即可退出。6.编码实现Person 类package mypackage;public class Personpublic String ID,name,sex,position,wage;public Person(String id,String na,String se,String

22、 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;public class Personnelpublic List pList=new ArrayList();private ListIterator it;private Person p

23、;public void addPerson(String id,String name,String sex,String position,String wage)pList.add(newPerson(id,name,sex,position,wage);public void deletePerson(String id)it=pList.listIterator();while(it.hasNext()p=(Person)it.next();it.remove();break;public Person seekPerson(String id)p=null;it=pList.lis

24、tIterator();while(it.hasNext()p=(Person)it.next();break;elsep=null;return p;PersonJFrame 类package mypackage;public class PersonJFrame extends JFrame implements ActionListenerprivate JLabellab1,lab2,lab3,lab4,lab5,lab6,lab7,lab8;private JTextFieldtext_ID,text_name,text_quantity,text_wage;private JBut

25、tonadd,delete,seek,cancel,wageC;private JComboBoxcombobox_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(5

26、00,350);this.setLocation(300,240);this.setDefaultCloseOperation(EXIT_ON_CLOS E);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.setSelectionMode(ListSelectionMode

27、l.SINGL E_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("

28、姓名 :");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="经

29、理 "," 销售人员"," 仓库管理员 "combobox_position= new JComboBox(position);pan1.add(combobox_position);lab5=new JLabel(" 工作表现 :");pan1.add(lab5);Objectperform="Perfect","Good","So-so"combobox_perform= new JComboBox(perform);pan1.add(combobox_perf

30、orm);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=ne

31、w 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.add

32、ActionListener(this);seek.addActionListener(this);cancel.addActionListener(this);wageC.addActionListener(this);list.addMouseListener(new MouseAdapter()public void mouseClicked(MouseEvente)PersonthePerson=(Person)(list.getSelectedValue();text_ID.setText(thePerson.ID);text_name.setText(theP)

33、;combobox_sex.setSelectedItem(thePerson.sex);combobox_position.setSelectedItem(thePerson.po sition);text_wage.setText(thePerson.wage););public void actionPerformed(ActionEvente)if(e.getSource()=add)if(!text_ID.getText().equals("")String s=(String)combobox_sex.getSelectedItem();String p=(St

34、ring)combobox_position.getSelectedItem();personnel.addPerson(text_ID.getText(),text_nam e.getText(),s,p,text_wage.getText();if(e.getSource()=delete)personnel.deletePerson(text_ID.getText();text_ID.setText("");text_name.setText("");text_quantity.setText("");text_wage.set

35、Text("");if(e.getSource()=seek)Stringid=JOptionPane.showInputDialog("请输入要查询的员工编号 :");PersonthePerson=personnel.seekPerson(id);if(thePerson=null)JOptionPane.showMessageDialog(this," 查无此人!"," 查询结果",JOptionPane.WARNING_MESSAGE);elseString s=""text_ID.se

36、tText(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

温馨提示

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

评论

0/150

提交评论