员工管理系统Java课程设计教程文件.doc
《员工管理系统Java课程设计教程文件.doc》由会员分享,可在线阅读,更多相关《员工管理系统Java课程设计教程文件.doc(23页珍藏版)》请在咨信网上搜索。
员工管理系统Java课程设计 课程设计(论文)任务书 学院 *学院 专 业 ******* 学生姓名 班级学号 ******* 课程名称 Java语言程序设计 课程设计(论文)题目 员工信息管理系统 设计目的: 1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力; 3)培养学生在项目开发中的团队合作精神、创新意识及能力。 设计要求(技术参数): 1)对系统进行需求分析及可行性分析 系统实现的目的,项目开发的背景,系统要达到的目标,开发系统所用的开发环境,预期使用的用户等。 2)对系统进行总体设计 分析系统的功能结构模块,并给出系统的功能结构图,设计要符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。 3)详细设计 设计所需的数据表,给出所需数据表的字段名称,数据类型,字符长度,字段说明,约束条件。编码实现每个子功能模块,并进行测试。 计划与进度安排: 周一 全天:设计解决问题方法 周四1~4节:调试程序 周一 全天:调试程序 周四1~4节:完成论文,答辩 成绩: 指导教师(签字): 年月日 专业负责人(签字): 年月日 主管院长(签字): 年月日 摘要 Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。 随着目前公司规模的渐渐扩大,员工管理将成为意见不得不总是的问题。有些公司人员流动较大,而且人数动辄上百人,,若采用传统的方式进行管理,不仅易出错更是一件令人痛疼的事。随着计算机的诞生,在此领域产生众多的信息管理系统来管理信息,不仅信息处理方便,而且简单强大。本系统正事其中的一项,针对员工信息管理,方便公司对员工的信息进行处理,极大减少了人事管理的工作量。另一方面,本系统中所涉及到图形用户界面设计是我们学习程序设计这门课的难点兼重点,通过审计本系统不仅巩固了我们的基础,以及程序设计能力,还锻炼了我们对程序设计的流程及大体上的把握不仅如此,在设计过程中,我们的调试能力也得到增强。使我们对设计“大程序”有了经验。目前,无论是机关、事业单位、还是企业单位,员工管理对于组织生存与长远发展所具备的重要性都已经有了明确的认识,而员工管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助.在现代化的企业管理中,员工管理系统有着十分重要的作用! 关键词:文件和流 界面设计GUI 异常处理 Hashtable类 目 录 一、设计目的 2 二、设计问题 3 2.1课设问题 3 2.2设计思路 4 三、概要设计 6 3.1程序功能模块设计的实现 6 3.2系统总体结构 7 3.3员工信息面板功能的实现 7 3.4员工界面功能模块设计的实现 8 四、详细设计 8 4.1定义程序变量 8 4.2程序面板设计 9 4.3录入员工信息 10 4.4查询员工信息 10 4.5修改员工信息 10 4.6删除员工信息 10 4.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){ this.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();} else{sex=女.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();} else{sex=女.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()把散列表中的数据信息写入到文本文件中。使用try{}catch来捕获异常,并进行处理。以下是程序实现修改功能的代码: class XGAct implements ActionListener{ public void actionPerformed(ActionEvent e){ String number=工号.getText(); String name=姓名.getText(); String sex=null; if(男.isSelected()){sex=男.getText();} else{sex=女.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();- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 系统 Java 课程设计 教程 文件
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文