1、 1 课程设计(论文)任务书 学 院 理学院 专 业 信息与计算科学 学生姓名 班级学号 0809010223 课程名称 JAVA 程序设计课程设计 课程设计(论文)题目 员工信息管理系统 设计 题目 : 使用 JAVA语言及 Eclipse开发工具设计并实现员工信息管理系统。 设计任务: 1、设计一个员工管理系统 2、利用图形用户界面实现程序的运行 3、实现员工信息的添加、删除、查询、和修改等功能 4、应用文件的相关知识来完成 计划与进度安排: 十七周:周一、周四选题进行程序的设计 十八周:周一设计 的辅导;周四课程设计检查答辩 成绩: 指导教师(签字): 2010 年 7月 8日 专业负责
2、人(签字): 2010 年 7月 18 日 主管院长(签字): 2010 年 7月 19日 2 摘 要 JAVA 不仅是一门最为流行的计算机语言,而且已经形成一种专门的技术,带来了 20世纪末和本世纪初网络科技和网络经济超常发展。 JAVA 的与平台无关性、高可靠性、安全机制和内嵌网络支持等特性使它成为编写网络应用程序的首选工具之一。 从另一方面来看,软件开发的规模也日渐扩大,对软件质量的要求越来 越高,与之相对应的是,各种软件技术和工具层出不穷,各种软件开发、软件质量控制、软件管理法方法学业日渐成熟。面对软件发展的这一现状和趋势,无论是拥有计算机基础知识的学生还是 IT 领域的起步者,熟练掌
3、握一门语言都是至关重要的。JAVA 是一个面向对象的程序设计软件,它将重点放在数据和对象的接口上,与C+相比的主要不同在于多继承,在 JAVA 中,取而代之的是简单的接口,以及JAVA 的元类模型。这也很大程度上给我们初学编程的人带来很呆的方便,也使我们更容易掌握 JAVA 编程的一些基本要领和深层知识。 该程序是利用文件来实 现的,程序的重要作用是对员工信息进行管理,包括员工信息的添加、查询、修改、删除。 通过该课程设计,使同学们进一步理解概JAVA 的基本概念、理论和方法,初步掌握 JDK、 Eclipse 的调试和应用,以及程序中错误的解决方法,明确 JAVA 在实际程序设计中的应用。使
4、课堂中学习到理论得到应用,练习文件形式在 JAVA 程序设计中的应用。 关键词: 面向对象 、软件开发、继承、员工管理 3 目 录 1 设计目的 .错误 !未定义书签。 2 设计问题 . 1 3 概要设计 . 1 4 详细设计 . 1 4.1 定义员工类 . 1 4.2 主程序 . 3 4.3 实现员工信息的录入 . 6 4.4 实现员工信息的修改 . 11 4.5 实现员工信息的查询 . 18 4.6 实现员工信息的删除 . 22 5 设计总结 . 26 参考文献 . 27 致 谢 . 27 4 员工管理系统 一、设计目的 通过该课程设计,使同学们进一步理解概 JAVA 的基本概念、理论和方
5、法,初步掌握 JDK、 Eclipse 的调试和应用,以及程序中错误的解决方法,明确 JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习 文件形式在 JAVA程序设计中的应用。 二、设计问题 设计题目: 员工管理系统 设计要求 :( 1) 完成员工信息的添加、删除、查询、修改功能 ( 2) 使用用户界面操作 ( 3) 使用文件形式完成 设计思路: 首先设计 界面进入 面板, 在面板中添加菜单选项,并将要实现的功能选项添加其中 , 然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。 三、概要设计 面板设计: 首先设计一个容器,然后再容器中添加菜单,在
6、菜单中添加选项,并在容器中加入面板,面板布局设置为 CardLayout,最后将面板添加进容器。 功能实现:在录入、查询、修改和删除界面中使用 JButton、 JLabel、 ButtonGroup、JRadioButton、 JTextField、 Choice 为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。 四、详细设计 1、 定义员工类: public class Employee implements java.io.Serializable String number,name,discipling,grade,borth,sex; public Employee
7、() public void setNumber(String number) this.number=number; public String getNumber() 5 return number; public void setName(String name) this.name=name; public String getName() return name; public void setDiscipling(String discipling) this.discipling=discipling; public String getDisciping() return di
8、scipling; public void setGrade(String grade) this.grade=grade; public String getGrade() return grade; public void setBorth(String borth) this.borth=borth; public String getBorth() return borth; public void setSex(String sex) this.sex=sex; public String getSex() return sex; 6 2、 主程序: import java.awt.
9、*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.Hashtable; public class EmployeeManager extends JFrame implements ActionListener EmployeeSituation 基本信息录入 =null; ModifySituation 基本信息修 改 =null; Inquest 基本信息查询 =null; Delete 基本信息删除 =null; JMenuBar bar; JMenu fileMenu
10、; JMenuItem 录入 ,修改 ,查询 ,删除 ; Container 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
11、=new JMenuBar(); fileMenu=new JMenu(“菜单选项 “); 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+Font.ITALIC,25); label.setForeground(Color.red
12、); 基本信息 =new Hashtable(); 录入 .addActionListener(this); 修改 .addActionListener(this); 查询 .addActionListener(this); 删除 .addActionListener(this); card=new CardLayout(); 7 con=getContentPane(); pCenter=new JPanel(); pCenter.setLayout(card); pCenter.setBackground(Color.yellow); file=new File(“基本信息 .txt“);
13、 if(!file.exists() try FileOutputStream 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 Inq
14、uest(this,file); 基本信息删除 =new Delete(file); pCenter.add(“欢迎语界面 “,label); pCenter.add(“录入界面 “,基本信 息录入 ); pCenter.add(“修改界面 “,基本信息修改 ); pCenter.add(“删除界面 “,基本信息删除 ); con.add(pCenter,BorderLayout.CENTER); con.validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) Syst
15、em.exit(0); ); setVisible(true); setBounds(100,50,420,380); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=录入 ) 8 card.show(pCenter,“录入界面 “); else if(e.getSource()=修改 ) card.show(pCenter,“修改界面 “); else if(e.getSource()=查询 ) 基本信息查询 .setVisible(true); else if(e.getSource()=删除
16、) card.show(pCenter,“删除界面 “); public static void main(String args) new EmployeeManager(); 9 3、 实现员工信息的录入: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class EmployeeSituation extends JPanel implements ActionListener Hashtable 基本信息表 =n
17、ull; 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 EmployeeSituation(File file) this.f
18、ile=file; 员工号 =new JTextField(10); 姓名 =new JTextField(10); 10 部门 =new Choice(); 部门 .add(“请选择 “); 部门 .add(“研发部 “); 部门 .add(“销售部 “); 部门 .add(“人事部 “); 部门 .add(“安全部 “); 工资 =new JTextField(10); group=new ButtonGroup(); 男 =new JRadioButton(“男 “,true); 女 =new JRadioButton(“女 “,false); group.add(男 ); group.
19、add(女 ); 录入 =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(
20、姓名 ); Box box3=Box.createHorizontalBox(); 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 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);