1、1IT 认知实习报告学生姓名: * 班 级: * 指导教师: * 2014 年 3 月 1 日21. 实验题目IT 认知实习2.实习目的IT 认知实习是软件工程专业教学计划中规定的一个重要实践环节,是增强学生了解软件开发流程和软件项目规范化管理流程的一项重要措施。通过 IT 认知实习让学生初步了解 IT 企业的软件生产流程,对软件开发有更加感性的认知,为培养学生规范的软件开发技能和意识提供帮助;同时通过对 IT 企业文化的认知和了解,增强学生严于律己的思想意识,激发并提高学生在以后学习中的兴趣,同时也能给学生后面的学习提供方向和参考。3.主要任务介绍某企业的人文环境、企业的规章制度、企业对 I
2、T 人才的需求标准;合实际项目、围绕软件开发生命周期讲解软件开发过程中各阶段任务、实施步骤、常见问题,介绍目前流行的软件开发工具和主流技术;同时介绍软件项目管理中的常见问题;了解企业在项目开发过程中的分工协作。4.实习要求通过实习后,学生能熟悉软件项目开发的整个流程,包括软件分析、设计、编码及测试等环节规范化的生产流程;了解并熟悉规范化软件文档的书写规范,具备一定的文档撰写能力;能进一步熟悉某个应用领域的主流技术和开发平台,具备应用相关技术和平台独立开发某个应用软件的基本能力;通过实习逐步具有良好的团队合作意识、工程职业素养、忠诚度和社会责任感;通过实习培养发现问题、认识问题、分析问题及解决问
3、题的能力,逐步提高自学能力和动手能力;为成为应用型软件工程师打下良好的基础。5. 实习过程第一天,老师给我讲解了作为一名 IT 应具备的素养以及 IT 的发展。第二天,中兴老师讲软件测试有关知识。第三天:有中兴老师带领我们学习把学的知识怎么用到实际项目中。第四天:对分析报告进行检查,同时写好报告总结。6.实习图表基础功能编写连接绘图书写导入文件导出文件确定取消搜索辅助功能3摘 要JAVA 不仅是一门最为流行的计算机语言,而且已经形成一种专门的技术,带来了 20 世纪末和本世纪初网络科技和网络经济超常发展。JAVA 的与平台无关性、高可靠性、安全机制和内嵌网络支持等特性使它成为编写网络应用程序的
4、首选工具之一。从另一方面来看,软件开发的规模也日渐扩大,对软件质量的要求越来越高,与之相对应的是,各种软件技术和工具层出不穷,各种软件开发、软件质量控制、软件管理法方法学业日渐成熟,在现有的一些项目中(比如呼叫中心,电子政务等) ,往往包括系统管理员,业务员和用户几类大的使用群体,其中对于业务人员,他们的流动性很大,人员构成不一,往往需要单独的系统进行绩效管理和业务技能培训,以此延伸出人员管理系统。伴随项目的发展,业务开展的广泛和深入,人员管理也逐渐成为项目辅助系统中非常关键的一个环节,对客户后续发展提供着专业的支撑作用。该程序是利用文件来实现的,程序的重要作用是对员工信息进行管理,包括员工信
5、息的添加、查询、修改、删除、绩效考核、到勤情况。明确 JAVA 在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在 JAVA 程序设计中的应用。关键词:面向对象、软件开发、继承、员工管理、javaEE4目 录1 设计目的 42 设计问题 43 概要设计 44 详细设计 54.1 定义员工类 .54.2 主程序 .64.3 实现员工信息的录入 104.4 实现员工信息的修改 164.5 实现员工信息的查询 234.6 实现员工信息的删除 264.7 实现员工每日的考勤.314.8 实现员工绩效的考核.355 设计总结 41参考文献 42致 谢 425公司员工管理系统一、设计目的在
6、现有的一些项目中(比如呼叫中心,电子政务等) ,往往包括系统管理员,业务员和用户几类大的使用群体,其中对于业务人员,他们的流动性很大,人员构成不一,往往需要单独的系统进行绩效管理和业务技能培训,以此延伸出人员管理系统。伴随项目的发展,业务开展的广泛和深入,人员管理也逐渐成为项目辅助系统中非常关键的一个环节,对客户后续发展提供着专业的支撑作用。原有人员管理系统由各项目自行开发和维护,为了提高研发效率,项目也希望能将员工系统平台化,组件化,已提高研发效率。通过分析,基于绩效管理模式和业务技能培训模式的系统中,我们考虑将其分解为考勤,绩效考核,培训,考试这四个子类进行抽象整理,整合为人员管理系统版本
7、,以便能被不同项目复用。6E M S系统管理员管理者培训员员工培训 、 考试 / 信息获取系统管理系统监控考勤 / 信息反馈任务下达 / 员工管理人事数据录入员工信息获取培训任务 / 考试任务下达员工培训 / 考试信息获取其他系统绩效信息录入薪酬基础数据二、设计问题设计题目:公司员工管理系统设计要求:(1)本软件需要具备以下主要功能:a) 支持员工考勤功能b) 支持员工绩效考核功能c) 支持员工信息录入d) 支持员工信息删除e) 支持员工信息修改f) 支持员工信息查询(2)项目技术要求: 开发平台:JAVAEE 开发语言:Java7 系统采用流行的B/S体系结构 应用服务器:Tomcat7.0
8、 数据库服务器:Mysql5.1或者Oracle11g 考虑系统的针对性,安全性,易用性, 系统具有良好的扩充性设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对公司员工信息的管理。三、概要设计面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为 CardLayout,最后将面板添加进容器。功能实现:在录入、查询、修改、删除、考勤、绩效考核界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextFiel
9、d、Choice 为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。四、详细设计1、定义员工类:class Employee implements java.io.SerializableString number,name,discipling,grade,borth,sex,check,reason,content;public Employee()public void setNumber(String number)this.number=number;public String getNumber()return number;public void setName(S
10、tring name)this.name=name;public String getName()8return name;public void setDiscipling(String discipling)this.discipling=discipling;public String getDisciping()return discipling;public void setGrade(String grade)this.grade=grade;public String getGrade()return grade;public void setBorth(String borth
11、)this.borth=borth;public String getBorth()return borth;public void setSex(String sex)this.sex=sex;public String getSex()return sex;public void setCheck(String check)this.check=check;public String getCheck()return check;public void setReason(String reason)this.reason=reason;9public String getReason()
12、return reason;public void setContent(String content)this.content=content;public String getContent()return content;2、主程序:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable; public class EmployeeManager extends JFrame implements ActionListenerEmp
13、loyeeSituation 基本信息录入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查询=null; Delete 基本信息删除=null; EmployeeCheck 员工每日考勤=null;EperformanceAppraisal 绩效考核情况=null;JMenuBar bar; JMenu fileMenu;JMenuItem 录入,修改,查询,删除,考勤,奖惩; Container con=null;Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel
14、 label=null; JPanel pCenter;public EmployeeManager()录入=new JMenuItem(“录入员工基本信息“);修改=new JMenuItem(“修改员工基本信息“);查询=new JMenuItem(“查询员工基本信息“);删除=new JMenuItem(“删除员工基本信息“);考勤=new JMenuItem(“考查员工每日考勤“);奖惩=new JMenuItem(“员工绩效考核情况“);bar=new JMenuBar();10fileMenu=new JMenu(“菜单选项“);fileMenu.add(录入);fileMenu.
15、add(修改);fileMenu.add(查询);fileMenu.add(删除);fileMenu.add(考勤);fileMenu.add(奖惩);bar.add(fileMenu);setJMenuBar(bar);label=new JLabel(“*欢迎进入公司人员管理系统*“,JLabel.CENTER);label.setFont(new Font(“SansSerif“,Font.BOLD,25);label.setForeground(Color.red);基本信息=new Hashtable();录入.addActionListener(this);修改.addAction
16、Listener(this);查询.addActionListener(this);删除.addActionListener(this);考勤.addActionListener(this);奖惩.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();pCenter.setLayout(card); pCenter.setBackground(Color.BLACK);file=new File(“基本信息.txt“);if(!file.exists()tryFileOut
17、putStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);objectOut.writeObject(基本信息);objectOut.close();out.close();catch(IOException e) 基本信息录入=new EmployeeSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);1
18、1员工每日考勤=new EmployeeCheck(file);绩效考核情况=new EperformanceAppraisal(file);pCenter.add(“欢迎语界面“,label);pCenter.add(“录入界面“,基本信息录入);pCenter.add(“修改界面“,基本信息修改); pCenter.add(“删除界面“,基本信息删除);pCenter.add(“考勤界面“,员工每日考勤);pCenter.add(“奖惩界面“,绩效考核情况);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListe
19、ner(new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0););setVisible(true);setBounds(100,50,420,380);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=录入)card.show(pCenter,“录入界面“);else if(e.getSource()=修改)card.show(pCenter,“修改界面“);else if(e.getSource()=查询)基
20、本信息查询.setVisible(true);else if(e.getSource()=删除)card.show(pCenter,“删除界面“);else if(e.getSource()=考勤)card.show(pCenter,“考勤界面“);else if(e.getSource()=奖惩)12card.show(pCenter,“奖惩界面“);public static void main(String args)new EmployeeManager();结果截图显示:133、实现员工信息的录入:class EmployeeSituation extends JPanel impl
21、ements ActionListener Hashtable 基本信息表=new Hashtable(); JTextField 员工号,姓名,工资; Choice 部门;JRadioButton 男,女;Employee 员工=null;ButtonGroup group=null;JButton 录入,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null; public Emp
22、loyeeSituation(File file)this.file=file;员工号=new JTextField(10);姓名=new JTextField(10);部门=new Choice();部门.add(“请选择“);14部门.add(“研发部“);部门.add(“销售部“);部门.add(“人事部“);部门.add(“安全部“);工资=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(“男“,true);女=new JRadioButton(“女“,false);group.add(男);group.add
23、(女);录入=new JButton(“录入“);重置=new JButton(“重置“);录入.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox(); box1.add(new JLabel(“员工号:“,JLabel. CENTER);box1.add(员工号);Box box2=Box.createHorizontalBox(); box2.add(new JLabel(“姓名:“,JLabel. CENTER);box2.add(姓名);Box box3=Box.cre
24、ateHorizontalBox(); box3.add(new JLabel(“性别:“,JLabel. CENTER);box3.add(男);box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(“部门:“,JLabel. CENTER);box4.add(部门);Box box6=Box.createHorizontalBox();box6.add(new JLabel(“ “,JLabel.CENTER);Box box5=Box.createHorizontalBox(); box5.add(new
25、 JLabel(“工资:“,JLabel. CENTER);box5.add(工资);Box boxH=Box.createVerticalBox(); boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.white);setLayout(new Bor
26、derLayout();15add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入);pSouth.add(重置);pSouth.setBackground(Color.black);add(pSouth,BorderLayout.SOUTH);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=录入)String number=“;number=员工号.getText();if(number.length()0)t
27、ry 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,“警告“,JOptionPane.WARNING_MESSAGE);el
28、se 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();16String sex=null;if(男.isSelected() sex=男.getText
29、();else sex=女.getText();员工=new Employee();员工.setNumber(number);员工.setName(name);员工.setDiscipling(discipling);员工.setGrade(grade);员工.setSex(sex);tryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,员工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();员工号.s
30、etText(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(null);姓名.setText(null);部门.remove(部门.getSelectedIndex();工资.setText(
31、null);结果截图显示:1718194、实现员工信息的修改:class ModifySituation extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 员工号,姓名,工资; Choice 部门;JRadioButton 男,女;ButtonGroup group=null;JButton 开始修改,录入修改,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;Object
32、OutputStream outTwo=null;File file=null; public ModifySituation(File file)this.file=file;员工号=new JTextField(10);姓名=new JTextField(10); 部门=new Choice();部门.add(“请选择“);部门.add(“研发部“);部门.add(“销售部“);部门.add(“人事部“);部门.add(“安全部“);工资=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(“男“,true);女=ne
33、w JRadioButton(“女“,false);group.add(男);group.add(女);开始修改=new JButton(“开始修改“);录入修改=new JButton(“录入修改“);录入修改.setEnabled(false);重置=new JButton(“重置“);员工号.addActionListener(this);开始修改.addActionListener(this);20录入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox(); box
34、1.add(new JLabel(“输入要修改信息的员工号:“,JLabel. CENTER);box1.add(员工号);box1.add(开始修改);Box box2=Box.createHorizontalBox(); box2.add(new JLabel(“姓名:“,JLabel. CENTER);box2.add(姓名);Box box3=Box.createHorizontalBox(); box3.add(new JLabel(“性别:“,JLabel. CENTER);box3.add(男);box3.add(女);Box box4=Box.createHorizontalB
35、ox(); box4.add(new JLabel(“部门:“,JLabel. CENTER);box4.add(部门);Box box6=Box.createHorizontalBox(); box6.add(new JLabel(“ “,JLabel.CENTER);Box box5=Box.createHorizontalBox(); box5.add(new JLabel(“工资:“,JLabel. CENTER);box5.add(工资);Box boxH=Box.createVerticalBox(); boxH.add(box1);boxH.add(box2);boxH.add(
36、box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue(); JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.white);setLayout(new BorderLayout();add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入修改);pSouth.add(重置);pSouth.setBa
37、ckground(Color.black);add(pSouth,BorderLayout.SOUTH);validate();public void actionPerformed(ActionEvent e) if(e.getSource()=开始修改|e.getSource()=员工号)21String number=“;number=员工号.getText();if(number.length()0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.
38、readObject();inOne.close();inTwo.close();catch(Exception ee)if(基本信息表.containsKey(number) 录入修改.setEnabled(true);Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName();部门.getSelectedItem();工资.setText(stu.getGrade();if(stu.getSex().equals(“男“)男.setSelected(true);else女.setSelected(true); else
39、 录入修改.setEnabled(false);String warning=“该员工号不存在!“;JOptionPane.showMessageDialog(this,warning,“警告“,JOptionPane. WARNING_MESSAGE);员工号.setText(null);姓名.setText(null); 部门.remove(部门.getSelectedItem();工资.setText(null);else22 录入修改.setEnabled(false); String warning=“必须要输入员工号!“;JOptionPane.showMessageDialog(
40、this,warning,“警告“,JOptionPane.WARNING_MESSAGE);员工号.setText(null);姓名.setText(null); 部门.remove(部门.getSelectedItem();工资.setText(null); else if(e.getSource()=录入修改) String number=“;number=员工号.getText();if(number.length()0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hasht
41、able)inTwo.readObject();inOne.close();inTwo.close(); catch(Exception ee)if(基本信息表.containsKey(number) String question=“该员工基本信息已存在,您想修改他(她)的基本信息吗?“;JOptionPane.showMessageDialog(this,question,“警告“,JOptionPane.QUESTION_MESSAGE);String m=“基本信息将被修改!“;int ok=JOptionPane.showConfirmDialog(this,m,“确认“,JOpti
42、onPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);if(ok=JOptionPane.YES_OPTION)String name=姓名.getText();String discipling=部门.getSelectedItem();String grade=工资.getText();String sex=null;if(男.isSelected()23sex=男.getText();elsesex=女.getText();Employee 员工=new Employee();员工.setNumber(number);员工.setNa
43、me(name);员工.setDiscipling(discipling);员工.setGrade(grade);员工.setSex(sex);tryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,员工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();员工号.setText(null);姓名.setText(null); 部门.remove(部门.getSelectedItem();工资.setTex
44、t(null);catch(Exception ee) System.out.println(ee);录入修改.setEnabled(false); else if(ok=JOptionPane.NO_OPTION)录入修改.setEnabled(true);elseString warning=“该员工号没有基本信息,不能修改!“;JOptionPane.showMessageDialog(this,warning,“警告“,JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false); 24elseString warning=“必须要输入员工号!
45、“;JOptionPane.showMessageDialog(this,warning,“警告“,JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false);if(e.getSource()=重置) 员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem();工资.setText(null);结果截图显示:25265、实现员工信息的查询:class Inquest extends JDialog implements ActionListener Hashtable 基本信息表
46、=null; JTextField 员工号,姓名,部门,工资; JRadioButton 男,女;JButton 查询;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null; public Inquest(JFrame f,File file)super(f,“查询对话框“,false); this.file=file;员工号=new JTextField(10);查询=new JButton(“查询“);员工号.addActionListener(this);
47、查询.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);27部门=new JTextField(10);部门.setEditable(false);工资=new JTextField(10);工资.setEditable(false);男=new JRadioButton(“男“,false);女=new JRadioButton(“女“,false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox(); box1.add(new JLabel(“输入要查询的员工号:“,JLabel. CENTER);box1.add(员工号);box1.add(查询);Box box2=Box.createHorizontalBox(); box2.add(new JLabel(“姓名:“,JLabel. CENTER);box2.add(姓名);Box box3=Box.createHorizontalBox(); box3.add(new JLa