员工管理系统Java课程设计Word文档下载推荐.docx
《员工管理系统Java课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《员工管理系统Java课程设计Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。
调试程序周四1~4节:
完成论文,答辩
成绩:
指导教师(签字):
年月日
专业负责人(签字):
年月日
主管院长(签字):
年月日
摘要
Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。
随着目前公司规模的渐渐扩大,员工管理将成为意见不得不总是的问题。
有些公司人员流动较大,而且人数动辄上百人,,若采用传统的方式进行管理,不仅易出错更是一件令人痛疼的事。
随着计算机的诞生,在此领域产生众多的信息管理系统来管理信息,不仅信息处理方便,而且简单强大。
本系统正事其中的一项,针对员工信息管理,方便公司对员工的信息进行处理,极大减少了人事管理的工作量。
另一方面,本系统中所涉及到图形用户界面设计是我们学习程序设计这门课的难点兼重点,通过审计本系统不仅巩固了我们的基础,以及程序设计能力,还锻炼了我们对程序设计的流程及大体上的把握不仅如此,在设计过程中,我们的调试能力也得到增强。
使我们对设计“大程序”有了经验。
目前,无论是机关、事业单位、还是企业单位,员工管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,而员工管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助.在现代化的企业管理中,员工管理系统有着十分重要的作用!
关键词:
文件和流界面设计GUI异常处理Hashtable类
一、设计目的
随着现代社会的快速发展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作、学习、生活的各个方面。
为了适应时代的发展,本次课程设计的主要任务是设计一个学生员工系统并完成一些基本操作。
其目的是:
(1)提高员工信息管理的运作效率,通过对雇员全面的信息采集和处理;
(2)运用已学的java知识编一些简单使用的程序,使我们初步具备综合运用所学Java语言基础知识,面向对象程序设计的基本思想、方法与技术;
(3)由计算机来代替人工执行一系列诸如增加新员工、删除、修改、查询、显示等操作。
这样就使管理人员轻松快捷的完成员工信息的管理工作。
二、设计问题
2.1课设问题:
员工管理系统
要求完成:
(1)完成员工的添加、删除、查询、修改功能
(2)使用界面操作
(3)使用文件完成
2.2设计思路:
首先设计面板,然后往面板里添加组件,点击各个组件来实现要求的对员工信息的添加、删除、查询、修改功能。
三、概要设计
3.1程序功能模块设计的实现
本段代码中主要的类有EmployeeManager和ActionEvent,设置了监听接口由ActionEvent类来实现,并且用if语句来为变量服务。
后面设置了一个异常处理,使用try和catch来捕获异常。
使用GUI技术实现员工的图形界面。
3.2系统总体结构
系统总体结构
3.3员工信息面板功能的实现
首先构造两个面板(JPanel),分别为界面以及显示,并将其加入到容器中.
主界面
显示界面
3.4员工界面功能模块设计的实现
录入:
提示员工信息是否被录入,选择是(Y),则员工信息录入到文件中
查询:
在主界面中输入员工号,点击查找,若员工信息不存在则显示如图
若文本文件中存在所要查找的员工信息(例如工号0801),则在主界面中显示该员工信息(员工号、姓名和性别)
删除:
在主界面中输入员工号,点击删除按钮,弹出对话框,选择是(Y)程序将删除词员工的所有信息。
四、详细设计
4.1定义程序变量
自定义employee类,其中定义number,name,sex三个变量,分别包含setNumber、getNumber、setName、getName、setSex、getSex方法。
classemployeeimplementsjava.io.Serializable{
Stringnumber,name,sex;
publicemployee(){};
publicvoidsetNumber(Stringnumber){this.number=number;
}
publicStringgetNumber(){returnnumber;
publicvoidsetName(Stringname){this.name=name;
publicStringgetName(){returnname;
publicvoidsetSex(Stringsex){this.sex=sex;
PublicStringgetSex(){returnsex;
}
4.2程序面板设计
定义EmployeeManager类继承JFrame,使用JLabel、JTextField、JRadioBUtton、ButtonGroup、JButton等类构造各组件,使用。
使用Hashtable类创建散列表对象“员工表”存放employee对象,每个employee对象用该对象的学号作为关键字。
使用exists()方法判断文本文件是否存在。
若存在则进行数据的写入操作。
使用addActionListener()方法对JButton进行注册监听。
GridLayout布局管理器对面板进行设计如下所示。
publicclassEmployeeManagerextendsJFrame{
JLabellb=newJLabel("
录入请先输入记录,查询、删除请先输入工号,修改是对查询"
+"
内容改后的保存!
"
);
JTextField工号,姓名;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton录入,查询,删除,修改,显示;
JPanela,b,c,d,f;
employee员工=null;
Hashtable员工表=null;
Filefile=null;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
publicemployee工人;
publicEmployeeManager(){
super("
沈阳理工员工基本信息管理系统"
工号=newJTextField(10);
姓名=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("
男"
true);
女=newJRadioButton("
女"
false);
group.add(男);
group.add(女);
录入=newJButton("
录入"
查询=newJButton("
查询"
删除=newJButton("
删除"
修改=newJButton("
修改"
显示=newJButton("
显示"
录入.addActionListener(newLRAct());
查询.addActionListener(newCXAct());
修改.addActionListener(newXGAct());
删除.addActionListener(newSCAct());
显示.addActionListener(newXSAct());
修改.setEnabled(false);
a=newJPanel();
a.add(newJLabel("
工号:
JLabel.CENTER));
a.add(工号);
b=newJPanel();
b.add(newJLabel("
姓名:
b.add(姓名);
c=newJPanel();
c.add(newJLabel("
性别:
c.add(男);
c.add(女);
d=newJPanel();
d.setLayout(newGridLayout(6,1));
d.add(a);
d.add(b);
d.add(c);
f=newJPanel();
f.add(录入);
f.add(查询);
f.add(修改);
f.add(删除);
f.add(显示);
file=newFile("
员工信息.txt"
Hashtable员工表=newHashtable();
if(!
file.exists()){
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(员工表);
objectOut.close();
out.close();
catch(IOExceptione){}
Containercon=getContentPane();
con.setLayout(newBorderLayout());
con.add(lb,BorderLayout.NORTH);
con.add(d,BorderLayout.CENTER);
con.add(f,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(200,200,600,300);
setVisible(true);
4.3录入员工信息
以员工的员工号作为关键字,调用ObjectInputStream(newFileInputStream())中的readObject()方法读取文本文件中的数据。
使用员工表.containsKey(number)对关键字进行检测,如果数据中包含该员工号,则弹出对话框提示该员工信息已存在,请到修改页面进行信息的修改,如果数据中不包含该关键字,则弹出确认对话框,点击确定,程序调用put()方法写入信息到散列表中。
调用writeObject()方法将散列表写入文本文件中。
如果程序在获取员工号时为空时,提示用户输入员工号。
用try,catch对异常进行处理。
以下为具体代码:
classLRActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
//功能尚未实现
Stringnumber="
;
number=工号.getText();
if(number.length()>
0){
inTwo=newObjectInputStream(newFileInputStream(file));
员工表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
catch(Exceptionee){System.out.println("
创建表出现问题!
if(员工表.containsKey(number)){
Stringwarning="
该员工信息已存在,请到修改页面修改!
JOptionPane.showMessageDialog(null,warning,"
警告"
JOptionPane.WARNING_MESSAGE);
else{
Stringm="
确定该员工被录入?
intok=JOptionPane.showConfirmDialog(null,m,"
确认"
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
Stringname=姓名.getText();
Stringsex=null;
if(男.isSelected()){sex=男.getText();
else{sex=女.getText();
员工=newemployee();
员工.setNumber(number);
员工.setName(name);
员工.setSex(sex);
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
员工表.put(number,员工);
outTwo.writeObject(员工表);
outTwo.close();
outOne.close();
输出出现问题!
工号.setText(null);
姓名.setText(null);
必须输入工号!
JOptionPane.showMessageDialog(null,warning,
"
JOptionPane.WARNING_MESSAGE);
4.4查询员工信息
构造CXAct类实现ActionListener接口,对事件监听。
在该类中以员工的员工号作为关键字,调用ObjectInputStream(newFileInputStream())中的readObject()方法读取文本文件中的数据。
使用员工表.containsKey(number)
对关键字进行检测,如果文本框中的员工号和文本文件中的数据相同,程序调用setText()方法把散列表中的员工信息显示在文本框中,如果文本框中的员工号和文本文件中的数据不相同,则程序调用JOptionPane.showMessageDialog()方法提示该员工信息不存在。
如果程序获取到员工号文本框中的内容为空,则提示用户输入员工号。
以下程序实现为代码:
classCXActimplementsActionListener{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
员工表有问题!
修改.setEnabled(true);
employeestu=(employee)员工表.get(number);
姓名.setText(stu.getName());
if(stu.getSex().equals("
)){男.setSelected(true);
else{女.setSelected(true);
该员工不存在!
classXGActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber=工号.getText();
employee员工=newemployee();
catch(Exceptionee){
System.out.println("
录入修改出现异常!
classSCActimplementsActionListener{
catch(Exceptionee){}
employeestu=(employee)员工表.get(number);
确定要删除该员工的记录吗?
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
员工表.remove(number);
catch(Exceptionee){System.out.println(ee);
elseif(ok==JOptionPane.NO_OPTION){
该号不存在!
4.5修改员工信息
和添加员工信息方法类似,定义number、name、sex三个局部变量,并使用getText()方法初始化变量。
调用isSelected()方法设置单选按钮。
创建employee类型的“员工”局部变量,调用Hastable类中的put()方法将要修改的员工信息写入到散列表“员工表”中。
调用ObjectInputStream(newFileInputStream())中的writeObject()把散列表中的数据信息写入到文本文件中。
使用try{}catch来捕获异常,并进行处理。
以下是程序实现修改功能的代码:
classXGActimplementsActionListener{
Stringname=姓名.getTex