雇员管理系统叶飞Word下载.docx
- 文档编号:22724894
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:28
- 大小:91.35KB
雇员管理系统叶飞Word下载.docx
《雇员管理系统叶飞Word下载.docx》由会员分享,可在线阅读,更多相关《雇员管理系统叶飞Word下载.docx(28页珍藏版)》请在冰豆网上搜索。
6、参考文献8
7、附录(源代码)……………………………………………………………………………………8
1.开发背景
二十一世纪是信息的社会,信息作为最主要的资源,将成为战略资源引起人们的广泛关注。
尤其在当今的企业,几乎在所有产业的各个领域,信息及信息流通成为必不可少的部分。
例如招聘员工、员工培训以及职位调动、工资管理,无不需要信息的存储和参考。
面对庞大的信息量,雇员信息管理系统用来提高公司档案管理的工作率,帮助公司对雇员档案进行系统化、计算机化、规范化管理,促进固原档案的完整、规范和全面,保证雇员信息管理工作有条不紊的进行。
2、系统描述
雇员信息管理系统实现的功能主要是雇员信息管理,如雇员基本信息查询、修改、添加、删除,雇员职位调动时工资的调整,可以对雇员的姓名、部门号、职务、经理号等信息进行修改。
3、分析与设计
3.1功能模块划分
界面设计
根据需要,界面应该提供如下功能:
雇员编号、姓、名、电子邮件、电话号码、雇佣日期、从事工作编号、薪水、有关薪水的升降操作、所属主管的编号、部门编号等。
查阅模块
通过主界面的“前一条”、“下一条”按钮可以查阅整个员工工资及信息情况。
工资管理模块
单击主界面上的“提升工资”、“降低工资”,并选择工资变动的等级,然后单击“提交”按钮,就可以对员工的薪水进行设置。
3.2数据库结构描述
数据库名称:
雇员信息表
表名称:
Employees
字段名
数据类型
长度
备注
EMPLOYEE_ID
字符
10
主码
FIRST_NAME
20
非空
LAST_NAME
PHONE_NUMBER
True或者false
Hire_Date
datetime
JOB_ID
SALARY
Real
MANAGER_ID
DEPARTMENT_ID
3.3系统功能模块图
3.4各模块的实现方法(关键代码)
雇员加薪和减薪的实现方法
publicvoidpromoteSalary(intdegree){
switch(degree){
case-1:
break;
casePromoteDegree.PromoteLeve0:
this.Salary=this.getSalary()+100;
casePromoteDegree.PromoteLeve1:
this.Salary=this.getSalary()+500;
casePromoteDegree.PromoteLeve2:
this.Salary=this.getSalary()+1000;
default:
}
}/**
*@authorAdministrator
*@paramdegree根据员工的违规等级扣薪水
*/
publicvoiddemoteSalary(intdegree){
caseDemoteDegree.DemoteLevel0:
if(this.getSalary()<
=100.0)
this.Salary=0;
else
this.Salary=this.getSalary()-100;
caseDemoteDegree.DemoteLevel1:
=500.0)
this.Salary=this.getSalary()-500;
caseDemoteDegree.DemoteLevel2:
=1000.0)
this.Salary=this.getSalary()-1000;
雇员基本信息的修改实现方法
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;
txtEmployee_ID=newJTextField(10);
txtEmployee_ID.setEditable(true);
this.add(txtEmployee_ID,cons);
cons.gridy=1;
JLabellblFirstName=newJLabel("
姓:
this.add(lblFirstName,cons);
txtFirstName=newJTextField(10);
txtFirstName.setEditable(true);
this.add(txtFirstName,cons);
cons.gridx=2;
JLabellblLastName=newJLabel("
名:
lblLastName.setAlignmentX(0);
this.add(lblLastName,cons);
cons.gridx=3;
txtLastName=newJTextField(10);
txtLastName.setEditable(true);
this.add(txtLastName,cons);
cons.gridy=2;
JLabellblEmail=newJLabel("
电子邮件:
this.add(lblEmail,cons);
txtEmail=newJTextField(10);
this.add(txtEmail,cons);
JLabellblTel=newJLabel("
电话号码:
this.add(lblTel,cons);
txtTel=newJTextField(10);
this.add(txtTel,cons);
cons.gridy=3;
JLabellblEmployeeDate=newJLabel("
雇佣日期:
this.add(lblEmployeeDate,cons);
txtEmployeeDate=newJTextField(10);
this.add(txtEmployeeDate,cons);
JLabellblEmployeeJob=newJLabel("
从事工作:
this.add(lblEmployeeJob,cons);
txtEmployeeJob=newJTextField(10);
this.add(txtEmployeeJob,cons);
cons.gridy=4;
JLabellblManagerID=newJLabel("
主管编号:
this.add(lblManagerID,cons);
txtManagerID=newJTextField(10);
this.add(txtManagerID,cons);
JLabellblDepartmentID=newJLabel("
部门编号:
this.add(lblDepartmentID,cons);
txtDepartmentID=newJTextField(10);
this.add(txtDepartmentID,cons);
cons.gridy=5;
JLabellblSalary=newJLabel("
薪水:
this.add(lblSalary,cons);
txtSalary=newJTextField(10);
txtSalary.setEditable(true);
this.add(txtSalary,cons);
cons.gridy=6;
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);
JLabellblGrade=newJLabel("
变动等级:
this.add(lblGrade,cons);
cmbBox=newJComboBox(newString[]{"
"
一级"
二级"
三级"
});
this.add(cmbBox,cons);
//当下拉列表框选项内容发生变化时,调用DisplaySalary函数,正确显示当前设定的薪水数目
cmbBox.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
DisplaySalary();
cons.gridy=7;
JButtonbtnSubmit=newJButton("
提交:
this.add(btnSubmit,cons);
//注册失败,处理提交情况
btnSubmit.setActionCommand("
Submit"
btnSubmit.addActionListener(newActionListener(){
if(e.getActionCommand().equals("
)){//读取数据并保存
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);
更新失败"
错误"
JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null,"
JOptionPane.ERROR_MESSAGE);
}
JButtonbtnPrex=newJButton("
前一条"
this.add(btnPrex,cons);
//注册事件
btnPrex.setActionCommand("
PrexRecord"
btnPrex.addActionListener(newActionListener()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 雇员 管理 系统