JAVA课程设计论文.docx
《JAVA课程设计论文.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计论文.docx(43页珍藏版)》请在冰豆网上搜索。
JAVA课程设计论文
课程设计(论文)任务书
学院
理学院
专业
信息与计算科学
学生姓名
班级学号
课程名称
JAVA程序设计课程设计
课程设计(论文)题目
员工信息管理系统
设计题目:
使用JAVA语言及Eclipse开发工具设计并实现员工信息管理系统。
设计任务:
1、设计一个员工管理系统
2、利用图形用户界面实现程序的运行
3、实现员工信息的添加、删除、查询、和修改等功能
4、应用文件的相关知识来完成
计划与进度安排:
十七周:
周一、周四选题进行程序的设计
十八周:
周一设计的辅导;周四课程设计检查答辩
成绩:
指导教师(签字):
2010年7月8日
专业负责人(签字):
2010年7月18日
主管院长(签字):
2010年7月19日
摘要
JAVA不仅是一门最为流行的计算机语言,而且已经形成一种专门的技术,带来了20世纪末和本世纪初网络科技和网络经济超常发展。
JAVA的与平台无关性、高可靠性、安全机制和内嵌网络支持等特性使它成为编写网络应用程序的首选工具之一。
从另一方面来看,软件开发的规模也日渐扩大,对软件质量的要求越来越高,与之相对应的是,各种软件技术和工具层出不穷,各种软件开发、软件质量控制、软件管理法方法学业日渐成熟。
面对软件发展的这一现状和趋势,无论是拥有计算机基础知识的学生还是IT领域的起步者,熟练掌握一门语言都是至关重要的。
JAVA是一个面向对象的程序设计软件,它将重点放在数据和对象的接口上,与C++相比的主要不同在于多继承,在JAVA中,取而代之的是简单的接口,以及JAVA的元类模型。
这也很大程度上给我们初学编程的人带来很呆的方便,也使我们更容易掌握JAVA编程的一些基本要领和深层知识。
该程序是利用文件来实现的,程序的重要作用是对员工信息进行管理,包括员工信息的添加、查询、修改、删除。
通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。
使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。
关键词:
面向对象、软件开发、继承、员工管理
目录
1设计目的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
员工管理系统
一、设计目的
通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。
使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。
二、设计问题
设计题目:
员工管理系统
设计要求:
(1)完成员工信息的添加、删除、查询、修改功能
(2)使用用户界面操作
(3)使用文件形式完成
设计思路:
首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。
通过文件类型知识的应用,实现对员工信息的管理。
三、概要设计
面板设计:
首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。
功能实现:
在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。
四、详细设计
1、定义员工类:
publicclassEmployeeimplementsjava.io.Serializable
{
Stringnumber,name,discipling,grade,borth,sex;
publicEmployee()
{
}
publicvoidsetNumber(Stringnumber)
{
this.number=number;
}
publicStringgetNumber()
{
returnnumber;
}
publicvoidsetName(Stringname)
{
this.name=name;
}
publicStringgetName()
{
returnname;
}
publicvoidsetDiscipling(Stringdiscipling)
{
this.discipling=discipling;
}
publicStringgetDisciping()
{
returndiscipling;
}
publicvoidsetGrade(Stringgrade)
{
this.grade=grade;
}
publicStringgetGrade()
{
returngrade;
}
publicvoidsetBorth(Stringborth)
{
this.borth=borth;
}
publicStringgetBorth()
{
returnborth;
}
publicvoidsetSex(Stringsex)
{
this.sex=sex;
}
publicStringgetSex()
{
returnsex;
}}
2、主程序:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.Hashtable;
publicclassEmployeeManagerextendsJFrameimplementsActionListener
{
EmployeeSituation基本信息录入=null;
ModifySituation基本信息修改=null;
Inquest基本信息查询=null;
Delete基本信息删除=null;
JMenuBarbar;
JMenufileMenu;
JMenuItem录入,修改,查询,删除;
Containercon=null;
Hashtable基本信息=null;
Filefile=null;
CardLayoutcard=null;
JLabellabel=null;
JPanelpCenter;
publicEmployeeManager()
{
录入=newJMenuItem("录入员工基本信息");
修改=newJMenuItem("修改员工基本信息");
查询=newJMenuItem("查询员工基本信息");
删除=newJMenuItem("删除员工基本信息");
bar=newJMenuBar();
fileMenu=newJMenu("菜单选项");
fileMenu.add(录入);
fileMenu.add(修改);
fileMenu.add(查询);
fileMenu.add(删除);
bar.add(fileMenu);
setJMenuBar(bar);
label=newJLabel("欢迎进入员工信息管理系统",JLabel.CENTER);
label.setFont(newFont("SansSerif",Font.BOLD+Font.ITALIC,25));
label.setForeground(Color.red);
基本信息=newHashtable();
录入.addActionListener(this);
修改.addActionListener(this);
查询.addActionListener(this);
删除.addActionListener(this);
card=newCardLayout();
con=getContentPane();
pCenter=newJPanel();
pCenter.setLayout(card);
pCenter.setBackground(Color.yellow);
file=newFile("基本信息.txt");
if(!
file.exists())
{
try
{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOExceptione)
{
}
}
基本信息录入=newEmployeeSituation(file);
基本信息修改=newModifySituation(file);
基本信息查询=newInquest(this,file);
基本信息删除=newDelete(file);
pCenter.add("欢迎语界面",label);
pCenter.add("录入界面",基本信息录入);
pCenter.add("修改界面",基本信息修改);
pCenter.add("删除界面",基本信息删除);
con.add(pCenter,BorderLayout.CENTER);
con.validate();
addWindowListener(newWindowAdapter()
{
publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}});
setVisible(true);
setBounds(100,50,420,380);
validate();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==录入)
{
card.show(pCenter,"录入界面");
}
elseif(e.getSource()==修改)
{
card.show(pCenter,"修改界面");
}
elseif(e.getSource()==查询)
{
基本信息查询.setVisible(true);
}
elseif(e.getSource()==删除)
{
card.show(pCenter,"删除界面");
}
}
publicstaticvoidmain(Stringargs[])
{
newEmployeeManager();
}}
3、实现员工信息的录入:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassEmployeeSituationextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null;
JTextField员工号,姓名,工资;
Choice部门;
JRadioButton男,女;
Employee员工=null;
ButtonGroupgroup=null;
JButton录入,重置;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
Filefile=null;
publicEmployeeSituation(Filefile)
{
this.file=file;
员工号=newJTextField(10);
姓名=newJTextField(10);
部门=newChoice();
部门.add("请选择");
部门.add("研发部");
部门.add("销售部");
部门.add("人事部");
部门.add("安全部");
工资=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
录入=newJButton("录入");
重置=newJButton("重置");
录入.addActionListener(this);
重置.addActionListener(this);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("员工号:
",JLabel.CENTER));
box1.add(员工号);
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("姓名:
",JLabel.CENTER));
box2.add(姓名);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("性别:
",JLabel.CENTER));
box3.add(男);
box3.add(女);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("部门:
",JLabel.CENTER));
box4.add(部门);
Boxbox6=Box.createHorizontalBox();
box6.add(newJLabel("",JLabel.CENTER));
Boxbox5=Box.createHorizontalBox();
box5.add(newJLabel("工资:
",JLabel.CENTER));
box5.add(工资);
BoxboxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box5);
boxH.add(box6);
boxH.add(box4);
boxH.add(Box.createVerticalGlue());
JPanelpCenter=newJPanel();
pCenter.add(boxH);
pCenter.setBackground(Color.yellow);
setLayout(newBorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanelpSouth=newJPanel();
pSouth.add(录入);
pSouth.add(重置);
pSouth.setBackground(Color.yellow);
add(pSouth,BorderLayout.SOUTH);
validate();
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==录入)
{
Stringnumber="";
number=员工号.getText();
if(number.length()>0)
{
try
{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
基本信息表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee)
{
}
if(基本信息表.containsKey(number))
{
Stringwarning="该员工基本信息已存在,请到修改页面修改!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}
else
{
Stringm="基本信息将被录入!
";
intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION)
{
Stringname=姓名.getText();
Stringdiscipling=部门.getSelectedItem();
Stringgrade=工资.getText();
Stringsex=null;
if(男.isSelected())
{
sex=男.getText();
}
else
{
sex=女.getText();
}
员工=newEmployee();
员工.setNumber(number);
员工.setName(name);
员工.setDiscipling(discipling);
员工.setGrade(grade);
员工.setSex(sex);
try
{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
基本信息表.put(number,员工);
outTwo.writeObject(基本信息表);
outTwo.close();
outOne.close();
员工号.setText(null);
姓名.setText(null);
工资.setText(null);
}
catch(Exceptionee)
{
System.out.println(ee);
}}}}
else
{
Stringwarning="必须要输入员工号!
";
JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
}}
if(e.getSource()==重置)
{
员工号.setText(null);
姓名.setText(null);
部门.remove(部门.getSelectedIndex());
工资.setText(null);
}}}
4、实现员工信息的修改:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassModifySituationextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null;
JTextField员工号,姓名,工资;
Choice部门;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton开始修改,录入修改,重置;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
Filefile=null;
publicModifySituation(Filefile)
{
this.file=file;
员工号=newJTextField(10);
姓名=newJTextField(10);
部门=newChoice();
部门.add("请选择");
部门.add("研发部");
部门.add("销售部");
部门.add("人事部");
部门.add("安全部");
工资=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
开始修改=newJButton("开始修改");
录入修改=newJButton("录入修改");
录入修改.setEnabled(false);
重置=newJButton("重置");
员工号.addActionListener(this);
开始修改.addActionListener(this);
录入修改.addActionListener(this);
重置.addActionListener(this);
Boxbox1=Box.createHorizo