Java课程设计-员工管理系统.doc_第1页
Java课程设计-员工管理系统.doc_第2页
Java课程设计-员工管理系统.doc_第3页
Java课程设计-员工管理系统.doc_第4页
Java课程设计-员工管理系统.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计(论文)任务书学院*学院专 业*学生姓名班级学号*课程名称java语言程序设计课程设计(论文)题目员工信息管理系统设计目的:1)复习、巩固java语言的基础知识,进一步加深对java语言的理解和掌握;2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3)培养学生在项目开发中的团队合作精神、创新意识及能力。设计要求(技术参数):1)对系统进行需求分析及可行性分析系统实现的目的,项目开发的背景,系统要达到的目标,开发系统所用的开发环境,预期使用的用户等。2)对系统进行总体设计分析系统的功能结构模块,并给出系统的功能结构图,设计要符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。3)详细设计 设计所需的数据表,给出所需数据表的字段名称,数据类型,字符长度,字段说明,约束条件。编码实现每个子功能模块,并进行测试。计划与进度安排:周一 全天:设计解决问题方法 周四14节:调试程序周一 全天:调试程序 周四14节:完成论文,答辩成绩:指导教师(签字): 年月日 专业负责人(签字):年月日主管院长(签字): 年月日摘要java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。随着目前公司规模的渐渐扩大,员工管理将成为意见不得不总是的问题。有些公司人员流动较大,而且人数动辄上百人,若采用传统的方式进行管理,不仅易出错更是一件令人痛疼的事。随着计算机的诞生,在此领域产生众多的信息管理系统来管理信息,不仅信息处理方便,而且简单强大。本系统正事其中的一项,针对员工信息管理,方便公司对员工的信息进行处理,极大减少了人事管理的工作量。另一方面,本系统中所涉及到图形用户界面设计是我们学习程序设计这门课的难点兼重点,通过审计本系统不仅巩固了我们的基础,以及程序设计能力,还锻炼了我们对程序设计的流程及大体上的把握不仅如此,在设计过程中,我们的调试能力也得到增强。使我们对设计“大程序”有了经验。目前,无论是机关、事业单位、还是企业单位,员工管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,而员工管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助.在现代化的企业管理中,员工管理系统有着十分重要的作用!关键词:文件和流 界面设计gui 异常处理 hashtable类目 录一、设计目的2二、设计问题32.1课设问题32.2设计思路4三、概要设计63.1程序功能模块设计的实现63.2系统总体结构73.3员工信息面板功能的实现73.4员工界面功能模块设计的实现8四、详细设计84.1定义程序变量84.2程序面板设计94.3录入员工信息104.4查询员工信息104.5修改员工信息104.6删除员工信息104.7显示员工信息10五、设计总结10六、参考文献11七、致 谢11一、设计目的随着现代社会的快速发展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作、学习、生活的各个方面。为了适应时代的发展,本次课程设计的主要任务是设计一个学生员工系统并完成一些基本操作。其目的是:(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方法。class employee implements java.io.serializable string number,name,sex; public employee(); public void setnumber(string number) this.number=number; public string getnumber() return number; public void setname(string name) =name; public string getname() return name; public void setsex(string sex) this.sex=sex; public string getsex () return sex; 4.2 程序面板设计定义employeemanager类继承jframe,使用jlabel、jtextfield、jradiobutton、buttongroup、jbutton等类构造各组件,使用。使用hashtable类创建散列表对象“员工表”存放employee对象,每个employee对象用该对象的学号作为关键字。使用exists()方法判断文本文件是否存在。若存在则进行数据的写入操作。使用addactionlistener()方法对jbutton进行注册监听。gridlayout布局管理器对面板进行设计如下所示。public class employeemanager extends jframe jlabel lb=new jlabel(录入请先输入记录,查询、删除请先输入工号,修改是对查询 + 内容改后的保存!); jtextfield 工号,姓名; jradiobutton 男,女; buttongroup group=null; jbutton 录入,查询,删除,修改,显示; jpanel a,b,c,d,f; employee 员工=null; hashtable 员工表=null; file file=null; fileinputstream inone=null; objectinputstream intwo=null; fileoutputstream outone=null; objectoutputstream outtwo=null;public employee 工人; public employeemanager() super(沈阳理工员工基本信息管理系统); 工号=new jtextfield(10); 姓名=new jtextfield(10); group=new buttongroup(); 男=new jradiobutton(男,true); 女=new jradiobutton(女,false); group.add(男); group.add(女); 录入=new jbutton(录入); 查询=new jbutton(查询); 删除=new jbutton(删除); 修改=new jbutton(修改); 显示=new jbutton(显示); 录入.addactionlistener(new lract(); 查询.addactionlistener(new cxact(); 修改.addactionlistener(new xgact(); 删除.addactionlistener(new scact(); 显示.addactionlistener(new xsact(); 修改.setenabled(false); a=new jpanel(); a.add(new jlabel(工号:,jlabel.center); a.add(工号); b=new jpanel(); b.add(new jlabel(姓名:,jlabel.center); b.add(姓名); c=new jpanel(); c.add(new jlabel(性别:,jlabel.center); c.add(男); c.add(女); d=new jpanel(); d.setlayout(new gridlayout(6,1); d.add(a); d.add(b); d.add(c); f=new jpanel(); f.add(录入); f.add(查询); f.add(修改); f.add(删除); f.add(显示); file=new file(员工信息.txt); hashtable 员工表=new hashtable(); if(!file.exists() try fileoutputstream out=new fileoutputstream(file); objectoutputstream objectout=new objectoutputstream(out); objectout.writeobject(员工表); objectout.close(); out.close(); catch(ioexception e) container con=getcontentpane(); con.setlayout(new borderlayout(); 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(new fileinputstream ()中的readobject()方法读取文本文件中的数据。使用员工表.containskey(number)对关键字进行检测,如果数据中包含该员工号,则弹出对话框提示该员工信息已存在,请到修改页面进行信息的修改,如果数据中不包含该关键字,则弹出确认对话框,点击确定,程序调用put()方法写入信息到散列表中。调用writeobject()方法将散列表写入文本文件中。如果程序在获取员工号时为空时,提示用户输入员工号。用try,catch对异常进行处理。以下为具体代码: class lract implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false);/功能尚未实现 string number=; number=工号.gettext(); if(number.length()0) try intwo=new objectinputstream(new fileinputstream(file); 员工表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee)system.out.println(创建表出现问题!); if(员工表.containskey(number) string warning=该员工信息已存在,请到修改页面修改!; joptionpane.showmessagedialog(null,warning,警告, joptionpane.warning_message); else string m=确定该员工被录入?; int ok=joptionpane.showconfirmdialog(null,m,确认, joptionpane.yes_no_option,joptionpane.information_message); if(ok=joptionpane.yes_option) string name=姓名.gettext(); string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); 员工=new employee(); 员工.setnumber(number); 员工.setname(name); 员工.setsex(sex); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 员工表.put(number,员工); outtwo.writeobject(员工表); outtwo.close(); outone.close(); catch(exception ee)system.out.println(输出出现问题!); 工号.settext(null); 姓名.settext(null); else string warning=必须输入工号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); 4.4 查询员工信息构造cxact类实现actionlistener接口,对事件监听。在该类中以员工的员工号作为关键字,调用objectinputstream(new fileinputstream ()中的readobject()方法读取文本文件中的数据。使用员工表.containskey(number)对关键字进行检测,如果文本框中的员工号和文本文件中的数据相同,程序调用settext()方法把散列表中的员工信息显示在文本框中,如果文本框中的员工号和文本文件中的数据不相同,则程序调用joptionpane.showmessagedialog()方法提示该员工信息不存在。如果程序获取到员工号文本框中的内容为空,则提示用户输入员工号。以下程序实现为代码: class cxact implements actionlistener public void actionperformed(actionevent e) 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)system.out.println(员工表有问题!); if(员工表.containskey(number) 修改.setenabled(true); employee stu=(employee)员工表.get(number); 姓名.settext(stu.getname(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(true); else 修改.setenabled(false); string warning=该员工不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else 修改.setenabled(false); string warning=必须输入工号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); class xgact implements actionlistener public void actionperformed(actionevent e) string number=工号.gettext(); string name=姓名.gettext(); string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); employee 员工=new employee(); 员工.setnumber(number); 员工.setname(name); 员工.setsex(sex); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 员工表.put(number,员工); outtwo.writeobject(员工表); outtwo.close(); outone.close(); 工号.settext(null); 姓名.settext(null); catch(exception ee) system.out.println(录入修改出现异常!); 修改.setenabled(false); class scact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false); string number=工号.gettext(); if(number.length()0) try intwo=new objectinputstream(new fileinputstream(file); 员工表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(员工表.containskey(number) employee stu=(employee)员工表.get(number); 姓名.settext(stu.getname(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(true); string m=确定要删除该员工的记录吗?; int ok=joptionpane.showconfirmdialog(null,m,确认, joptionpane.yes_no_option,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); catch(exception ee)system.out.println(ee); else if(ok=joptionpane.no_option) 工号.settext(null); 姓名.settext(null); else string warning=该号不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else string warning=必须输入工号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); 4.5 修改员工信息和添加员工信息方法类似,定义number、name、sex三个局部变量,并使用gettext()方法初始化变量。调用isselected()方法设置单选按钮。创建employee类型的“员工”局部变量,调用hastable类中的put()方法将要修改的员工信息写入到散列表“员工表” 中。调用objectinputstream(new fileinputstream ()中的writeobject()把散列表中的数据信息写入到文本文件中。使用trycatch来捕获异常,并进行处理。以下是程序实现修改功能的代码:class xgact implements actionlistener public void actionperformed(actionevent e) string number=工号.gettext(); string name=姓名.gettext(); string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); employee 员工=new employee(); 员工.setnumber(number); 员工.setname(name); 员工.setsex(sex); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 员工表.put(number,员工); outtwo.writeobject(员工表); outtwo.close(); outone.close(); 工号.settext(null); 姓名.settext(null); catch(exception ee) system.out.println(录入修改出现异常!); 修改.setenabled(false); 4.6 删除员工信息构造scact类实现actionlistener接口,在该类中也是以员工信息中的员工号作为关键字,调用objectinputstream(new fileinputstream ()中的readobject()方法读取文本文件中的数据。使用员工表.containskey(number)对关键字进行检测,如果文本框中的员工号和文本文件中的数据相同,程序调用remove()方法把散列表中的该项员工的信息删除,如果文本框中的员工号和文本文件中的数据不相同,则程序调用joptionpane.showmessagedialog()方法提示该员工信息不存在。如果程序获取到员工号文本框中的内容为空,则提示用户输入员工号。以下程序实现为代码:class scact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false); string number=工号.gettext(); if(number.length()0) try intwo=new objectinputstream(new fileinputstream(file); 员工表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(员工表.containskey(number) employee stu=(employee)员工表.get(number); 姓名.settext(stu.getname(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(true); string m=确定要删除该员工的记录吗?; int ok=joptionpane.showconfirmdialog(null,m,确认, joptionpane.yes_no_option,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); catch(exception ee)system.out.println(ee); else if(ok=joptionpane.no_option) 工号.settext(null); 姓名.settext(null); else string warning=该号不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else string warning=必须输入工号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); 4.7 显示员工信息实现actionlistener接口对构造的xsact类用于接收操作事件的侦听器接口。而使用该类创建的对象可使用组件的 addactionlistener 方法向该组件注册。在发生操作事件时,调用该对象的 actionperformed 方法。从而调用sshow()方法实现显示员工信息的功能。 class xsact implements actionlistener public void actionperformed(actionevent e) new sshow(file); 编写sshow类继承jdialog,定义hashtable类的“员工表”、jtextarea类的“显示”和处理字符流的fileinputstream和objectinputstream类型的inone与intwo,并对他们初始化。在sshow()方法中使用jtextarea类设置显示面板,调用jscrollpane方法管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口,最终设置如图所示的显示面板。intwo=new objectinputstream(new fileinputstream(file); 员工表=(hashtable)intwo.readobject(); intwo.close();对文本文件的读取,使用isempty()和append()方法判断散列表中的内容是否为空并把信息显示在jtextarea文本显示区中。实现 enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextelement 方法将返回一系列的连续元素。使用“显示.append(str)” 方法将这些元素追加到显示区域中。以下为程序功能实现的代码: class sshow extends jdialog hashtable 员工表= null; jtextarea 显示=null; fileinputstream inone=null; objectinputstream intwo=null; file file=null; public sshow(file file) super(new jframe(),显示对话框); this.file=file; 显示=new jtextarea(16,30); try intwo=new objectinputstream(new fileinputstream(file); 员工表=(hashtab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论