雇员管理系统叶飞.docx

上传人:b****8 文档编号:9588869 上传时间:2023-02-05 格式:DOCX 页数:28 大小:91.35KB
下载 相关 举报
雇员管理系统叶飞.docx_第1页
第1页 / 共28页
雇员管理系统叶飞.docx_第2页
第2页 / 共28页
雇员管理系统叶飞.docx_第3页
第3页 / 共28页
雇员管理系统叶飞.docx_第4页
第4页 / 共28页
雇员管理系统叶飞.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

雇员管理系统叶飞.docx

《雇员管理系统叶飞.docx》由会员分享,可在线阅读,更多相关《雇员管理系统叶飞.docx(28页珍藏版)》请在冰豆网上搜索。

雇员管理系统叶飞.docx

雇员管理系统叶飞

 

java程序设计课程设计报告

 

课题:

雇员信息管理系统

姓名:

叶飞

学号:

201017010223

同组姓名:

杨克斯刘再科蔡双

专业班级:

计科10102班

指导教师:

唐石

设计时间:

2012年6月4号----2012年6月10日

评阅意见:

 

评定成绩:

指导老师签名:

年月日

 

目录

 

1、开发背景2

2、系统描述2

3、分析与设计2

3.1、功能模块划分2

3.2、数据库结构描述3

3.3、系统功能模块图…………………………………………………………………………4

3.4、各模块的实现方法………………………………………………………………………4

4、系统测试6

5.总结及体会7

6、参考文献8

7、附录(源代码)……………………………………………………………………………………8

1.开发背景

二十一世纪是信息的社会,信息作为最主要的资源,将成为战略资源引起人们的广泛关注。

尤其在当今的企业,几乎在所有产业的各个领域,信息及信息流通成为必不可少的部分。

例如招聘员工、员工培训以及职位调动、工资管理,无不需要信息的存储和参考。

面对庞大的信息量,雇员信息管理系统用来提高公司档案管理的工作率,帮助公司对雇员档案进行系统化、计算机化、规范化管理,促进固原档案的完整、规范和全面,保证雇员信息管理工作有条不紊的进行。

2、系统描述

雇员信息管理系统实现的功能主要是雇员信息管理,如雇员基本信息查询、修改、添加、删除,雇员职位调动时工资的调整,可以对雇员的姓名、部门号、职务、经理号等信息进行修改。

3、分析与设计

3.1功能模块划分

界面设计

根据需要,界面应该提供如下功能:

雇员编号、姓、名、电子邮件、电话号码、雇佣日期、从事工作编号、薪水、有关薪水的升降操作、所属主管的编号、部门编号等。

查阅模块

通过主界面的“前一条”、“下一条”按钮可以查阅整个员工工资及信息情况。

工资管理模块

单击主界面上的“提升工资”、“降低工资”,并选择工资变动的等级,然后单击“提交”按钮,就可以对员工的薪水进行设置。

3.2数据库结构描述

数据库名称:

雇员信息表

表名称:

Employees

字段名

数据类型

长度

备注

EMPLOYEE_ID

字符

10

主码

FIRST_NAME

字符

20

非空

LAST_NAME

字符

20

非空

EMAIL

字符

20

PHONE_NUMBER

字符

20

True或者false

Hire_Date

datetime

JOB_ID

字符

20

SALARY

Real

MANAGER_ID

字符

10

DEPARTMENT_ID

字符

10

 

3.3系统功能模块图

3.4各模块的实现方法(关键代码)

雇员加薪和减薪的实现方法

publicvoidpromoteSalary(intdegree){

switch(degree){

case-1:

break;

casePromoteDegree.PromoteLeve0:

this.Salary=this.getSalary()+100;

break;

casePromoteDegree.PromoteLeve1:

this.Salary=this.getSalary()+500;

break;

casePromoteDegree.PromoteLeve2:

this.Salary=this.getSalary()+1000;

break;

default:

break;}

}/**

*@authorAdministrator

*@paramdegree根据员工的违规等级扣薪水

*/

publicvoiddemoteSalary(intdegree){

switch(degree){

case-1:

break;

caseDemoteDegree.DemoteLevel0:

if(this.getSalary()<=100.0)

this.Salary=0;

else

this.Salary=this.getSalary()-100;

break;

caseDemoteDegree.DemoteLevel1:

if(this.getSalary()<=500.0)

this.Salary=0;

else

this.Salary=this.getSalary()-500;

break;

caseDemoteDegree.DemoteLevel2:

if(this.getSalary()<=1000.0)

this.Salary=0;

else

this.Salary=this.getSalary()-1000;

break;

default:

break;

}

}

雇员基本信息的修改实现方法

