职工信息管理系统说明书.docx
《职工信息管理系统说明书.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统说明书.docx(37页珍藏版)》请在冰豆网上搜索。
职工信息管理系统说明书
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2012年秋季学期
Java课程设计
题目:
职工信息管理系统
专业班级:
计算机科学与技术(4)班
姓名:
王泽
学号:
指导教师:
李睿
成绩:
序言
随着计算机科学技术的发展,公司对职工信息的管理已经日益趋向信息化,便捷化。
而本次我设计的职工信息管理系统就可以快速的对职工的各项信息进行管理和统计,让公司可以轻松的核对员工的学历、工资、电话、住址和年龄情况,从而完成对职工核实和校准。
职工信息管理系统采用Java和文件技术,程序主体采用Java进行编制,存储时把它存进文件中实现程序和文件的结合。
职工信息管理系统主要有五项功能分别是录入,查询,删除,浏览和修改。
录入:
此项功能主要将新来员工的各项信息录入到文件中包括职工号、姓名、年龄、学历、工资等。
那么这样一来文件中就新建了一名员工的信息。
查询:
此项功能主要是通过职工号查询文件中已保存的职工信息。
浏览:
此项功能是浏览文件中的所有员工信息。
删除:
这项功能是将旧的或无用的职工信息删除已释放空间以便创建新的信息。
修改:
修改功能将没用的信息更改为有用的信息如工资,学历,年龄的变化等。
同时此次设计采取可视化见面使用户操作起来更加快捷,也让系统整体看起来美观而大方。
职工管理系统对信息的整理和更改都有很大进步,但还有部分功能没有实现,有待继续加强和改进。
目录
摘要1
1系统设计与分析2
1.1设计目的2
1.2设计内容4
2程序需求分析4
3算法分析5
3.1程序总体设计思想5
3.2程序设计总体框图6
3.3程序详细设计7
4调试过程7
5总结10
6参考文献11
7致谢12
附录(源程序)见另一文档《Java个人通讯录管理系统附录(源程序)》13
摘要
职工信息管理系统主要功能是对职工信息的管理和核实,我本次设计的系统主要包含五项功能分别是录入,删除,查询,修改和浏览。
录入是将新来的的员工信息录入到文件中包括姓名,职工号,性别,年龄,学历和工资。
删除是将过时的信息删掉为新建的信息腾出空间。
查询主要是根据职工号或者姓名来查找相关信息。
而浏览主要是查看全部或个别职工的信息已达到对全部信息的概览。
同时应用文件来存储信息,应用可视化界面进行操作。
关键字:
信息管理,文件,可视化
系统分析与设计
一、系统描述
实现功能:
能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。
解决的问题:
本系统实现了员工、部门、职位等信息的管理、查询、增加及删除,员工签到信息的管理等功能。
本系统是企业对自己公司内部员工管理的网站,主要实现如下目标:
管理员的管理功能。
对员工信息的查询、更改、删除、增加等功能。
对部门信息的查询、更改、删除、增加等功能。
对职位信息的查询、更改、删除、增加等功能。
对员工签到信息的管理等功能。
二、设计目的
通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。
使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。
三、设计问题
设计题目:
员工管理系统
设计要求:
(1)完成员工信息的添加、删除、查询、修改功能
(2)使用用户界面操作
(3)使用文件形式完成
设计思路:
首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。
通过文件类型知识的应用,实现对员工信息的管理。
算法分析
程序总体设计思想
面板设计:
首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。
功能实现:
在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。
功能模块划分:
程序设计总体框图
详细设计
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;
}}
调试过程
这是程序的主界面
这是程序录入界面,他可以录入员工号,姓名,性别,工资,电话和学历。
如果输入有误,用重置。
这是修改界面,对于不用或过时的信息进行删除和修改,也可以增加新的信息更改原来的信息
这项功能可以根据员工号来查询员工的详细信息,包括姓名,电话,学历和工资。
这是删除功能的实现可以通过员工号,来删除整个员工的信息以便来腾出空间。
设计总结
通过这几天的课程设计的学习的亲身实践对我来说收获颇丰从一开始的懵懵懂懂到现在可以理解编译简单的程序经历了一段难忘的过程。
Java语法很多
要想熟练掌握在记下来的同时还要很好的理解,看见身边精通java的同学可以自由的在电脑上书写他们想要做到的操作我心里不禁倍感羡慕,对于我来说java不好理解一些应该知道的基本知识都还没有很好的掌握比如GUI和接口还有监听接口对我来说都是难点究其原因是平时应该下的功夫太少,没有好好温习老师传授的知识。
至此有机会温习并实践书本上的知识对我来说也是一个机会通过对知识的复习以及老师同学的指导对Java有了更深层次的领悟一对今后如何学习Java积累了经验。
当看到自己写的东西在屏幕上运行是心中的喜悦不言而喻这不是Java课程设计的结束而是Java学习新的开始,快餐式的学习方法不可取,今后我要踏踏实实地从平日里就勤加练习,多多实践,只有实践的多,写代码才能熟练。
参考文献
[1]曲朝阳,杨杰明等.Java程序设计.北京:
清华大学出版社,2008.10
[2]耿祥以,张跃平.Java大学生实用教程.北京:
电子工业出版社,2012.6
[3]明日科技.Java经典编程.北京:
清华大学出版社,2012.10
[4]李尊朝,苏军.Java语言程序设计.北京:
中国铁道出版社,2004.2
[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.
致谢
此次设计的完成主要感谢指导老师的指导和同学的帮助,她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我,让我能够利的时间完成高难高难度的编程,他们帮助我修改了好几处重要的错误,同时启发我完善了该程序的功能。
在编写程序的过程中,同学积极帮助我调试程序,帮助我修改一些错误.同时,大家也很认真地配合与给出自己的意见。
课程设计对我们以后的专业课的学习作用,同时也增强了对Java学习的趣,加深了对这门课程的了解。
部分源代码
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.green);
file=newFile("基本信息.txt");
if(!
file.exists())
{
try
{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOExceptione)
{
}
}
基本信息录入=newEmployeeSituation(this.file);
基本信息修改=newModifySituation(this.file);
基本信息查询=newInquest(this,file);
基本信息删除=newDelete(this.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();
}
}
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassEmployeeSituationextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null;
JTextField员工号,姓名,工资,电话;
Choice学历;
JRadioButton男,女;
EmployeeSituation员工=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("研究生");
工资=newJTextField(10);
电话=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(工资);
Boxbox7=Box.createHorizontalBox();
box7.add(newJLabel("电话",JLabel.CENTER));
box7.add(电话);
BoxboxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box5);
boxH.add(box7);
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();
Stringgra=电话.getText();
Stringsex=null;
if(男.isSelected())
{
sex=男.getText();
}
else
{
sex=女.getText();
}
Employee员工=newEmployee();
员工.setNumber(number);
员工.setName(name);
员工.setDiscipling(discipling);
员工.setGrade(grade);
员工.setGra(gra);
员工.setSex(sex);
try
{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
基本信息表.put(number,员工);
outTwo.writeObject(基本信息表);
outTwo.close();
outOne.close();
员工号.setText