JAVA员工管理系统实验报告姓名:张旭冉学号: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、定义员工类: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(100,50,420,380);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