JA V A员工管理系统
实验报告
姓名:张旭冉
学号:10105010117
班级:信10-1
北方工业大学理学院信息与计算科学系2013年12月17日
员工管理系统
一、实验目的
通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。
二、实验内容
A.设计题目:员工管理系统
设计要求:(1)完成员工信息的添加、删除、查询、修改功能
(2)使用用户界面操作
(3)使用文件形式完成
设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。
B.概要设计
面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。
功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。
C.详细设计
1、定义员工类:
public class Employee implements java.io.Serializable
{
String number,name,discipling,grade,borth,sex;
public Employee()
{
}
public void setNumber(String number)
{
this.number=number;
}
public String getNumber()
{
return number;
}
public void setName(String name)
{
https://www.sodocs.net/doc/a011141205.html,=name;
}
public String getName()
{
return name;
}
public void setDiscipling(String discipling)
{
this.discipling=discipling;
}
public String getDisciping()
{
return discipling;
}
public void setGrade(String grade)
{
this.grade=grade;
}
public String getGrade()
{
return grade;
}
public void setBorth(String borth)
{
this.borth=borth;
}
public String getBorth()
{
return borth;
}
public void setSex(String sex)
{
this.sex=sex;
}
public String getSex()
{
return sex;
}}
2、主程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.Hashtable;
public class EmployeeManager extends JFrame implements ActionListener {
EmployeeSituation 基本信息录入=null;
ModifySituation 基本信息修改=null;
Inquest 基本信息查询=null;
Delete 基本信息删除=null;
JMenuBar bar;
JMenu fileMenu;
JMenuItem 录入,修改,查询,删除;
Container con=null;
Hashtable 基本信息=null;
File file=null;
CardLayout card=null;
JLabel label=null;
JPanel pCenter;
public EmployeeManager()
{
录入=new JMenuItem("录入员工基本信息");
修改=new JMenuItem("修改员工基本信息");
查询=new JMenuItem("查询员工基本信息");
删除=new JMenuItem("删除员工基本信息");
bar=new JMenuBar();
fileMenu=new JMenu("菜单选项");
fileMenu.add(录入);
fileMenu.add(修改);
fileMenu.add(查询);
fileMenu.add(删除);
bar.add(fileMenu);
setJMenuBar(bar);
label=new JLabel("欢迎进入员工信息管理系统",JLabel.CENTER);
label.setFont(new Font("SansSerif",Font.BOLD+Font.ITALIC,25));
label.setForeground(Color.red);
基本信息=new Hashtable();
录入.addActionListener(this);
修改.addActionListener(this);
查询.addActionListener(this);
删除.addActionListener(this);
card=new CardLayout();
con=getContentPane();
pCenter=new JPanel();
pCenter.setLayout(card);
pCenter.setBackground(Color.yellow);
file=new File("基本信息.txt");
if(!file.exists())
{
try
{
FileOutputStream out=new FileOutputStream(file);
ObjectOutputStream objectOut=new ObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOException e)
{
}
}
基本信息录入=new EmployeeSituation(file);
基本信息修改=new ModifySituation(file);
基本信息查询=new Inquest(this,file);
基本信息删除=new Delete(file);
pCenter.add("欢迎语界面",label);
pCenter.add("录入界面",基本信息录入);
pCenter.add("修改界面",基本信息修改);
pCenter.add("删除界面",基本信息删除);
con.add(pCenter,BorderLayout.CENTER);
con.validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}});
setVisible(true);
setBounds(100,50,420,380);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==录入)
{
card.show(pCenter,"录入界面");
}
else if(e.getSource()==修改)
{
card.show(pCenter,"修改界面");
}
else if(e.getSource()==查询)
{
基本信息查询.setVisible(true);
}
else if(e.getSource()==删除)
{
card.show(pCenter,"删除界面");
}
}
public static void main(String args[])
{
new EmployeeManager();
}}
3、实现员工信息的录入:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class EmployeeSituation extends JPanel implements ActionListener {
Hashtable 基本信息表=null;
JTextField 员工号,姓名,工资;
Choice 部门;
JRadioButton 男,女;
Employee 员工=null;
ButtonGroup group=null;
JButton 录入,重置;
FileInputStream inOne=null;
ObjectInputStream inTwo=null;
FileOutputStream outOne=null;
ObjectOutputStream outTwo=null;
File file=null;
public EmployeeSituation(File file)
{
this.file=file;
员工号=new JTextField(10);
姓名=new JTextField(10);