完整版JAVA毕业课程设计员工信息管理系统.docx
《完整版JAVA毕业课程设计员工信息管理系统.docx》由会员分享,可在线阅读,更多相关《完整版JAVA毕业课程设计员工信息管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
完整版JAVA毕业课程设计员工信息管理系统
JAVA员工管理系统
实验报告
姓名:
张旭冉
学号:
班级:
信10-1
北方工业大学理学院信息与计算科学系
2013年12月17日
员工管理系统
一、实验目的
通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。
使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。
二、实验内容
A.设计题目:
员工管理系统
设计要求:
(1)完成员工信息的添加、删除、查询、修改功能
(2)使用用户界面操作
(3)使用文件形式完成
设计思路:
首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。
通过文件类型知识的应用,实现对员工信息的管理。
B.概要设计
面板设计:
首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。
功能实现:
在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。
C.详细设计
1、定义员工类:
publicclassEmployeeimplementsjava.io.Serializable
{
Stringnumber,name,discipling,grade,borth,sex;
publicEmployee()
{
}
publicvoidsetNumber(Stringnumber)
{
this.number=number;
}
publicStringgetNumber()
{
returnnumber;
}
publicvoidsetName(Stringname)
{
this.name=name;
}
publicStringgetName()
{
returnname;
}
publicvoidsetDiscipling(Stringdiscipling)
{
this.discipling=discipling;
}
publicStringgetDisciping()
{
returndiscipling;
}
publicvoidsetGrade(Stringgrade)
{
this.grade=grade;
}
publicStringgetGrade()
{
returngrade;
}
publicvoidsetBorth(Stringborth)
{
this.borth=borth;
}
publicStringgetBorth()
{
returnborth;
}
publicvoidsetSex(Stringsex)
{
this.sex=sex;
}
publicStringgetSex()
{
returnsex;
}}
2、主程序:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.Hashtable;
publicclassEmployeeManagerextendsJFrameimplementsActionListener
{
EmployeeSituation基本信息录入=null;
ModifySituation基本信息修改=null;
Inquest基本信息查询=null;
Delete基本信息删除=null;
JMenuBarbar;
JMenufileMenu;
JMenuItem录入,修改,查询,删除;
Containercon=null;
Hashtable基本信息=null;
Filefile=null;
CardLayoutcard=null;
JLabellabel=null;
JPanelpCenter;
publicEmployeeManager()
{
录入=newJMenuItem("录入员工基本信息");
修改=newJMenuItem("修改员工基本信息");
查询=newJMenuItem("查询员工基本信息");
删除=newJMenuItem("删除员工基本信息");
bar=newJMenuBar();
fileMenu=newJMenu("菜单选项");
fileMenu.add(录入);
fileMenu.add(修改);
fileMenu.add(查询);
fileMenu.add(删除);
bar.add(fileMenu);
setJMenuBar(bar);
label=newJLabel("欢迎进入员工信息管理系统",JLabel.CENTER);
label.setFont(newFont("SansSerif",Font.BOLD+Font.ITALIC,25));
label.setForeground(Color.red);
基本信息=newHashtable();
录入.addActionListener(this);
修改.addActionListener(this);
查询.addActionListener(this);
删除.addActionListener(this);
card=newCardLayout();
con=getContentPane();
pCenter=newJPanel();
pCenter.setLayout(card);
pCenter.setBackground(Color.yellow);
file=newFile("基本信息.txt");
if(!
file.exists())
{
try
{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOExceptione)
{
}
}
基本信息录入=newEmployeeSituation(file);
基本信息修改=newModifySituation(file);
基本信息查询=newInquest(this,file);
基本信息删除=newDelete(file);
pCenter.add("欢迎语界面",label);
pCenter.add("录入界面",基本信息录入);
pCenter.add("修改界面",基本信息修改);
pCenter.add("删除界面",基本信息删除);
con.add(pCenter,BorderLayout.CENTER);
con.validate();
addWindowListener(newWindowAdapter()
{
publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}});
setVisible(true);
setBounds(80);
validate();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==录入)
{
card.show(pCenter,"录入界面");
}
elseif(e.getSource()==修改)
{
card.show(pCenter,"修改界面");
}
elseif(e.getSource()==查询)
{
基本信息查询.setVisible(true);
}
elseif(e.getSource()==删除)
{
card.show(pCenter,"删除界面");
}
}
publicstaticvoidmain(Stringargs[])
{
newEmployeeManager();
}}
3、实现员工信息的录入:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassEmployeeSituationextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null;
JTextField员工号,姓名,工资;
Choice部门;
JRadioButton男,女;
Employee员工=null;
ButtonGroupgroup=null;
JButton录入,重置;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
Filefile=null;
publicEmployeeSituation(Filefile)
{
this.file=file;
员工号=newJTextField(10);
姓名=newJTextField(10);
部门=newChoice();
部门.add("请选择");
部门.add("研发部");
部门.add("销售部");
部门.add("人事部");
部门.add("安全部");
工资=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
录入=newJButton("录入");
重置=newJButton("重置");
录入.addActionListener(this);
重置.addActionListener(this);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("员工号:
",JLabel.CENTER));
box1.add(员工号);
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("姓名:
",JLabel.CENTER));
box2.add(姓名);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("性别:
",JLabel.CENTER));
box3.add(男);
box3.add(女);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("部门:
",JLabel.CENTER));
box4.add(部门);
Boxbox6=Box.createHorizontalBox();
box6.add(newJLabel("",JLabel.CENTER));
Boxbox5=Box.createHorizontalBox();
box5.add(newJLabel("工资:
",JLabel.CENTER));
box5.add(工资);
BoxboxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box5);
boxH.add(box6);
boxH.add(box4);
boxH.add(Box.createVerticalGlue());
JPanelpCenter=newJPanel();
pCenter.add(boxH);
pCenter.setBackground(Color.yellow);
setLayout(newBorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanelpSouth=newJPanel();
pSouth.add(录入);
pSouth.add(重置);
pSouth.setBackground(Color.yellow);
add(pSouth,BorderLayout.SOUTH);
validate();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==录入)
{
Stringnumber="";
number=员工号.getText();
if(number.length()>0)
{
try
{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee)
{
}
if(基本信息表.containsKey(number))
{
Stringwarning="该员工基本信息已存在,请到修改页面修改!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}
else
{
Stringm="基本信息将被录入!
";
intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION)
{
Stringname=姓名.getText();
Stringdiscipling=部门.getSelectedItem();
Stringgrade=工资.getText();
Stringsex=null;
if(男.isSelected())
{
sex=男.getText();
}
else
{
sex=女.getText();
}
员工=newEmployee();
员工.setNumber(number);
员工.setName(name);
员工.setDiscipling(discipling);
员工.setGrade(grade);
员工.setSex(sex);
try
{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
基本信息表.put(number,员工);
outTwo.writeObject(基本信息表);
outTwo.close();
outOne.close();
员工号.setText(null);
姓名.setText(null);
工资.setText(null);
}
catch(Exceptionee)
{
System.out.println(ee);
}}}}
else
{
Stringwarning="必须要输入员工号!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}}
if(e.getSource()==重置)
{
员工号.setText(null);
姓名.setText(null);
部门.remove(部门.getSelectedIndex());
工资.setText(null);
}}}
4、实现员工信息的修改:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassModifySituationextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null;
JTextField员工号,姓名,工资;
Choice部门;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton开始修改,录入修改,重置;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
Filefile=null;
publicModifySituation(Filefile)
{
this.file=file;
员工号=newJTextField(10);
姓名=newJTextField(10);
部门=newChoice();
部门.add("请选择");
部门.add("研发部");
部门.add("销售部");
部门.add("人事部");
部门.add("安全部");
工资=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
开始修改=newJButton("开始修改");
录入修改=newJButton("录入修改");
录入修改.setEnabled(false);
重置=newJButton("重置");
员工号.addActionListener(this);
开始修改.addActionListener(this);
录入修改.addActionListener(this);
重置.addActionListener(this);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("输入要修改信息的员工号:
",JLabel.CENTER));
box1.add(员工号);
box1.add(开始修改);
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("姓名:
",JLabel.CENTER));
box2.add(姓名);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("性别:
",JLabel.CENTER));
box3.add(男);
box3.add(女);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("部门:
",JLabel.CENTER));
box4.add(部门);
Boxbox6=Box.createHorizontalBox();
box6.add(newJLabel("",JLabel.CENTER));
Boxbox5=Box.createHorizontalBox();
box5.add(newJLabel("工资:
",JLabel.CENTER));
box5.add(工资);
BoxboxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box5);
boxH.add(box6);
boxH.add(box4);
boxH.add(Box.createVerticalGlue());
JPanelpCenter=newJPanel();
pCenter.add(boxH);
pCenter.setBackground(Color.yellow);
setLayout(newBorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanelpSouth=newJPanel();
pSouth