publicbooleanupdateEmployeeInfo(){

StringupdateSql="UPDATEEmployees"+

"SETFIRST_NAME='"+this.FirstName+"',LAST_NAME='"+this.LastName+

"',EMAIL='"+this.Email+"',PHONE_NUMBER='"+this.Phone_Number+

"',JOB_ID='"+this.Job_ID+"',SALARY="+this.Salary+",MANAGER_ID="+

this.Manager_ID+",DEPARTMENT_ID="+this.Department_ID+

"WHERE1=1ANDEMPLOYEE_ID="+this.Employee_ID+"";

System.out.println(updateSql);

returnnewTableData().UpdateTableData(updateSql)}

4、系统测试

主界面

雇员加薪、加薪成功

5、总结及体会

通过为期一周的课程设计,我们小组4人以分工的形式完成了雇员信息管理系统。

杨克斯做用户界面设计和雇员信息查询功能这一块,叶飞做类的定义以及成员方法的定义和雇员工资管理这一块,刘再科和蔡双做的是数据库的设计、表的建立以及数据库的连接。

我们在做的过程中都遇到了一些问题,以前我们做课程设计时没有涉及到数据库,做Java实验时很少用到eclipse软件,所以相对来说挑战有点大。

经过查阅参考资料,我们一起讨论怎么解决问题,以及在老师的帮助下,终于把这个系统中涉及的知识点弄明白了,并把程序调试出来了。

我们了解到,eclipse软件是一款很棒的开发Java工程的软件,它会自动提示错误,让我们把时间主要花在设计的工作上,而不是枯燥乏味的改错上。

另外,数据库非常重要,我们接触过的数据库有Access,SQLServer和Oracle,分别为小型,中型,大型数据库。

如果我们要做一个成功的实用的系统,数据库的设计是占了比较大的比重的。

这一次课程设计,我们的系统,即雇员信息管理系统,比较不足的地方是实现的功能少,因为雇员信息管理包括培训信息,工资管理,职位调动、离岗信息,部门信息等。

在一个企业,人事管理部门需要对以上信息进行有效的管理,员工也可以查询相关信息,各个功能模块间的联系也比较大。

由于时间和精力有限,我们只完成了一小部分。

6、参考文献

李尊朝,苏军.Java语言程序设计(第二版).北京:

中国铁道出版社,2004

黄晓东.Java课程设计案例精编(第二版).北京:

中国水利水电出版社,2004

7、附录(源代码)

packageUI;

importrecords.*;

importaccessDB.*;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.util.*;

