员工管理系统的Java课程设计.docx

上传人:b****3 文档编号:13256742 上传时间:2023-06-12 格式:DOCX 页数:24 大小:97.06KB
下载 相关 举报
员工管理系统的Java课程设计.docx_第1页
第1页 / 共24页
员工管理系统的Java课程设计.docx_第2页
第2页 / 共24页
员工管理系统的Java课程设计.docx_第3页
第3页 / 共24页
员工管理系统的Java课程设计.docx_第4页
第4页 / 共24页
员工管理系统的Java课程设计.docx_第5页
第5页 / 共24页
员工管理系统的Java课程设计.docx_第6页
第6页 / 共24页
员工管理系统的Java课程设计.docx_第7页
第7页 / 共24页
员工管理系统的Java课程设计.docx_第8页
第8页 / 共24页
员工管理系统的Java课程设计.docx_第9页
第9页 / 共24页
员工管理系统的Java课程设计.docx_第10页
第10页 / 共24页
员工管理系统的Java课程设计.docx_第11页
第11页 / 共24页
员工管理系统的Java课程设计.docx_第12页
第12页 / 共24页
员工管理系统的Java课程设计.docx_第13页
第13页 / 共24页
员工管理系统的Java课程设计.docx_第14页
第14页 / 共24页
员工管理系统的Java课程设计.docx_第15页
第15页 / 共24页
员工管理系统的Java课程设计.docx_第16页
第16页 / 共24页
员工管理系统的Java课程设计.docx_第17页
第17页 / 共24页
员工管理系统的Java课程设计.docx_第18页
第18页 / 共24页
员工管理系统的Java课程设计.docx_第19页
第19页 / 共24页
员工管理系统的Java课程设计.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

员工管理系统的Java课程设计.docx

《员工管理系统的Java课程设计.docx》由会员分享,可在线阅读,更多相关《员工管理系统的Java课程设计.docx(24页珍藏版)》请在冰点文库上搜索。

员工管理系统的Java课程设计.docx

员工管理系统的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方法。

classemployeeimplements

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、utton等类构造各组件,使用。

使用Hashtable类创建散列表对象“员工表〞存放employee对象,每个employee对象用该对象的学号作为关键字。

使用exists()方法判断文本文件是否存在。

假如存在如此进展数据的写入操作。

使用addActionListener()方法对utton进展注册监听。

GridLayout管理器对面板进展设计如下所示。

publicclassEmployeeManagerextendsJFrame{

JLabellb=newJLabel("录入请先输入记录,查询、删除请先输入工号,修改是对查询"+"内容改后的保存!

");

JTextField工号,某某;

JRadioButton男,女;

ButtonGroupgroup=null;

utton录入,查询,删除,修改,显示;

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(女);

录入=newutton("录入");

查询=newutton("查询");

删除=newutton("删除");

修改=newutton("修改");

显示=newutton("显示");

录入.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();

Stringname=某某.getText();

Stringsex=null;

if(男.isSelected()){sex=男.getText();}

else{sex=女.getText();}

employee员工=newemployee();

员工.setNumber(number);

员工.setName(name);

员工.setSex(sex);

try{

outOne=newFileOutputStream(file);

outTwo=newObjectOutputStre

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2