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、定义员工类:
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) {
this.name=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(\"欢迎进入员工信息管理系统\ label.setFont(new Font(\"SansSerif\ 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(\"欢迎语界面\
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);
部门=new Choice(); 部门.add(\"请选择\"); 部门.add(\"研发部\"); 部门.add(\"销售部\"); 部门.add(\"人事部\"); 部门.add(\"安全部\");
工资=new JTextField(10); group=new ButtonGroup();
男=new JRadioButton(\"男\女=new JRadioButton(\"女\group.add(男); group.add(女);
录入=new JButton(\"录入\"); 重置=new JButton(\"重置\");
录入.addActionListener(this); 重置.addActionListener(this);
Box box1=Box.createHorizontalBox(); box1.add(new JLabel(\"员工号:\box1.add(员工号);
Box box2=Box.createHorizontalBox(); box2.add(new JLabel(\"姓名:\box2.add(姓名);
Box box3=Box.createHorizontalBox(); box3.add(new JLabel(\"性别:\box3.add(男); box3.add(女);
Box box4=Box.createHorizontalBox(); box4.add(new JLabel(\"部门:\box4.add(部门);
Box box6=Box.createHorizontalBox();
box6.add(new JLabel(\" \
Box box5=Box.createHorizontalBox(); box5.add(new JLabel(\"工资:\box5.add(工资);
Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4);
boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH);
pCenter.setBackground(Color.yellow); setLayout(new BorderLayout()); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入); pSouth.add(重置);
pSouth.setBackground(Color.yellow); add(pSouth,BorderLayout.SOUTH); validate(); }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==录入) {
String number=\"\";
number=员工号.getText(); if(number.length()>0) {
try {
inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); }
catch(Exception ee) { }
if(基本信息表.containsKey(number)) {
String warning=\"该员工基本信息已存在,请到修改页面修改!\"; JOptionPane.showMessageDialog(this,warning,\"警告
\
} else {
String m=\"基本信息将被录入!\";
int ok=JOptionPane.showConfirmDialog(this,m,\"确认
\
JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) {
String name=姓名.getText();
String discipling=部门.getSelectedItem(); String grade=工资.getText(); String sex=null; if(男.isSelected()) {
sex=男.getText(); } else {
sex=女.getText(); }
员工=new Employee(); 员工.setNumber(number); 员工.setName(name);
员工.setDiscipling(discipling); 员工.setGrade(grade); 员工.setSex(sex); try {
outOne=new FileOutputStream(file);
outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,员工); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();
员工号.setText(null);
姓名.setText(null); 工资.setText(null); }
catch(Exception ee) {
System.out.println(ee); }}}} else {
String warning=\"必须要输入员工号!\";
JOptionPane.showMessageDialog(this,warning,\"警告
\
}}
if(e.getSource()==重置) {
员工号.setText(null); 姓名.setText(null);
部门.remove(部门.getSelectedIndex());
工资.setText(null); }}}
4、实现员工信息的修改: import java.awt.*;
import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*;
public class ModifySituation extends JPanel implements ActionListener {
Hashtable 基本信息表=null; JTextField 员工号,姓名,工资; Choice 部门;
JRadioButton 男,女;
ButtonGroup group=null;
JButton 开始修改,录入修改,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null;
File file=null; public ModifySituation(File file)
{
this.file=file;
员工号=new JTextField(10);
姓名=new JTextField(10); 部门=new Choice(); 部门.add(\"请选择\"); 部门.add(\"研发部\"); 部门.add(\"销售部\"); 部门.add(\"人事部\"); 部门.add(\"安全部\");
工资=new JTextField(10); group=new ButtonGroup();
男=new JRadioButton(\"男\ 女=new JRadioButton(\"女\ group.add(男); group.add(女);
开始修改=new JButton(\"开始修改\"); 录入修改=new JButton(\"录入修改\"); 录入修改.setEnabled(false); 重置=new JButton(\"重置\");
员工号.addActionListener(this); 开始修改.addActionListener(this); 录入修改.addActionListener(this); 重置.addActionListener(this);
Box box1=Box.createHorizontalBox();
box1.add(new JLabel(\"输入要修改信息的员工号:\ box1.add(员工号); box1.add(开始修改);
Box box2=Box.createHorizontalBox(); box2.add(new JLabel(\"姓名:\ box2.add(姓名);
Box box3=Box.createHorizontalBox(); box3.add(new JLabel(\"性别:\ box3.add(男); box3.add(女);
Box box4=Box.createHorizontalBox(); box4.add(new JLabel(\"部门:\ box4.add(部门);
Box box6=Box.createHorizontalBox(); box6.add(new JLabel(\" \
Box box5=Box.createHorizontalBox(); box5.add(new JLabel(\"工资:\ box5.add(工资);
Box boxH=Box.createVerticalBox();
boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4);
boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH);
pCenter.setBackground(Color.yellow); setLayout(new BorderLayout()); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(录入修改); pSouth.add(重置);
pSouth.setBackground(Color.yellow); add(pSouth,BorderLayout.SOUTH); validate(); }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==开始修改||e.getSource()==员工号) {
String number=\"\";
number=员工号.getText(); if(number.length()>0) {
try {
inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); }
catch(Exception ee) { }
if(基本信息表.containsKey(number)) {
录入修改.setEnabled(true);
Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName()); 部门.getSelectedItem();
工资.setText(stu.getGrade());
if(stu.getSex().equals(\"男\")) {
男.setSelected(true); } else {
女.setSelected(true); } } else {
录入修改.setEnabled(false);
String warning=\"该员工号不存在!\";
JOptionPane.showMessageDialog(this,warning,\"警告
\
员工号.setText(null);
姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null); } } else {
录入修改.setEnabled(false);
String warning=\"必须要输入员工号!\";
JOptionPane.showMessageDialog(this,warning,\"警告
\
员工号.setText(null);
姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null); } }
else if(e.getSource()==录入修改) {
String number=\"\";
number=员工号.getText(); if(number.length()>0) {
try {
inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject(); inOne.close();
inTwo.close(); }
catch(Exception ee) { }
if(基本信息表.containsKey(number)) {
String question=\"该员工基本信息已存在,您想修改他(她)的基本信
息吗?\";
JOptionPane.showMessageDialog(this,question,\"警告
\
String m=\"基本信息将被修改!\";
int ok=JOptionPane.showConfirmDialog(this,m,\"确认
\
JOptionPane.INFORMATION_MESSAGE); if(ok==JOptionPane.YES_OPTION) {
String name=姓名.getText();
String discipling=部门.getSelectedItem(); String grade=工资.getText(); String sex=null; if(男.isSelected()) {
sex=男.getText(); } else {
sex=女.getText(); }
Employee 员工=new Employee();
员工.setNumber(number); 员工.setName(name);
员工.setDiscipling(discipling); 员工.setGrade(grade); 员工.setSex(sex); try {
outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,员工); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();
员工号.setText(null);
姓名.setText(null); 部门.remove(部门.getSelectedItem()); 工资.setText(null); }
catch(Exception ee) {
System.out.println(ee); }
录入修改.setEnabled(false); }
else if(ok==JOptionPane.NO_OPTION) {
录入修改.setEnabled(true); } } else {
String warning=\"该员工号没有基本信息,不能修改!\"; JOptionPane.showMessageDialog(this,warning,\"警告
\
录入修改.setEnabled(false); } } else {
String warning=\"必须要输入员工号!\"; JOptionPane.showMessageDialog(this,warning,\"警告
\
录入修改.setEnabled(false); } }
if(e.getSource()==重置) {
员工号.setText(null); 姓名.setText(null);
部门.remove(部门.getSelectedItem()); 工资.setText(null); }}}
5、实现员工信息的查询: import java.awt.*;
import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*;
public class Inquest extends JDialog implements ActionListener {
Hashtable 基本信息表=null; JTextField 员工号,姓名,部门,工资; JRadioButton 男,女; JButton 查询;
ButtonGroup group=null;
FileInputStream inOne=null; ObjectInputStream inTwo=null;
File file=null; public Inquest(JFrame f,File file) {
super(f,\"查询对话框\ this.file=file;
员工号=new JTextField(10); 查询=new JButton(\"查询\");
员工号.addActionListener(this);
查询.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 部门=new JTextField(10); 部门.setEditable(false); 工资=new JTextField(10); 工资.setEditable(false);
男=new JRadioButton(\"男\女=new JRadioButton(\"女\group=new ButtonGroup(); group.add(男); group.add(女);
Box box1=Box.createHorizontalBox();
box1.add(new JLabel(\"输入要查询的员工号:\box1.add(员工号); box1.add(查询);
Box box2=Box.createHorizontalBox(); box2.add(new JLabel(\"姓名:\box2.add(姓名);
Box box3=Box.createHorizontalBox(); box3.add(new JLabel(\"性别:\box3.add(男); box3.add(女);
Box box4=Box.createHorizontalBox(); box4.add(new JLabel(\"部门:\box4.add(部门);
Box box5=Box.createHorizontalBox(); box5.add(new JLabel(\"工资:\box5.add(工资);
Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box4);
boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH);
pCenter.setBackground(Color.green); Container con=getContentPane();
con.add(pCenter,BorderLayout.CENTER); con.validate(); setVisible(false);
setBounds(100,200,360,270);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false); } }); }
public void actionPerformed(ActionEvent e) {
姓名.setText(null); 部门.setText(null); 工资.setText(null);
if(e.getSource()==查询||e.getSource()==员工号) {
String number=\"\";
number=员工号.getText(); if(number.length()>0) {
try {
inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); }
catch(Exception ee) { }
if(基本信息表.containsKey(number)) {
Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName());
部门.setText(stu.getDisciping()); 工资.setText(stu.getGrade()); if(stu.getSex().equals(\"男\")) {
男.setSelected(true); } else {
女.setSelected(true); } } else {
String warning=\"该员工号不存在!\";
JOptionPane.showMessageDialog(this,warning,\"警告
\
}} else {
String warning=\"必须要输入员工号!\";
JOptionPane.showMessageDialog(this,warning,\"警告\ }}}}
6、实现员工信息的删除: import java.awt.*;
import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*;
public class Delete extends JPanel implements ActionListener {
Hashtable 基本信息表=null; JTextField 员工号,姓名,部门,工资; JRadioButton 男,女; JButton 删除;
ButtonGroup group=null;
FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null;
File file=null; public Delete(File file) {
this.file=file;
员工号=new JTextField(10); 删除=new JButton(\"删除\");
员工号.addActionListener(this); 删除.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 部门=new JTextField(10); 部门.setEditable(false); 工资=new JTextField(10); 工资.setEditable(false);
男=new JRadioButton(\"男\ 女=new JRadioButton(\"女\ group=new ButtonGroup(); group.add(男); group.add(女);
Box box1=Box.createHorizontalBox();
box1.add(new JLabel(\"输入要删除的学号:\ box1.add(员工号); box1.add(删除);
Box box2=Box.createHorizontalBox(); box2.add(new JLabel(\"姓名:\ box2.add(姓名);
Box box3=Box.createHorizontalBox();
box3.add(new JLabel(\"性别:\ box3.add(男); box3.add(女);
Box box4=Box.createHorizontalBox(); box4.add(new JLabel(\"部门:\ box4.add(部门);
Box box6=Box.createHorizontalBox(); box6.add(new JLabel(\" \
Box box5=Box.createHorizontalBox(); box5.add(new JLabel(\"工资:\ box5.add(工资);
Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box5); boxH.add(box6); boxH.add(box4);
boxH.add(Box.createVerticalGlue()); JPanel pCenter=new JPanel(); pCenter.add(boxH);
pCenter.setBackground(Color.yellow); setLayout(new BorderLayout()); add(pCenter,BorderLayout.CENTER); validate(); }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==删除||e.getSource()==员工号) {
String number=\"\";
number=员工号.getText(); if(number.length()>0) {
try {
inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); }
catch(Exception ee) {
}
if(基本信息表.containsKey(number)) {
Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName());
部门.setText(stu.getDisciping()); 工资.setText(stu.getGrade()); if(stu.getSex().equals(\"男\")) {
男.setSelected(true); } else {
女.setSelected(true); }
String m=\"确定要删除该员工号及全部信息吗?\";
int ok=JOptionPane.showConfirmDialog(this,m,\"确认
\JOptionPane.QUESTION_MESSAGE);
if(ok==JOptionPane.YES_OPTION) {
基本信息表.remove(number); try {
outOne=new FileOutputStream(file);
outTwo=new ObjectOutputStream(outOne); outTwo.writeObject(基本信息表); outTwo.close(); outOne.close();
员工号.setText(null);
姓名.setText(null); 部门.setText(null); 工资.setText(null); }
catch(Exception ee) {
System.out.println(ee); } }
else if(ok==JOptionPane.NO_OPTION) {
员工号.setText(null); 姓名.setText(null); 部门.setText(null);
工资.setText(null); } } else {
String warning=\"该员工号不存在!\";
JOptionPane.showMessageDialog(this,warning,\"警告
\
} } else {
String warning=\"必须要输入员工号!\";
JOptionPane.showMessageDialog(this,warning,\"警告
\
}}}}
三、实验结果体会
本次JAVA课程设计我所编写的程序是员工信息管理系统,程序中实现了对员工信息的添加、查询、修改、删除的功能,我是应用文件的形式完成的,其中还应用到了图形用户界面。我设计的程序简单易懂,操作简单,且 适用于不同的单位使用,只需按照自己的需要将所要录入的信息名称做添加或修改就可以实现。通过这次JAVA的程序设计,使我对JAVA有了更加深入的了解,巩固了我对JAVA基础知识的掌握。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务