publicclassDisplayUIextendsJFrame{

publicstaticVectorEmpList=null;

publicstaticintCurrentPosition=0;

privateJTextFieldtxtEmployee_ID;

privateJTextFieldtxtFirstName;

privateJTextFieldtxtLastName;

privateJTextFieldtxtEmail;

privateJTextFieldtxtTel;

privateJTextFieldtxtEmployeeDate;

privateJTextFieldtxtEmployeeJob;

privateJTextFieldtxtSalary;

privateJTextFieldtxtManagerID;

privateJTextFieldtxtDepartmentID;

privateCheckboxrdbPromote;

privateCheckboxrdbDemote;

privateJComboBoxcmbBox;

privateCheckboxGroupchkGroup;

privatevoidAddControlToPane()

{this.setSize(800,600);//设置布局管理器

GridBagConstraintscons=newGridBagConstraints();

this.setLayout(newGridBagLayout());

cons.gridx=0;

cons.gridy=0;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblEmployee_ID=newJLabel("雇员编号");

this.add(lblEmployee_ID,cons);

cons.gridx=1;

cons.gridy=0;

cons.gridwidth=1;

cons.gridheight=1;

txtEmployee_ID=newJTextField(10);

txtEmployee_ID.setEditable(true);

this.add(txtEmployee_ID,cons);

cons.gridx=0;

cons.gridy=1;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblFirstName=newJLabel("姓:

");

this.add(lblFirstName,cons);

cons.gridx=1;

cons.gridy=1;

cons.gridwidth=1;

cons.gridheight=1;

txtFirstName=newJTextField(10);

txtFirstName.setEditable(true);

this.add(txtFirstName,cons);

cons.gridx=2;

cons.gridy=1;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblLastName=newJLabel("名:

");

lblLastName.setAlignmentX(0);

this.add(lblLastName,cons);

cons.gridx=3;

cons.gridy=1;

cons.gridwidth=1;

cons.gridheight=1;

txtLastName=newJTextField(10);

txtLastName.setEditable(true);

this.add(txtLastName,cons);

cons.gridx=0;

cons.gridy=2;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblEmail=newJLabel("电子邮件:

");

this.add(lblEmail,cons);

cons.gridx=1;

cons.gridy=2;

cons.gridwidth=1;

cons.gridheight=1;

txtEmail=newJTextField(10);

this.add(txtEmail,cons);

cons.gridx=2;

cons.gridy=2;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblTel=newJLabel("电话号码:

");

this.add(lblTel,cons);

cons.gridx=3;

cons.gridy=2;

cons.gridwidth=1;

cons.gridheight=1;

txtTel=newJTextField(10);

this.add(txtTel,cons);

cons.gridx=0;

cons.gridy=3;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblEmployeeDate=newJLabel("雇佣日期:

");

this.add(lblEmployeeDate,cons);

cons.gridx=1;

cons.gridy=3;

cons.gridwidth=1;

cons.gridheight=1;

txtEmployeeDate=newJTextField(10);

this.add(txtEmployeeDate,cons);

cons.gridx=2;

cons.gridy=3;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblEmployeeJob=newJLabel("从事工作:

");

this.add(lblEmployeeJob,cons);

cons.gridx=3;

cons.gridy=3;

cons.gridwidth=1;

cons.gridheight=1;

txtEmployeeJob=newJTextField(10);

this.add(txtEmployeeJob,cons);

cons.gridx=0;

cons.gridy=4;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblManagerID=newJLabel("主管编号:

");

this.add(lblManagerID,cons);

cons.gridx=1;

cons.gridy=4;

cons.gridwidth=1;

cons.gridheight=1;

txtManagerID=newJTextField(10);

this.add(txtManagerID,cons);

cons.gridx=2;

cons.gridy=4;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblDepartmentID=newJLabel("部门编号:

");

this.add(lblDepartmentID,cons);

cons.gridx=3;

cons.gridy=4;

cons.gridwidth=1;

cons.gridheight=1;

txtDepartmentID=newJTextField(10);

this.add(txtDepartmentID,cons);

cons.gridx=0;

cons.gridy=5;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblSalary=newJLabel("薪水:

");

this.add(lblSalary,cons);

cons.gridx=1;

cons.gridy=5;

cons.gridwidth=1;

cons.gridheight=1;

txtSalary=newJTextField(10);

txtSalary.setEditable(true);

this.add(txtSalary,cons);

cons.gridx=0;

cons.gridy=6;

cons.gridwidth=1;

cons.gridheight=1;

rdbPromote=newCheckbox("提升工资:

");

this.add(rdbPromote,cons);

cons.gridx=1;

cons.gridy=6;

cons.gridwidth=1;

cons.gridheight=1;

rdbDemote=newCheckbox("降低工资");

this.add(rdbDemote,cons);

chkGroup=newCheckboxGroup();

rdbPromote.setCheckboxGroup(chkGroup);

rdbDemote.setCheckboxGroup(chkGroup);

chkGroup.setSelectedCheckbox(null);

cons.gridx=2;

cons.gridy=6;

cons.gridwidth=1;

cons.gridheight=1;

JLabellblGrade=newJLabel("变动等级:

");

this.add(lblGrade,cons);

cons.gridx=3;

cons.gridy=6;

cons.gridwidth=1;

cons.gridheight=1;

cmbBox=newJComboBox(newString[]{"","一级","二级","三级"});

this.add(cmbBox,cons);

//当下拉列表框选项内容发生变化时,调用DisplaySalary函数,正确显示当前设定的薪水数目

cmbBox.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

DisplaySalary();}

});

cons.gridx=0;

cons.gridy=7;

cons.gridwidth=1;

cons.gridheight=1;

JButtonbtnSubmit=newJButton("提交:

");

this.add(btnSubmit,cons);//注册失败,处理提交情况

btnSubmit.setActionCommand("Submit");

btnSubmit.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

if(e.getActionCommand().equals("Submit")){//读取数据并保存

if(txtEmployee_ID.getText().equals("")==false)

{Employeeemp=newEmployee();//显示雇员的相关信息

emp.setEmployee_ID(Integer.parseInt(txtEmployee_ID.getText()));

emp.setFirstName(txtFirstName.getText());

emp.setLastName(txtLastName.getText());

emp.setEmail(txtEmail.getText());

emp.setPhone_Number(txtTel.getText());

emp.setJob_ID(txtEmployeeJob.getText());

emp.setSalary(Float.parseFloat(txtSalary.getText()));

emp.setManager_ID(Integer.parseInt(txtManagerID.getText()));

emp.setDepartment_ID(txtDepartmentID.getText());

EmpList.setElementAt(emp,DisplayUI.CurrentPosition);//向数据库中保存记录

BooleaniRet=((Employee)(EmpList.elementAt(DisplayUI.CurrentPosition))).updateEmployeeInfo();

if(iRet==true)

{JOptionPane.showMessageDialog(null,"更新成功","正确",JOptionPane.INFORMATION_MESSAGE);}

else

{JOptionPane.showMessageDialog(null,"更新失败","错误",JOptionPane.ERROR_MESSAGE);}

}

else

JOptionPane.showMessageDialog(null,"更新失败","错误",JOptionPane.ERROR_MESSAGE);}

}

});

cons.gridx=1;

cons.gridy=7;

cons.gridwidth=1;

cons.gridheight=1;

JButtonbtnPrex=newJButton("前一条");

this.add(btnPrex,cons);//注册事件

btnPrex.setActionCommand("PrexRecord");

btnPrex.addActionListener(newActionListener()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1