软件工程课程设计_第1页
软件工程课程设计_第2页
软件工程课程设计_第3页
软件工程课程设计_第4页
软件工程课程设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、滨江学院?软件工程课程设计? 专业班级:软件工程 2班 学生姓名:董 衡学 号:20212344054指导教师: 吴婷婷 学 期:2021-2021 第一学期目录1.课程设计概述22.工程的可行性研究与需求分析22.1工程的可行性研究2工程的技术可行性2工程的经济可行性3工程的操作可行性32.2工程的需求分析32.2.1 业务需求32.2.2 用户需求34.总体设计55.详细设计65.1 算法描述65.1.1 Person类65.1.2 Personnel类65.1.3 PersonJFrame类75.2 系统功能模块96.编码实现97.测试用例设计、测试与运行记录148.课程设计完成结果分析

2、与个人小结168.1结果分析168.2个人小结16参考文献17人事管理系统董衡南京信息工程大学滨江学院计算机系,江苏 南京 21004摘要:随着计算机技术的飞速开展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。本系统结合公司实际的人事管理制度,经过实际的需求分析,采用功能强大的Java技术作为开发工具而开发出来的网络版人事管理系统。整个系统从符合操作简便、界面友好、灵活、实用、平安的要求出发,完成人事管理的全过程,包括员工档案信息的管理,员工工资信息的管理。经过实际使用证明,本文所设计的人事管理系统可以满足公司人事管理方面的需要。关键词:java;数据库;信息管理;人事管

3、理。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 application in enterprise management, the use of computer to

4、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 network version of the personnel management system. The whole

5、 system from the simple, friendly interface, flexible, practical and safety requirements, complete the whole process of personnel management, including staff file information management, staff salary information management. After practical use, the personnel management system designed in this paper

6、can meet the needs of personnel management in the company.Key words: Java; database; information management; personnel management.1.课程设计概述1 .员工各种信息的输入,包括员工的根本信息、学历信息、婚姻状况信息、职称等。2. 员工各种信息的修改;3 .对于转出、辞职、辞退、退休员工信息的做相应标记,默认显示在职员工信息;4.工资、奖金、扣款细节可以自定义,员工可以网上查看个人的工资条5 .按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息

7、的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间、工资等统计各自的员工信息;对查询、统计的结果打印输出。2.工程的可行性研究与需求分析2.1工程的可行性研究 可行性研究的主要目的不是解决实际问题,而是确定问题是否值得去解决,为了做到这点,往往需要客观的头脑,分析可能解法的利弊,从而分析原定的系统在现实中是否能够实现,是否值得去实现。工程的技术可行性 技术可行性研究的目的是现有的技术能不能实现这个系统,Java语言包括面向对象、可移植性、平安性、并发机制、支持可视化图形界面等特点,特别适合用来作为开发语言使用;本论文制作的系统为小型系统,My

8、SQL数据库的简单性以及免费等特点特别适合用作本系统数据库;伴随着科技的进步,计算机进入了万千家庭,计算机配置越来越高,普通的机器已经能够承载此系统,综上所述,该系统具有技术可行性。工程的经济可行性 经济可行性研究的目的是制作的系统的经济效益是否超出它的开发本钱,对于传统的人工方式管理人事档案、工资信息管理以及考勤管理,不仅工作繁琐而且需要大量的人力,这样做的结果可能会造成记录出错、效率低下以及增加企业的运营本钱,从而阻碍企业的开展。而采用本系统的本钱远远低于人工管理的本钱,部门只需要一个人去管理本部门的人事档案,这样就大大的缩减了企业在这方面的运营本钱,所以本系统具有经济可行性。工程的操作可

9、行性 操作可行性研究的主要目的是制作的系统的操作方式是否在用户组织内行得通,简言之就是用户能否操作、管理该系统。本系统层次清楚,各种功能一目了然,只要稍微有点电脑根底,操作管理本系统并不难,所以说本系统具有操作可行性。2.2工程的需求分析2.2.1 业务需求 1.系统操作简单,界面友好; 2.标准、完善的根底信息设置; 3.支持多人操作,要求有权限分配功能; 4.为了方便用户,要求系统支持多条件查询;2.2.2 用户需求 1.员工可以实现的功能: 用户注册:主要实现员工的注册,创立自己的账户密码; 用户登录:登陆应用程序查看自己的信息; 修改密码:用户修改自己账户的密码。 2、管理员可以实现的

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

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

12、ge;return s;5.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

13、)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;5.1.3 PersonJFrame类在PersonJFrame类中,构造方法设置整个界面的布局及界面上的标签、按钮、文本框,为按钮注册单击事件监听器,为列表框注册鼠标事件监听器。单击事件的事件处理程序由ActionListener接口中的actionPer

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

15、方法实现,单击列表框里面的内容即可在输入信息处显示信息。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

16、,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.pLis

17、t.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.se

18、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()+" "

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

20、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=3

21、000+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); 5.2 系统功能模块该系统是一个简单的人事管理系统,实现的功能很简单,包括根本的添加员工信息、删除员工信息、查询员工信息、计算员工工资

22、以及退出系统。本系统分为如下的几大模块:添加员工信息模块,在这个模块需要先在文本框里面输入信息后单击添加,添加以后信息显示在主界面左边的列表框内;删除员工信息模块,点击删除,输入需要删除的员工编号,点击确定即可删除,同时主界面左边的列表框内也将需要删除的员工信息删除,然后刷新;查询员工信息模块,点击查询,输入需要查询的员工编号,点击确定即可,同时弹出对话框显示需要查询的员工信息;计算员工工资模块,在输入销售额/营业额后,点击工资按钮,即可计算出工资,显示在不可编辑的文本框内,需要注意的是先要计算出工资再点击添加,这样才能在列表框中显示员工的工资信息;退出系统模块,点击退出按钮即可退出。6.编码

23、实现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+" "+po

24、sition+" "+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,pos

25、ition,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;PersonJ

26、Frame类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,s

27、eek,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)

28、; 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

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

30、); 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("职位:"

31、;); 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= n

32、ew 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); t

33、his.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.SOU

34、TH); 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()

35、; 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(

36、"") 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_I

37、D.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=pers

38、onnel.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.set

39、SelectedItem(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,"查询结果",JOpt

温馨提示

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

评论

0/150

提交评论