还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
J__A员工管理系统实验报告姓名张旭冉班级信10-1北方工业大学理学院信息与计算科学系2013年12月17日员工管理系统
一、实验目的通过该课程设计,使同学们进一步理解概J__A的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确J__A在实际程序设计中的应用使课堂中学习到理论得到应用,练习文件形式在J__A程序设计中的应用
二、实验内容A.设计题目员工管理系统设计要求
(1)完成员工信息的添加、删除、查询、修改功能
(2)使用用户界面操作
(3)使用文件形式完成设计思路首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能通过文件类型知识的应用,实现对员工信息的管理B.概要设计面板设计首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器功能实现在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choi__为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理C.详细设计
1、定义员工类{Stringnumbernamedisciplinggradeborth___;publicEmployee{}publicvoidsetNumberStringnumber{this.number=number;}publicStringgetNumber{returnnumber;}publicvoidsetNameStringname{this.name=name;}publicStringgetName{returnname;}publicvoidsetDisciplingStringdiscipling{this.discipling=discipling;}publicStringgetDisciping{returndiscipling;}publicvoidsetGradeStringgrade{this.grade=grade;}publicStringgetGrade{returngrade;}publicvoidsetBorthStringborth{this.borth=borth;}publicStringgetBorth{returnborth;}publicvoidset___String___{this.___=___;}publicStringget___{return___;}}
2、主程序publicclassEmployee__nagerextendsJFrameimplementsActionListener{EmployeeSituation基本信息录入=null;ModifySituation基本信息修改=null;Inquest基本信息查询=null;Delete基本信息删除=null;JMenuBarbar;JMenufileMenu;JMenuItem录入修改查询删除;Containercon=null;Hashtable基本信息=null;Filefile=null;CardLayoutcard=null;JLabellabel=null;JPanelp__nter;publicEmployee__nager{录入=newJMenuItem录入员工基本信息;修改=newJMenuItem修改员工基本信息;查询=newJMenuItem查询员工基本信息;删除=newJMenuItem删除员工基本信息;bar=newJMenuBar;fileMenu=newJMenu菜单选项;fileMenu.add录入;fileMenu.add修改;fileMenu.add查询;fileMenu.add删除;bar.addfileMenu;setJMenuBarbar;label=newJLabel欢迎进入员工信息管理系统JLabel.__NTER;label.setFontnewFontSansSerifFont.BOLD+Font.ITALIC25;label.setForegroundColor.red;基本信息=newHashtable;录入.addActionListenerthis;修改.addActionListenerthis;查询.addActionListenerthis;删除.addActionListenerthis;card=newCardLayout;con=getContentPane;p__nter=newJPanel;p__nter.setLayoutcard;p__nter.setBackgroundColor.yellow;file=newFile基本信息.___;if!file.exists{try{FileOutputStreamout=newFileOutputStreamfile;O__ectOutputStreamo__ectOut=newO__ectOutputStreamout;o__ectOut.writeO__ect基本信息;o__ectOut.close;out.close;}catchIOEx__ptione{}}基本信息录入=newEmployeeSituationfile;基本信息修改=newModifySituationfile;基本信息查询=newInquestthisfile;基本信息删除=newDeletefile;p__nter.add欢迎语界面label;p__nter.add录入界面基本信息录入;p__nter.add修改界面基本信息修改;p__nter.add删除界面基本信息删除;con.addp__nterBorderLayout.__NTER;con.validate;addWindowListenernewWindowAdapter{publicvoidwindowClosingWindowEvente{System.exit0;}};setVisibletrue;setBounds10050420380;validate;}publicvoidactionPerformedActionEvente{ife.getSour__==录入{card.showp__nter录入界面;}elseife.getSour__==修改{card.showp__nter修改界面;}elseife.getSour__==查询{基本信息查询.setVisibletrue;}elseife.getSour__==删除{card.showp__nter删除界面;}}publicstaticvoid__inStringargs[]{newEmployee__nager;}}
3、实现员工信息的录入publicclassEmployeeSituationextendsJPanelimplementsActionListener{Hashtable基本信息表=null;JTextField员工号姓名工资;Choi__部门;JRadioButton男女;Employee员工=null;ButtonGroupgroup=null;JButton录入重置;FileInputStreaminOne=null;O__ectInputStreaminTwo=null;FileOutputStreamoutOne=null;O__ectOutputStreamoutTwo=null;Filefile=null;publicEmployeeSituationFilefile{this.file=file;员工号=newJTextField10;姓名=newJTextField10;部门=newChoi__;部门.add请选择;部门.add研发部;部门.add销售部;部门.add人事部;部门.add___;工资=newJTextField10;group=newButtonGroup;男=newJRadioButton男true;女=newJRadioButton女false;group.add男;group.add女;录入=newJButton录入;重置=newJButton重置;录入.addActionListenerthis;重置.addActionListenerthis;Boxbox1=Box.createHorizontalBox;box
1.addnewJLabel员工号:JLabel.__NTER;box
1.add员工号;Boxbox2=Box.createHorizontalBox;box
2.addnewJLabel姓名:JLabel.__NTER;box
2.add姓名;Boxbox3=Box.createHorizontalBox;box
3.addnewJLabel性别:JLabel.__NTER;box
3.add男;box
3.add女;Boxbox4=Box.createHorizontalBox;box
4.addnewJLabel部门:JLabel.__NTER;box
4.add部门;Boxbox6=Box.createHorizontalBox;box
6.addnewJLabelJLabel.__NTER;Boxbox5=Box.createHorizontalBox;box
5.addnewJLabel工资:JLabel.__NTER;box
5.add工资;BoxboxH=Box.createVerticalBox;boxH.addbox1;boxH.addbox2;boxH.addbox3;boxH.addbox5;boxH.addbox6;boxH.addbox4;boxH.addBox.createVerticalGlue;JPanelp__nter=newJPanel;p__nter.addboxH;p__nter.setBackgroundColor.yellow;setLayoutnewBorderLayout;addp__nterBorderLayout.__NTER;JPanelpSouth=newJPanel;pSouth.add录入;pSouth.add重置;pSouth.setBackgroundColor.yellow;addpSouthBorderLayout.SOUTH;validate;}publicvoidactionPerformedActionEvente{ife.getSour__==录入{Stringnumber=;number=员工号.getText;ifnumber.length0{try{inOne=newFileInputStreamfile;inTwo=newO__ectInputStreaminOne;基本信息表=HashtableinTwo.readO__ect;inOne.close;inTwo.close;}catchEx__ptionee{}if基本信息表.containsKeynumber{Stringwarning=该员工基本信息已存在请到修改页面修改!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;}else{Stringm=基本信息将被录入!;intok=JOptionPane.showConfirmDialogthism确认JOptionPane.YES_NO_OPTIONJOptionPane.INFOR__TION_MESSAGE;ifok==JOptionPane.YES_OPTION{Stringname=姓名.getText;Stringdiscipling=部门.getSelectedItem;Stringgrade=工资.getText;String___=null;if男.isSelected{___=男.getText;}else{___=女.getText;}员工=newEmployee;员工.setNumbernumber;员工.setNamename;员工.setDisciplingdiscipling;员工.setGradegrade;员工.set______;try{outOne=newFileOutputStreamfile;outTwo=newO__ectOutputStreamoutOne;基本信息表.putnumber员工;outTwo.writeO__ect基本信息表;outTwo.close;outOne.close;员工号.setTextnull;姓名.setTextnull;工资.setTextnull;}catchEx__ptionee{}}}}else{Stringwarning=必须要输入员工号!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;}}ife.getSour__==重置{员工号.setTextnull;姓名.setTextnull;部门.remove部门.getSelectedIndex;工资.setTextnull;}}}
4、实现员工信息的修改publicclassModifySituationextendsJPanelimplementsActionListener{Hashtable基本信息表=null;JTextField员工号姓名工资;Choi__部门;JRadioButton男女;ButtonGroupgroup=null;JButton开始修改录入修改重置;FileInputStreaminOne=null;O__ectInputStreaminTwo=null;FileOutputStreamoutOne=null;O__ectOutputStreamoutTwo=null;Filefile=null;publicModifySituationFilefile{this.file=file;员工号=newJTextField10;姓名=newJTextField10;部门=newChoi__;部门.add请选择;部门.add研发部;部门.add销售部;部门.add人事部;部门.add___;工资=newJTextField10;group=newButtonGroup;男=newJRadioButton男true;女=newJRadioButton女false;group.add男;group.add女;开始修改=newJButton开始修改;录入修改=newJButton录入修改;录入修改.setEnabledfalse;重置=newJButton重置;员工号.addActionListenerthis;开始修改.addActionListenerthis;录入修改.addActionListenerthis;重置.addActionListenerthis;Boxbox1=Box.createHorizontalBox;box
1.addnewJLabel输入要修改信息的员工号:JLabel.__NTER;box
1.add员工号;box
1.add开始修改;Boxbox2=Box.createHorizontalBox;box
2.addnewJLabel姓名:JLabel.__NTER;box
2.add姓名;Boxbox3=Box.createHorizontalBox;box
3.addnewJLabel性别:JLabel.__NTER;box
3.add男;box
3.add女;Boxbox4=Box.createHorizontalBox;box
4.addnewJLabel部门:JLabel.__NTER;box
4.add部门;Boxbox6=Box.createHorizontalBox;box
6.addnewJLabelJLabel.__NTER;Boxbox5=Box.createHorizontalBox;box
5.addnewJLabel工资:JLabel.__NTER;box
5.add工资;BoxboxH=Box.createVerticalBox;boxH.addbox1;boxH.addbox2;boxH.addbox3;boxH.addbox5;boxH.addbox6;boxH.addbox4;boxH.addBox.createVerticalGlue;JPanelp__nter=newJPanel;p__nter.addboxH;p__nter.setBackgroundColor.yellow;setLayoutnewBorderLayout;addp__nterBorderLayout.__NTER;JPanelpSouth=newJPanel;pSouth.add录入修改;pSouth.add重置;pSouth.setBackgroundColor.yellow;addpSouthBorderLayout.SOUTH;validate;}publicvoidactionPerformedActionEvente{ife.getSour__==开始修改||e.getSour__==员工号{Stringnumber=;number=员工号.getText;ifnumber.length0{try{inOne=newFileInputStreamfile;inTwo=newO__ectInputStreaminOne;基本信息表=HashtableinTwo.readO__ect;inOne.close;inTwo.close;}catchEx__ptionee{}if基本信息表.containsKeynumber{录入修改.setEnabledtrue;Employeestu=Employee基本信息表.getnumber;姓名.setTextstu.getName;部门.getSelectedItem;工资.setTextstu.getGrade;ifstu.get___.equals男{男.setSelectedtrue;}else{女.setSelectedtrue;}}else{录入修改.setEnabledfalse;Stringwarning=该员工号不存在!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;员工号.setTextnull;姓名.setTextnull;部门.remove部门.getSelectedItem;工资.setTextnull;}}else{录入修改.setEnabledfalse;Stringwarning=必须要输入员工号!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;员工号.setTextnull;姓名.setTextnull;部门.remove部门.getSelectedItem;工资.setTextnull;}}elseife.getSour__==录入修改{Stringnumber=;number=员工号.getText;ifnumber.length0{try{inOne=newFileInputStreamfile;inTwo=newO__ectInputStreaminOne;基本信息表=HashtableinTwo.readO__ect;inOne.close;inTwo.close;}catchEx__ptionee{}if基本信息表.containsKeynumber{Stringquestion=该员工基本信息已存在您想修改他她的基本信息吗;JOptionPane.showMessageDialogthisquestion警告JOptionPane.QUESTION_MESSAGE;Stringm=基本信息将被修改!;intok=JOptionPane.showConfirmDialogthism确认JOptionPane.YES_NO_OPTIONJOptionPane.INFOR__TION_MESSAGE;ifok==JOptionPane.YES_OPTION{Stringname=姓名.getText;Stringdiscipling=部门.getSelectedItem;Stringgrade=工资.getText;String___=null;if男.isSelected{___=男.getText;}else{___=女.getText;}Employee员工=newEmployee;员工.setNumbernumber;员工.setNamename;员工.setDisciplingdiscipling;员工.setGradegrade;员工.set______;try{outOne=newFileOutputStreamfile;outTwo=newO__ectOutputStreamoutOne;基本信息表.putnumber员工;outTwo.writeO__ect基本信息表;outTwo.close;outOne.close;员工号.setTextnull;姓名.setTextnull;部门.remove部门.getSelectedItem;工资.setTextnull;}catchEx__ptionee{}录入修改.setEnabledfalse;}elseifok==JOptionPane.NO_OPTION{录入修改.setEnabledtrue;}}else{Stringwarning=该员工号没有基本信息不能修改!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;录入修改.setEnabledfalse;}}else{Stringwarning=必须要输入员工号!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;录入修改.setEnabledfalse;}}ife.getSour__==重置{员工号.setTextnull;姓名.setTextnull;部门.remove部门.getSelectedItem;工资.setTextnull;}}}
5、实现员工信息的查询publicclassInquestextendsJDialogimplementsActionListener{Hashtable基本信息表=null;JTextField员工号姓名部门工资;JRadioButton男女;JButton查询;ButtonGroupgroup=null;FileInputStreaminOne=null;O__ectInputStreaminTwo=null;Filefile=null;publicInquestJFramefFilefile{superf查询对话框false;this.file=file;员工号=newJTextField10;查询=newJButton查询;员工号.addActionListenerthis;查询.addActionListenerthis;姓名=newJTextField10;姓名.setEditablefalse;部门=newJTextField10;部门.setEditablefalse;工资=newJTextField10;工资.setEditablefalse;男=newJRadioButton男false;女=newJRadioButton女false;group=newButtonGroup;group.add男;group.add女;Boxbox1=Box.createHorizontalBox;box
1.addnewJLabel输入要查询的员工号:JLabel.__NTER;box
1.add员工号;box
1.add查询;Boxbox2=Box.createHorizontalBox;box
2.addnewJLabel姓名:JLabel.__NTER;box
2.add姓名;Boxbox3=Box.createHorizontalBox;box
3.addnewJLabel性别:JLabel.__NTER;box
3.add男;box
3.add女;Boxbox4=Box.createHorizontalBox;box
4.addnewJLabel部门:JLabel.__NTER;box
4.add部门;Boxbox5=Box.createHorizontalBox;box
5.addnewJLabel工资:JLabel.__NTER;box
5.add工资;BoxboxH=Box.createVerticalBox;boxH.addbox1;boxH.addbox2;boxH.addbox3;boxH.addbox5;boxH.addbox4;boxH.addBox.createVerticalGlue;JPanelp__nter=newJPanel;p__nter.addboxH;p__nter.setBackgroundColor.green;Containercon=getContentPane;con.addp__nterBorderLayout.__NTER;con.validate;setVisiblefalse;setBounds100200360270;addWindowListenernewWindowAdapter{publicvoidwindowClosingWindowEvente{setVisiblefalse;}};}publicvoidactionPerformedActionEvente{姓名.setTextnull;部门.setTextnull;工资.setTextnull;ife.getSour__==查询||e.getSour__==员工号{Stringnumber=;number=员工号.getText;ifnumber.length0{try{inOne=newFileInputStreamfile;inTwo=newO__ectInputStreaminOne;基本信息表=HashtableinTwo.readO__ect;inOne.close;inTwo.close;}catchEx__ptionee{}if基本信息表.containsKeynumber{Employeestu=Employee基本信息表.getnumber;姓名.setTextstu.getName;部门.setTextstu.getDisciping;工资.setTextstu.getGrade;ifstu.get___.equals男{男.setSelectedtrue;}else{女.setSelectedtrue;}}else{Stringwarning=该员工号不存在!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;}}else{Stringwarning=必须要输入员工号!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;}}}}
6、实现员工信息的删除publicclassDeleteextendsJPanelimplementsActionListener{Hashtable基本信息表=null;JTextField员工号姓名部门工资;JRadioButton男女;JButton删除;ButtonGroupgroup=null;FileInputStreaminOne=null;O__ectInputStreaminTwo=null;FileOutputStreamoutOne=null;O__ectOutputStreamoutTwo=null;Filefile=null;publicDeleteFilefile{this.file=file;员工号=newJTextField10;删除=newJButton删除;员工号.addActionListenerthis;删除.addActionListenerthis;姓名=newJTextField10;姓名.setEditablefalse;部门=newJTextField10;部门.setEditablefalse;工资=newJTextField10;工资.setEditablefalse;男=newJRadioButton男false;女=newJRadioButton女false;group=newButtonGroup;group.add男;group.add女;Boxbox1=Box.createHorizontalBox;box
1.addnewJLabel输入要删除的学号:JLabel.__NTER;box
1.add员工号;box
1.add删除;Boxbox2=Box.createHorizontalBox;box
2.addnewJLabel姓名:JLabel.__NTER;box
2.add姓名;Boxbox3=Box.createHorizontalBox;box
3.addnewJLabel性别:JLabel.__NTER;box
3.add男;box
3.add女;Boxbox4=Box.createHorizontalBox;box
4.addnewJLabel部门:JLabel.__NTER;box
4.add部门;Boxbox6=Box.createHorizontalBox;box
6.addnewJLabelJLabel.__NTER;Boxbox5=Box.createHorizontalBox;box
5.addnewJLabel工资:JLabel.__NTER;box
5.add工资;BoxboxH=Box.createVerticalBox;boxH.addbox1;boxH.addbox2;boxH.addbox3;boxH.addbox5;boxH.addbox6;boxH.addbox4;boxH.addBox.createVerticalGlue;JPanelp__nter=newJPanel;p__nter.addboxH;p__nter.setBackgroundColor.yellow;setLayoutnewBorderLayout;addp__nterBorderLayout.__NTER;validate;}publicvoidactionPerformedActionEvente{ife.getSour__==删除||e.getSour__==员工号{Stringnumber=;number=员工号.getText;ifnumber.length0{try{inOne=newFileInputStreamfile;inTwo=newO__ectInputStreaminOne;基本信息表=HashtableinTwo.readO__ect;inOne.close;inTwo.close;}catchEx__ptionee{}if基本信息表.containsKeynumber{Employeestu=Employee基本信息表.getnumber;姓名.setTextstu.getName;部门.setTextstu.getDisciping;工资.setTextstu.getGrade;ifstu.get___.equals男{男.setSelectedtrue;}else{女.setSelectedtrue;}Stringm=确定要删除该员工号及全部信息吗;intok=JOptionPane.showConfirmDialogthism确认JOptionPane.YES_NO_OPTIONJOptionPane.QUESTION_MESSAGE;ifok==JOptionPane.YES_OPTION{基本信息表.removenumber;try{outOne=newFileOutputStreamfile;outTwo=newO__ectOutputStreamoutOne;outTwo.writeO__ect基本信息表;outTwo.close;outOne.close;员工号.setTextnull;姓名.setTextnull;部门.setTextnull;工资.setTextnull;}catchEx__ptionee{}}elseifok==JOptionPane.NO_OPTION{员工号.setTextnull;姓名.setTextnull;部门.setTextnull;工资.setTextnull;}}else{Stringwarning=该员工号不存在!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;}}else{Stringwarning=必须要输入员工号!;JOptionPane.showMessageDialogthiswarning警告JOptionPane.WARNING_MESSAGE;}}}}
3、实验结果体会本次J__A课程设计我所编写的程序是员工信息管理系统,程序中实现了对员工信息的添加、查询、修改、删除的功能,我是应用文件的形式完成的,其中还应用到了图形用户界面我设计的程序简单易懂,操作简单,且适用于不同的单位使用,只需按照自己的需要将所要录入的信息名称做添加或修改就可以实现通过这次J__A的程序设计,使我对J__A有了更加深入的了解,巩固了我对J__A基础知识的掌握。