员工管理系统Java技术交底大全报告.docx
- 文档编号:7612342
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:82.16KB
员工管理系统Java技术交底大全报告.docx
《员工管理系统Java技术交底大全报告.docx》由会员分享,可在线阅读,更多相关《员工管理系统Java技术交底大全报告.docx(21页珍藏版)》请在冰豆网上搜索。
员工管理系统Java技术交底大全报告
课程设计(论文)任务书
学院
*学院
专业
*******
学生姓名
班级学号
*******
课程名称
Java语言程序设计
课程设计(论文)题目
员工信息管理系统
设计目的:
1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;
3)培养学生在项目开发中的团队合作精神、创新意识及能力。
设计要求(技术参数):
1)对系统进行需求分析及可行性分析
系统实现的目的,项目开发的背景,系统要达到的目标,开发系统所用的开发环境,预期使用的用户等。
2)对系统进行总体设计
分析系统的功能结构模块,并给出系统的功能结构图,设计要符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。
3)详细设计
设计所需的数据表,给出所需数据表的字段名称,数据类型,字符长度,字段说明,约束条件。
编码实现每个子功能模块,并进行测试。
计划与进度安排:
一全天:
设计解决问题法四1~4节:
调试程序
一全天:
调试程序四1~4节:
完成论文,答辩
成绩:
指导教师(签字):
年月日
专业负责人(签字):
年月日
主管院长(签字):
年月日
摘要
Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。
随着目前公司规模的渐渐扩大,员工管理将成为意见不得不总是的问题。
有些公司人员流动较大,而且人数动辄上百人,,若采用传统的式进行管理,不仅易出错更是一件令人痛疼的事。
随着计算机的诞生,在此领域产生众多的信息管理系统来管理信息,不仅信息处理便,而且简单强大。
本系统正事其中的一项,针对员工信息管理,便公司对员工的信息进行处理,极大减少了人事管理的工作量。
另一面,本系统中所涉及到图形用户界面设计是我们学习程序设计这门课的难点兼重点,通过审计本系统不仅巩固了我们的基础,以及程序设计能力,还锻炼了我们对程序设计的流程及大体上的把握不仅如此,在设计过程中,我们的调试能力也得到增强。
使我们对设计“大程序”有了经验。
目前,无论是机关、事业单位、还是企业单位,员工管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,而员工管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助.在现代化的企业管理中,员工管理系统有着十分重要的作用!
关键词:
文件和流界面设计GUI异常处理Hashtable类
一、设计目的
随着现代社会的快速发展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作、学习、生活的各个面。
为了适应时代的发展,本次课程设计的主要任务是设计一个学生员工系统并完成一些基本操作。
其目的是:
(1)提高员工信息管理的运作效率,通过对雇员全面的信息采集和处理;
(2)运用已学的java知识编一些简单使用的程序,使我们初步具备综合运用所学Java语言基础知识,面向对象程序设计的基本思想、法与技术;
(3)由计算机来代替人工执行一系列诸如增加新员工、删除、修改、查询、显示等操作。
这样就使管理人员轻松快捷的完成员工信息的管理工作。
二、设计问题
2.1课设问题:
员工管理系统
要求完成:
(1)完成员工的添加、删除、查询、修改功能
(2)使用界面操作
(3)使用文件完成
2.2设计思路:
首先设计面板,然后往面板里添加组件,点击各个组件来实现要求的对员工信息的添加、删除、查询、修改功能。
三、概要设计
3.1程序功能模块设计的实现
本段代码中主要的类有EmployeeManager和ActionEvent,设置了监听接口由ActionEvent类来实现,并且用if语句来为变量服务。
后面设置了一个异常处理,使用try和catch来捕获异常。
使用GUI技术实现员工的图形界面。
3.2系统总体结构
系统总体结构
员工信息管理系统
信息添加
信息查询
信息修改
信息删除
信息显示
3.3员工信息面板功能的实现
首先构造两个面板(JPanel),分别为界面以及显示,并将其加入到容器中.
主界面
显示界面
3.4员工界面功能模块设计的实现
录入:
提示员工信息是否被录入,选择是(Y),则员工信息录入到文件中
查询:
在主界面中输入员工号,点击查找,若员工信息不存在则显示如图
若文本文件中存在所要查找的员工信息(例如工号0801),则在主界面中显示该员工信息(员工号、姓名和性别)
删除:
在主界面中输入员工号,点击删除按钮,弹出对话框,选择是(Y)程序将删除词员工的所有信息。
四、详细设计
4.1定义程序变量
自定义employee类,其中定义number,name,sex三个变量,分别包含setNumber、getNumber、setName、getName、setSex、getSex法。
classemployeeimplementsjava.io.Serializable{
Stringnumber,name,sex;
publicemployee(){};
publicvoidsetNumber(Stringnumber){this.number=number;}
publicStringgetNumber(){returnnumber;}
publicvoidsetName(Stringname){this.name=name;}
publicStringgetName(){returnname;}
publicvoidsetSex(Stringsex){this.sex=sex;}
PublicStringgetSex(){returnsex;}
}
4.2程序面板设计
定义EmployeeManager类继承JFrame,使用JLabel、JTextField、JRadioBUtton、ButtonGroup、JButton等类构造各组件,使用。
使用Hashtable类创建散列表对象“员工表”存放employee对象,每个employee对象用该对象的学号作为关键字。
使用exists()法判断文本文件是否存在。
若存在则进行数据的写入操作。
使用addActionListener()法对JButton进行注册监听。
GridLayout布局管理器对面板进行设计如下所示。
publicclassEmployeeManagerextendsJFrame{
JLabellb=newJLabel("录入请先输入记录,查询、删除请先输入工号,修改是对查询"+"容改后的保存!
");
JTextField工号,姓名;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton录入,查询,删除,修改,显示;
JPanela,b,c,d,f;
employee员工=null;
Hashtable员工表=null;
Filefile=null;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
publicemployee工人;
publicEmployeeManager(){
super("理工员工基本信息管理系统");
工号=newJTextField(10);
姓名=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
录入=newJButton("录入");
查询=newJButton("查询");
删除=newJButton("删除");
修改=newJButton("修改");
显示=newJButton("显示");
录入.addActionListener(newLRAct());
查询.addActionListener(newCXAct());
修改.addActionListener(newXGAct());
删除.addActionListener(newSCAct());
显示.addActionListener(newXSAct());
修改.setEnabled(false);
a=newJPanel();
a.add(newJLabel("工号:
",JLabel.CENTER));
a.add(工号);
b=newJPanel();
b.add(newJLabel("姓名:
",JLabel.CENTER));
b.add(姓名);
c=newJPanel();
c.add(newJLabel("性别:
",JLabel.CENTER));
c.add(男);
c.add(女);
d=newJPanel();
d.setLayout(newGridLayout(6,1));
d.add(a);
d.add(b);
d.add(c);
f=newJPanel();
f.add(录入);
f.add(查询);
f.add(修改);
f.add(删除);
f.add(显示);
file=newFile("员工信息.txt");
Hashtable员工表=newHashtable();
if(!
file.exists()){
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(员工表);
objectOut.close();
out.close();
}
catch(IOExceptione){}
}
Containercon=getContentPane();
con.setLayout(newBorderLayout());
con.add(lb,BorderLayout.NORTH);
con.add(d,BorderLayout.CENTER);
con.add(f,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(200,200,600,300);
setVisible(true);
}
4.3录入员工信息
以员工的员工号作为关键字,调用ObjectInputStream(newFileInputStream())中的readObject()法读取文本文件中的数据。
使用员工表.containsKey(number)对关键字进行检测,如果数据中包含该员工号,则弹出对话框提示该员工信息已存在,请到修改页面进行信息的修改,如果数据中不包含该关键字,则弹出确认对话框,点击确定,程序调用put()法写入信息到散列表中。
调用writeObject()法将散列表写入文本文件中。
如果程序在获取员工号时为空时,提示用户输入员工号。
用try,catch对异常进行处理。
以下为具体代码:
classLRActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
修改.setEnabled(false);//功能尚未实现
Stringnumber="";
number=工号.getText();
if(number.length()>0){
try{
inTwo=newObjectInputStream(newFileInputStream(file));
员工表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){System.out.println("创建表出现问题!
");}
if(员工表.containsKey(number)){
Stringwarning="该员工信息已存在,请到修改页面修改!
";
JOptionPane.showMessageDialog(null,warning,"警告",
JOptionPane.WARNING_MESSAGE);
}
else{
Stringm="确定该员工被录入?
";
intok=JOptionPane.showConfirmDialog(null,m,"确认",
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
Stringname=姓名.getText();
Stringsex=null;
if(男.isSelected()){sex=男.getText();}
else{sex=女.getText();}
员工=newemployee();
员工.setNumber(number);
员工.setName(name);
员工.setSex(sex);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
员工表.put(number,员工);
outTwo.writeObject(员工表);
outTwo.close();
outOne.close();
}
catch(Exceptionee){System.out.println("输出出现问题!
");}
工号.setText(null);
姓名.setText(null);
}
}
}
else{
Stringwarning="必须输入工号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
}
4.4查询员工信息
构造CXAct类实现ActionListener接口,对事件监听。
在该类中以员工的员工号作为关键字,调用ObjectInputStream(newFileInputStream())中的readObject()法读取文本文件中的数据。
使用员工表.containsKey(number)
对关键字进行检测,如果文本框中的员工号和文本文件中的数据相同,程序调用setText()法把散列表中的员工信息显示在文本框中,如果文本框中的员工号和文本文件中的数据不相同,则程序调用JOptionPane.showMessageDialog()法提示该员工信息不存在。
如果程序获取到员工号文本框中的容为空,则提示用户输入员工号。
以下程序实现为代码:
classCXActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber="";
number=工号.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
员工表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){System.out.println("员工表有问题!
");}
if(员工表.containsKey(number)){
修改.setEnabled(true);
employeestu=(employee)员工表.get(number);
姓名.setText(stu.getName());
if(stu.getSex().equals("男")){男.setSelected(true);}
else{女.setSelected(true);}
}
else{
修改.setEnabled(false);
Stringwarning="该员工不存在!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
else{
修改.setEnabled(false);
Stringwarning="必须输入工号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
}
classXGActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber=工号.getText();
Stringname=姓名.getText();
Stringsex=null;
if(男.isSelected()){sex=男.getText();}
else{sex=女.getText();}
employee员工=newemployee();
员工.setNumber(number);
员工.setName(name);
员工.setSex(sex);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
员工表.put(number,员工);
outTwo.writeObject(员工表);
outTwo.close();
outOne.close();
工号.setText(null);
姓名.setText(null);
}
catch(Exceptionee){
System.out.println("录入修改出现异常!
");
修改.setEnabled(false);
}
}
}
classSCActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
修改.setEnabled(false);
Stringnumber=工号.getText();
if(number.length()>0){
try{
inTwo=newObjectInputStream(newFileInputStream(file));
员工表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){}
if(员工表.containsKey(number)){
employeestu=(employee)员工表.get(number);
姓名.setText(stu.getName());
if(stu.getSex().equals("男")){男.setSelected(true);}
else{女.setSelected(true);}
}
Stringm="确定要删除该员工的记录吗?
";
intok=JOptionPane.showConfirmDialog(null,m,"确认",
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
员工表.remove(number);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
outTwo.writeObject(员工表);
outTwo.close();
outOne.close();
工号.setText(null);
姓名.setText(null);
}
catch(Exceptionee){System.out.println(ee);}
}
elseif(ok==JOptionPane.NO_OPTION){
工号.setText(null);
姓名.setText(null);
}
else{
Stringwarning="该号不存在!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
else{
Stringwarning="必须输入工号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
}
4.5修改员工信息
和添加员工信息法类似,定义number、name、sex三个局部变量,并使用getText()法初始化变量。
调用isSelected()法设置单选按钮。
创建employee类型的“员工”局部变量,调用Hastable类中的put()法将要修改的员工信息写入到散列表“员工表”中。
调用ObjectInputStream(newFileInputStream())中的writeObject()把散列表中的数据信息写入到文本文件中。
使用try{}catch来捕获异常,并进行处理。
以下是程序实现修改功能的代码:
classXGActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber=工号.getText();
String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 系统 Java 技术 交底 大全 报告