《java课程设计员工信息管理系统报告.doc》由会员分享,可在线阅读,更多相关《java课程设计员工信息管理系统报告.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学号xx学年 x学期xx面向对象程序设计课程设计报告题目:xxx专业:xx班级:xxxx姓名:xx指导教师:x成绩:xx20xx年 x月xx日目录一、实验目的11.1开发背景11.2系统介绍11.3. 系统面向的用户群体21.4开发环境2二、实验内容22.1设计题目22.2 设计要求22.3设计思路22.4概要设计32.5功能实现3三、设计过程或程序代码34.1主界面设计33.3、实现员工信息的录入53.4、实现员工信息的修改93.5、实现员工信息的查询123.6、实现员工信息的删除14四、设计总结16五、参考文献17六、致谢17一、实验目的通过该课程设计,使同学们进一步理解概JAVA的基本概
2、念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。1.1开发背景我们现在管理员工的信息方式有多种,比如说,有写在纸上放在文件夹里的,有做成excel表格的,也有记录在WORD文档中或打印出来的,等等很多种形式。对于记录在WORD文档中或打印出来的方式,比较方便,随时随地可以查看,不过只能通过查看,没有修改删除方式,如果纸张丢了可能就丢失数据了;对于做成excel表格的的方式,第一也可能文件损坏,第二是查找起来比较困难,需要人工查找,而且更新时不容易,需要涂
3、改以前记录的信息,第三格式比较死板,不利于跟随用户的需求扩展;如此多的方式我们都感觉有一定的缺陷,那我们如何管理我们的员工资料呢?提出一个大胆的假设,如果我们在网络上建立一个WEB系统专门提供员工信息管理功能,这样我们就可以随时随地通过网络对员工信息进行管理,而现在我们的电脑都逐渐更新换代成可以连接计算机网络了,这样我们可以随时随地查找任意信息,查找快速,维护方便,丢失文件也不会丢失员工信息,而且可以根据用户的需要定制,比较灵活,这个可能是最完美的方案了1.2系统介绍开发一个员工信息管理系统,主要有四个部分:增加记录,删除记录,修改记录,查找记录。(1)增加记录模块:可以向该系统中添加用户信息
4、,包括姓名,性别,部门,工资等(2) 删除记录模块:可以对系统中的某一个进行删除,删除一个用户后,该用户的所有信息也被删除。 (3)修改记录:主要用于多系统中的依存信息进行修改。(4)查找记录模块: 在系统中查找某一级路,可以通过工号名查找出该用户的所有信息。1.3. 系统面向的用户群体 本系统用于工作单位组织群体,可以将用户的信息详细的保存下来,避免了手记的繁琐、易损坏、易丢失等缺点。因此,该系统的建成无疑会为广大管理者和用户提供极大的方便1.4开发环境开发平台:Eclipse 开发语言:JAVA服务器:Tomcat框架:struts3.0+hibernate二、实验内容2.1设计题目 员工
5、管理系统2.2 设计要求 (1)完成员工信息的添加、删除、查询、修改功能 (2)使用用户界面操作 (3)使用文件形式完成2.3设计思路 首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。2.4概要设计 面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。2.5功能实现 在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextFie
6、ld、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。三、设计过程或程序代码4.1主界面设计(1)通过继承Jframe类,添加相应的标签Jlabel,Jbutton按钮等。(2)利用setLayout(new FlowLayout(),将布局方式设置为将所有组件从上到下以此添加,如果空间允许,它会尽量将组件放在同一行。(3)系统设计中有欢迎界面与登陆界面所以加入了图片利用ImageIcon im = new ImageIcon(“路径/图片名”)。(4)implements ActionListener 实现事件监听器的接口。(5)public void actio
7、nPerformed(ActionEvent e) button1和button2分别作为进入系统,退出系统的事件监听者。(6)关键代码public class EmployeeManager extends JFrame implements ActionListenerEmployeeSituation 基本信息录入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 录入,修改,查询,删除; Container
8、 con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public EmployeeManager() 录入=new JMenuItem(录入员工基本信息); 修改=new JMenuItem(修改员工基本信息); 查询=new JMenuItem(查询员工基本信息); 删除=new JMenuItem(删除员工基本信息); bar=new JMenuBar(); fileMenu=new JMenu(菜单选项); fileMenu.add
9、(录入); fileMenu.add(修改); fileMenu.add(查询); fileMenu.add(删除); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel(欢迎进入员工信息管理系统,JLabel.CENTER); label.setFont(new Font(SansSerif,Font.BOLD+Font.ITALIC,25); label.setForeground(Color.red); 基本信息=new Hashtable(); 录入.addActionListener(this); 修改.addActionLis
10、tener(this); 查询.addActionListener(this); 删除.addActionListener(this); pCenter.add(欢迎语界面,label); pCenter.add(录入界面,基本信息录入); pCenter.add(修改界面,基本信息修改); pCenter.add(删除界面,基本信息删除); con.add(pCenter,BorderLayout.CENTER); con.validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEve
11、nt e) System.exit(0); setVisible(true); setBounds(100,50,420,380); validate();图 1显示界面3.3、实现员工信息的录入 这里是实现的事员工信息个录入功能,主要是通过对文本框的监听来实现获取文本框里的内容并利用数据输入流进行写入到“基本信息”文件里,主要代码: public void actionPerformed(ActionEvent e) if(e.getSource()=录入) String number=; number=员工号.getText();/获取员工的员工号 if(number.length()0)
12、 try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee)/这是是判断是否存在该员工的基本信息 if(基本信息表.containsKey(number) String warning=该员工基本信息已存在,请到修改页面修改!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPa
13、ne.WARNING_MESSAGE); else/对信息录入进行再一次的确认 String m=基本信息将被录入!; int ok=JOptionPane.showConfirmDialog(this,m,确认,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION)/对输入的信息进行获取 String name=姓名.getText(); String discipling=部门.getSelectedItem(); String grade=工资.getText()
14、; String sex=null; if(男.isSelected() sex=男.getText(); else sex=女.getText(); 员工=new Employee(); 员工.setNumber(number); 员工.setName(name); 员工.setDiscipling(discipling); 员工.setGrade(grade); 员工.setSex(sex); try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 基本信息表.put(number,员工);
15、 outTwo.writeObject(基本信息表); outTwo.close(); outOne.close(); 员工号.setText(null); 姓名.setText(null); 工资.setText(null); catch(Exception ee) System.out.println(ee); else String warning=必须要输入员工号!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); if(e.getSource()=重置) 员工号.setText(n
16、ull); 姓名.setText(null); 部门.remove(部门.getSelectedIndex(); 工资.setText(null);图 2员工信息个录入功能图 3基本信息例录入确认页面图 4录入确认页面3.4、实现员工信息的修改 这里是对员工的金本信息进行修改的类发主要代码,通过事件监听来实现的,首先先判断是否存在该员工,如果存在在对其员工的基本信息进行修改,如果不存在,则出现“该员工不存在”的提示。主要代码:public void actionPerformed(ActionEvent e)if(e.getSource()=开始修改|e.getSource()=员工号)Str
17、ing 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) if(基本信息表.containsKey(number) /判断是否存在此员工,如果存在则可以修改,否则则提示无此员工。 录入修改.setEnabled(true); Em
18、ployee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName(); 部门.getSelectedItem(); 工资.setText(stu.getGrade(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); else 录入修改.setEnabled(false); String warning=该员工号不存在!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.
19、WARNING_MESSAGE); 员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem(); 工资.setText(null);else 录入修改.setEnabled(false); String warning=必须要输入员工号!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); 员工号.setText(null); 姓名.setText(null); 部门.remove(部门.getSelectedItem
20、(); 工资.setText(null); else String warning=该员工号没有基本信息,不能修改!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); 录入修改.setEnabled(false); elseString warning=必须要输入员工号!;JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false);if(e.getSourc
21、e()=重置)/这里实现对员工信息的重置员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem();工资.setText(null);修改员工基本信息页面:图 5修改员工基本信息页面信息修改确认页面:图 6信息修改确认页面图 7修改确认3.5、实现员工信息的查询这是实现对员工信息的查询,通过获取员工的工号和利用数据流对“基本信息“文件的查询来实现的,如果存在该员工信息,则出现相应的员工信息,如果不存在,则提示“无此员工“,主要代码: if(基本信息表.containsKey(number) Employee stu=(Em
22、ployee)基本信息表.get(number); 姓名.setText(stu.getName(); 部门.setText(stu.getDisciping(); 工资.setText(stu.getGrade(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); else String warning=该员工号不存在!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else String
23、 warning=必须要输入员工号!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE);员工基本信息查询页面:员工基本信息查询页面图 8员工基本信息查询页面3.6、实现员工信息的删除本模块是通过员工号来实现对员工的基本信息的插叙,通过事件监听来获取员工的工号,在利用数据流对“基本信息“文件来查询是否有此工号的员工存在,如果存在则可以进行删除操作,如果没有,就提示”该员工不存在“。主要代码: String number=; number=员工号.getText(); if(基本信息表.conta
24、insKey(number) /在基本信息表中查看是否有该员工的工号 Employee stu=(Employee)基本信息表.get(number); 姓名.setText(stu.getName(); 部门.setText(stu.getDisciping(); 工资.setText(stu.getGrade(); if(stu.getSex().equals(男) 男.setSelected(true); else 女.setSelected(true); String m=确定要删除该员工号及全部信息吗?; int ok=JOptionPane.showConfirmDialog(th
25、is,m,确认,JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(ok=JOptionPane.YES_OPTION) 基本信息表.remove(number); try /员工不存在 String warning=该员工号不存在!; JOptionPane.showMessageDialog(this,warning,警告,JOptionPane.WARNING_MESSAGE); else String warning=必须要输入员工号!; JOptionPane.showMessageDialog(this,warn
26、ing,警告,JOptionPane.WARNING_MESSAGE);/删除员工基本信息页面图 9删除员工基本信息页面四、设计总结 经过这次课程的设计,在构思结构、写程序和调试程序的过程中出现的种种错误,让我知道,要做一个优秀的程序员,必须要学会细心认真,可能一点小小的错误就会让人头疼半天,特别那些细微的地方,比如有时会忘了写分号、大括号、没注意if-else的配对、数据库记录的连接对符号的疏忽、对某段程序的层次不够清晰等等。还有要写好一段程序,必须要学会构思这段程序的一个基本框架结构,需要那些哪些函数来实现哪些功能,没有一个清晰的思路是写不出一段好的程序的,还有人是健忘的,程序中函数多的时
27、候,选好合适的标识符亦相当重要,写程序不仅仅是要实现其功能,在实现其功能的同时,更要注意程序的人性化和与使用者的交互性。通过这次课程设计使我进一步明白理论与实际相结合的重要性,也提高了自.己组织数据及编写程序的能力,使我们能够根据问题要求和数据对象的特性,学会数据组织的方法,把现实中的问题在计算机内部表示出来并用计算机语言解决,培养良好的程序设计技能,掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务,锻炼自己的动脑能力,学会用自己的思路解决现实中的实际问题。这次课程设计,不仅让我们及时巩固的了java面向对象的知识,并明白数据数据库和算法在实际应用中的重要性,以及软件的开发流
28、程和工具对于实现特定功能程序的重要意义,还有对java类库的熟悉和对某个问题的解决方法的思考尤为重要。整个问题只需要实现一个职工信息管理系统,那就是在这个系统中实现职工信息的录入、更新、删除、查询、以及对用户信息的录入、更新。修改、查询等功能。但是,但要写好也不是一件容易的事,为了实现该功能,我们需要优秀的算法和数据结构以保证实现的时间和空间效率,需要对java、类库以及数据库的知识有通透的了解,。当我们面对一个实际问题,应该迅速根据问题性质和特点抽象成特定的数据结构,当然每个问题都有可能能够抽象成多种数据结构,每种数据结构适应于不同的算法。因此应该综合考虑这样的数据结构、算法以及它们的空间和
29、时间效率,然后从中选择一个作为实现程序的基础。因此,要写好一段程序,写程序前一定要做好全面的构思,并用计算机语言把现实的问题形象体现出来,以达到解决实际问题的需要,还需要能熟练的掌握和运用我们所学的知识。五、参考文献1曲朝阳,杨杰明等.Java程序设计. 北京: 清华大学出版社,2008.102耿祥以,张跃平.Java大学生实用教程. 北京: 电子工业出版社,2012.6 3明日科技.Java经典编程.北京:清华大学出版社,2012.104李尊朝,苏军.Java语言程序设计.北京:中国铁道出版社,2004.25王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990.6张帆 JAVA范例开发大全. 背景:清华大学出版社,2010.6六、致谢经过这些天的努力,我们终于顺利完成了这次面向对象java课程设计,在这里,首先要感谢指导老师姚老师在知识和技术上的大力支持和指导。在王老师的指导下下,我们克服了技术和思路上很多令人头疼的难题,进一步规范了我们对报告的书写,同时也更深入的了解了面向对象java语言、算法和数据库的重要性,顺利地完成这次课程设计。
限制150内