Java课程设计报告企业人事管理系统设计x.docx
- 文档编号:7732394
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:42
- 大小:274.69KB
Java课程设计报告企业人事管理系统设计x.docx
《Java课程设计报告企业人事管理系统设计x.docx》由会员分享,可在线阅读,更多相关《Java课程设计报告企业人事管理系统设计x.docx(42页珍藏版)》请在冰豆网上搜索。
Java课程设计报告企业人事管理系统设计x
Java课程设计报告
题目企业人事管理系统
专业信息管理与信息系统
班级信管152
学号1510402204
姓名
指导教师
完成时间二零一六年六月二十九日
一、设计任务与要求
1.1设计任务与要求
根据所选课题“企业人事管理系统”,完成课程设计的分析、设计和编码,制作一个简单的管理系统,并用窗口界面实现,可以对企业员工的基本信息(员工编号、姓名、性别、联系电话、部门、职务、底薪)实现录入、修改、调用、删除。
并完成课程设计报告。
1.2选题目的与意义
无论企业大小,都需要进行人事管理,企业人事管理系统基于这样的要求,实现了对企业人事的基本信息管理。
通过企业人事管理系统的设计过程,深刻了解掌握面向对象程序设计语言Java的核心概念和特性;了解编程技术知识,会处理异常情况。
了解基于Swing的图形用户界面开发;掌握Java应用软件的开发环境和开发过程;灵活选择程序设计思想。
二、需求分析
2.1用户需求分析
现在的社会是信息化的社会,随着科学技术的发展,人们越来越多的用计算机去代替和延伸脑力劳动,而且计算机能够更高效地帮助人们去处理一些事情,为了把传统的人事管理和现在用计算机技术对人事进行管理相结合,这次,我设计了这套基本的企业人事管理系统方案。
通过此系统的运用,可以满足企业人事管理的诸多需求,例如对新员工基本信息录入,对离职员工实现信息删除,对员工信息实现修改等需求。
2.2开发环境分析
系统编程基于JAVASwing的图形用户界面开发,使用WINDOWS环境下的Myeclipse6.0.1软件开发。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
三、系统设计
3.1系统总体设计
该软件功能分析说明图如所示:
企业人事管理系统
图3.1功能分析说明
3.2功能模块设计
模块
功能
主界面
显示系统名称“企业人事管理系统”
录入界面
实现员工基本信息录入
修改界面
对员工基本信息实现修改
调用界面
调用信息实现查询及打印的功能
删除界面
删除员工基本信息
表3.2
3.3类及方法的设计
类名
方法
Delete
Delete(File)
actionPerformed(ActionEvent)
InputEmployee
InputEmployee(File)
actionPerformed(ActionEvent)
clearMess()
EmployeePicture
EmployeePicture()
paintComponent(Graphics)
setImage(File)
Inquest
Inquest(File)
actionPerformed(ActionEvent)
clearMess()
ManagerWindow
main(String[])
ManagerWindow()
actionPerformed(ActionEvent)
ModifySituation
ModifySituation(File)
actionPerformed(ActionEvent)
clearMess()
Employee
getDepartment()
getImagePic()
getName()
getNumber()
getPhone()
getPosition()
getSalary()
getSex()
setDepartment(String)
setImagePic(File)
setName(String)
setNumber(String)
setPhone(String)
setPosition(String)
setSalary(String)
setSex(String)
表3.3
四、程序实现
4.1程序流程设计
图4.1
4.2关键程序
publicclassEmployeePictureextendsJPanel{}//继承图形用户界面的面板容器类
publicclassEmployeeimplementsSerializable{}//继承有序列化功能的接口
publicclassModifySituationextendsJPanelimplementsActionListener{}//继承负责创建监视器的类
try{
inOne=newFileInputStream(systemFile);
inTwo=newObjectInputStream(inOne);
基本信息表=(HashMap
inOne.close();
inTwo.close();
}
catch(Exceptionee){}//处理异常
基本信息录入=newInputEmployee(file);
基本信息修改=newModifySituation(file);
基本信息查询与打印=newInquest(file);
基本信息删除=newDelete(file);
pCenter.add("主界面",label);
pCenter.add("录入界面",基本信息录入);
pCenter.add("修改界面",基本信息修改);
pCenter.add("删除界面",基本信息删除);//新建菜单并加入到容器中
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);//新建单选按钮并添加
putButton.setBackground(Color.red);//添加背景颜色
Imageimage=tool.getImage(imageFile.getAbsolutePath());
g.drawImage(image,0,0,w,h,this);//实现对照片的添加
FileNameExtensionFilterfilter=newFileNameExtensionFilter(
"JPG&GIFImages","jpg","gif");//对filter的实现
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==查询||e.getSource()==学号){…………}//触发事件实现调用
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==删除||e.getSource()==员工编号){…………}//触发事件实现删除
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==开始修改||e.getSource()==员工编号){…………}//触发事件实现修改
publicstaticvoidmain(Stringargs[]){
newManagerWindow();
}//主类
五、测试运行
5.1系统测试方案
本次设计采用WINDOWS环境下的MyEclipse,MyEclipse包括了完备的编码、调试、测试和发布功能,极大的提高了工作效率。
在MyEclipse中进行测试,较为方便。
5.2系统测试运行及结果分析
(1)主界面:
进入管理系统后,显示系统名称,点击菜单,显示其他模块选项。
图5.2.1
(2)录入员工基本信息:
实现对员工编号、姓名、性别、联系电话、部门选择、职务、底薪和照片的录入。
图5.2.2.1
选择图片界面
图5.2.2.2
图5.2.2.3
(3)修改员工基本信息:
实现对员工编号、姓名、性别、联系电话、部门选择、职务、底薪和照片的修改。
图5.2.3
(4)调用员工基本信息:
输入员工编号,对员工信息实现查询调用,还可以进行打印。
图5.2.4.1
若输入错误编号
图5.2.4.2
(5)删除员工基本信息:
输入编号实现对员工信息的删除。
图5.2.5.1
若未输入编号:
图5.2.5.2
(6)退出关闭窗口时
图5.2.6
所有功能皆可实现,程序运行成功!
六、设计体会
系统设计最重要的不是创意,而是功能。
设计系统是对一个人整体思维能力的、挑战自己大脑极限的工作,总是伴着某种痛苦,因为很多你想加入的系统功能和特色,经过自己检验和想象式测试,就会发现存在很多问题,于是不断的改,直到最后才发现,最简单的设定往往最有效最合理,然后再以此追加更高级的复杂设定。
希望进行更多的探讨和交流.
这次系统设计中遇到了一些问题,比如系统运行过程中如何完成录入、添加照片等操作,经过查阅资料和编程测试最终解决。
经过一个学期的学习,我对Java有了一定的初步了解,可以完成简单程序的设计,但对于较为熟练地运用还有一定的问题,在查阅资料及咨询老师后,完成了这个系统的设计,但是这个系统还不是很完善,功能还可以继续增加,使之更加完美,例如数据库的知识不是很了解,如果加入大量数据库编程,系统将会更加完善。
如今社会中,计算机技术与企业管理密不可分,通过计算机系统程序的使用,使得企业管理更加方便快捷,因此企业人事管理系统比较重要,很开心能完成此程序的设计,希望程序能起到应有的作用。
发现问题,提出问题,解决问题,使我从不足之处出发,寻找新的学习方向。
一边实习一边探索,发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。
主要参考文献
[1]耿祥义.Java2实用教程[M].北京:
清华大学出版社.2012.
[2]耿祥义.Java课程设计[M].北京:
清华大学出版社.2008.
附录:
ManagerWindow.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.HashMap;
publicclassManagerWindowextendsJFrameimplementsActionListener{
InputEmployee人事信息录入;
ModifySituation基本信息修改;
Inquest基本信息调用;
Delete基本信息删除;
JMenuBarbar;
JMenufileMenu;
JMenuItem录入,修改,调用,删除,主界面;
HashMap
Filefile=null;
CardLayoutcard=null;
JLabellabel=null;
JPanelpCenter;
publicManagerWindow(){
录入=newJMenuItem("录入员工基本信息");
修改=newJMenuItem("修改员工基本信息");
调用=newJMenuItem("调用员工基本信息");
删除=newJMenuItem("删除员工基本信息");
主界面=newJMenuItem("主界面");
bar=newJMenuBar();
fileMenu=newJMenu("菜单");
fileMenu.add(录入);
fileMenu.add(修改);
fileMenu.add(调用);
fileMenu.add(删除);
fileMenu.add(主界面);
bar.add(fileMenu);
setJMenuBar(bar);
label=newJLabel("企业人事管理系统",JLabel.CENTER);
label.setIcon(newImageIcon("welcome.jpg"));
label.setFont(newFont("楷体",Font.BOLD,40));
label.setHorizontalTextPosition(SwingConstants.CENTER);
label.setForeground(Color.BLACK);
基本信息=newHashMap
录入.addActionListener(this);
修改.addActionListener(this);
调用.addActionListener(this);
删除.addActionListener(this);
主界面.addActionListener(this);
card=newCardLayout();
pCenter=newJPanel();
pCenter.setLayout(card);
file=newFile("基本信息.txt");
if(!
file.exists()){
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();}
catch(IOExceptione){}}
人事信息录入=newInputEmployee(file);
基本信息修改=newModifySituation(file);
基本信息调用=newInquest(file);
基本信息删除=newDelete(file);
pCenter.add("欢迎界面",label);
pCenter.add("录入界面",人事信息录入);
pCenter.add("修改界面",基本信息修改);
pCenter.add("删除界面",基本信息删除);
add(pCenter,BorderLayout.CENTER);
validate();
setVisible(true);
setBounds(100,50,500,300);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
intn=JOptionPane.showConfirmDialog(null,"确认退出?
","确认对话框”,JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_OPTION)
System.exit(0);}});
validate();}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==录入){
人事信息录入.clearMess();
card.show(pCenter,"录入界面");}
elseif(e.getSource()==修改){
基本信息修改.clearMess();
card.show(pCenter,"修改界面");}
elseif(e.getSource()==调用){
基本信息调用.clearMess();
基本信息调用.setLocation(getBounds().width,getBounds().height);
基本信息调用.setVisible(true);}
elseif(e.getSource()==删除)
card.show(pCenter,"删除界面");
elseif(e.getSource()==主界面)
card.show(pCenter,"主界面");}
publicstaticvoidmain(Stringargs[]){
newManagerWindow();
}}
Employee.java
importjava.io.*;
publicclassEmployeeimplementsSerializable{
Stringnumber,name,phone,department,position,salary,sex;
FileimagePic;
publicvoidsetNumber(Stringnumber){
this.number=number;}
publicStringgetNumber(){
returnnumber;}
publicvoidsetName(Stringname){
this.name=name;}
publicStringgetName(){
returnname;}
publicvoidsetPhone(Stringphone){
this.phone=phone;}
publicStringgetPhone(){
returnphone;}
publicvoidsetDepartment(Stringdepartment){
this.department=department;}
publicStringgetDepartment(){
returndepartment;}
publicvoidsetPosition(Stringposition){
this.position=position;}
publicStringgetPosition(){
returnposition;}
publicvoidsetSalary(Stringsalary){
this.salary=salary;}
publicStringgetSalary(){
returnsalary;}
publicvoidsetSex(Stringsex){
this.sex=sex;}
publicStringgetSex(){
returnsex;}
publicvoidsetImagePic(FileimagePic2){
}
publicFilegetImagePic(){
returnnull;}}
InputEmployee.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
importjavax.swing.filechooser.*;
publicclassInputEmployeeextendsJPanelimplementsActionListener{
Employee员工=null;
EmployeePicturepic;
HashMap
JTextField员工编号,姓名,联系电话,职务,底薪;
JButton选择照片;
JComboBox部门;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton录入,重置;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
FilesystemFile,imagePic;
publicInputEmployee(Filefile){
systemFile=file;
pic=newEmployeePicture();
员工编号=newJTextField(5);
姓名=newJTextField(5);
联系电话=newJTextField(13);
部门=newJComboBox();
try{
FileReaderinOne=newFileReader("部门.txt");
BufferedReaderinTwo=newBufferedReader(inOne);
Strings=null;
inti=0;
while((s=inTwo.readLine())!
=null)
部门.addItem(s);
inOne.close();
inTwo.close();}
catch(IOExceptionexp){
部门.addItem("行政部");
部门.addItem("MPC");
部门.addItem("财务");}
职务=newJTextField(5);
底薪=newJTextField(5);
选择照片=newJButton("选择");
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
录入=newJButton("录入");
重置=newJButton("重置");
录入.addActionListener(this);
选择照片.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.createHorizontal
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 报告 企业 人事管理系统 设计