人事管理系统实验报告.docx

上传人:b****5 文档编号:7354111 上传时间:2023-01-23 格式:DOCX 页数:29 大小:157.99KB
下载 相关 举报
人事管理系统实验报告.docx_第1页
第1页 / 共29页
人事管理系统实验报告.docx_第2页
第2页 / 共29页
人事管理系统实验报告.docx_第3页
第3页 / 共29页
人事管理系统实验报告.docx_第4页
第4页 / 共29页
人事管理系统实验报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

人事管理系统实验报告.docx

《人事管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《人事管理系统实验报告.docx(29页珍藏版)》请在冰豆网上搜索。

人事管理系统实验报告.docx

人事管理系统实验报告

数据库系统课程设计报告

 

题目:

人事管理系统

 

1系统需求分析

1.1系统功能分析

人事管理系统主要有以下几项功能要求:

●新员工资料的输入

●自动分配员工,并且设置初始的用户密码

●人事变动的详细记录,包括岗位和部门的调整

●员工信息的查询和修改,包括员工个人信息和密码等

●查询人事变更记录

1.2系统功能模块设计

根据系统功能需求,可以将系统分解成几个模块来分别设计应用程序设计界面,如下图所示:

1.3与其它系统的关系

本系统是公司管理信息系统的基础部分。

为其他子系统,如考勤管理系统、工资管理系统和员工培训系统,提供员工的基本信息。

同时为其它的系统提供了员工登录的密码认定和权限分配功能。

1.4数据流程图

人事信息管理系统的数据流程如图所示,所有数据有人事科管理员输入。

1.5数据库需求分析

根据数据流程图,可以列出以下数据项和数据结构:

●员工信息:

员工号、密码、权限、姓名、性别、生日、所在部门、职务、受教育程度、专业、家庭住址、电话、电子邮箱、当前状态、备注

●人事变更记录:

记录号、员工号、变动、详细记录。

所需的外部数据支持:

●部门信息:

部门编号、名称、部门经理、简介

●受教育程度代码表:

代码、说明

●职务代码表:

职务编号、名称

●人事变动代码:

代码、描述

2概念结构设计

2.1概念结构设计的步骤

概念结构的设计可分为两步:

第一步是抽象数据并设计局部视图。

第二步是集成局部视图,得到全局的概念结构。

员工实体E-R图:

部门实体E-R图:

 

 

职务代码表E-R图:

教育程度代码表E-R图:

人事变动代码表E-R图

 

人事变更记录表E-R图:

实体E-R总图:

3逻辑结构设计

3.1E-R图向关系模型的转换

将总体关系的E-R图转换为关系模型:

员工(员工号、密码、用户权限、姓名、性别、生日、所在部门、职务、受教育程度、专业技能、家庭住址、联系电话、电子邮箱、当前状态、备注)

部门(部门号,部门名称,部门经理,简介)

职务(职务号、职务名称)

教育程度(代码,说明)

人事变更记录(记录编号,员工号,变更代码,详细记录)

人事变动代码(代码,描述)

4物理结构设计

4.1数据表的物理结构

根据系统E-R图,本系统需要有两个数据分别来存放工人个人信息和人事变动记录。

并且需要一个外部数据表(部门信息)的支持。

同时部分记录字段需要用代码来表示,因此需要3个代码来分别记录教育程度、职务和人事变更的代码。

这个6个数据表的结构如表1到表6所示。

表1PERSON员工个人信息表

字段名

数据类型

长度

是否为空

说明

ID

int

4

NOTNULL

员工号(主关键字)

PASSWD

varchar

50

NOTNULL

密码

AUTHORITY

varchar

50

NOTNULL

用户权限

NAME

varchar

50

NOTNULL

姓名

SEX

varchar

50

NOTNULL

性别

BIRTHDAY

varchar

50

NULL

生日

DEPARTMENT

varchar

50

NOTNULL

所在部门

JOB

varchar

50

NOTNULL

职务

EDU_LEVEL

varchar

50

NOTNULL

受教育程度

SPCIALTY

varchar

50

NULL

专业技能

ADDRESS

varchar

50

NULL

家庭住址

TEL

varchar

50

NULL

联系电话

EMAIL

varchar

50

NULL

电子邮箱

STATE

varchar

50

NOTNULL

当前状态(T-员工、F-非员工)

REMARK

varchar

50

NULL

备注

表2PERSONNEL人事变更记录表

字段名

数据类型

长度

是否为空

说明

ID

int

4

NOTNULL

记录编号

PERSON

varchar

4

NOTNULL

员工号

CHANGE

varchar

4

NOTNULL

变更代码

DESCRIPTION

varchar

16

NULL

详细记录

表3EDU_LEVEL受教育程度代码表

字段名

数据类型

长度

是否为空

说明

CODE

int

4

NOTNULL

代码

DESCRIPTION

varchar

50

NULL

描述

表4JOB职务代码表

字段名

数据类型

长度

是否为空

说明

CODE

int

4

NOTNULL

代码

DESCRIPTION

varchar

50

NULL

描述

表5PERSONNEL_CHANGE人事变动代码表

字段名

数据类型

长度

是否为空

说明

CODE

int

4

NOTNULL

代码

DESCRIPTION

varchar

50

NULL

描述

表6DEPANTMENT部门信息表

字段名

数据类型

长度

是否为空

说明

ID

int

4

NOTNULL

部门编号

NAME

varchar

50

NOTNULL

部门名称

MANAGER

varchar

4

NOTNULL

部门经理

INTRO

varchar

50

NULL

简介

表7受教育程度代码

代码

说明

0

小学

1

初中

2

高中

3

职高

4

大本

5

大专

6

硕士

7

博士

8

博士后

表8人事变更代码

代码

说明

0

新员工加入

1

职务变动

2

辞退

 

5各功能模块的设计与实现

5.1各功能说明

⏹增加新员工

⏹人事变动

⏹员工信息查询和修改

⏹加密模块

5.2用户界面设计

完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。

我们把人事信息系统的窗口分成4个主要部分。

1.登录模块的创建

2.增加新员工窗体的创建

3.人事变动窗体的创建

4.员工信息查询修改窗体的创建

5.加密模块的创建

5.3各功能模块的实现

1.加密模块

窗口设计:

 

由于时间关系只实现了固定的用户名和密码,为实现数据库验证的用户名和密码

相关代码:

//**********************以下实现管理员密码登陆************************************************************//

//未实现管理员密码的可修改性

voidCMyDlg:

:

OnLoad()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

CStringID="admin";

CStringPASSWD="123";

if(m_ID=="")

{

MessageBox("请输入用户名");

return;

}

if(m_PASSWD=="")

{

MessageBox("请输入密码");

return;

}

if(ID!

=""&&PASSWD!

="")

{

if(ID==m_ID&&PASSWD==m_PASSWD)

{

AfxMessageBox("欢迎使用!

");

CAdminBoxa;//调用管理员窗口的一个对象

a.DoModal();//调用函数

}

else

{

AfxMessageBox("用户信息不正确,重新登录!

");

/*time++;

if(time>2)

exit(0);

*/

}

}

}

//***************************************************************//

 

2.主窗口的设计

主窗口只实现相关功能窗口的调用按钮,不实现具体功能

//**************************************************************************************************//

//以下实现员工信息修改窗口

voidCAdminBox:

:

OnBUTTONUpdateName()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CUpdateNamea;

a.DoModal();

}

//******************************************************************************************************************//

//调用人事变动窗口

voidCAdminBox:

:

OnBUTTONPersonnel()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CPERSONNELa;

a.DoModal();

}

//******************************************************************************************************************//

//提供退出系统的功能

voidCAdminBox:

:

OnButtonExit()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(MessageBox("确定退出?

",_T(""),MB_YESNO|MB_ICONSTOP)==IDYES)

exit(0);

}

⏹3.人事变动

窗口设计:

实现的功能是在往数据库人事变更表中添加数据的时候同时修改员工信息表中的相关信息

代码如下:

voidCPERSONNEL:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

_ConnectionPtrm_pConnection;

:

:

CoInitialize(NULL);

//在ADO操作中建议语中要常用try...catch()来捕获错误信息

//因为他有时会经常出现一些想不到的错误

try

{

m_pConnection.CreateInstance("ADODB.Connection");

_bstr_tstrConn="Provider=SQLOLEDB;DataSourse=(local);InitialCatalog=人事管理系统;UID=sa;PWD=;";

m_pConnection->Open(strConn,"","",adModeUnknown);

if(m_pConnection->State==adStateOpen)MessageBox("成功连接数据库");

}

catch(_com_errore)

{

:

:

CoUninitialize();

AfxMessageBox(e.ErrorMessage());

return;

}

//以下插入人事变更记录

_variant_tra;

_bstr_tstrAdd="INSERTINTOPERSONNELVALUES('";

//strAdd=strAdd+m_ID+"','";

strAdd=strAdd+m_PERSON+"','";

strAdd=strAdd+m_CHANGE+"','";

strAdd=strAdd+m_DESCRIPTION+"')";

//AfxMessageBox(strAdd);

m_pConnection->Execute(strAdd,&ra,adCmdText);

//m_pConnection->Close();

//下面同样涉及对其他表数据修改故不能关闭数据库连接

strAdd="UPDATEPERSONSETSTATE=";

if(m_CHANGE=="0")

{

strAdd=strAdd+"'T'whereID="+m_PERSON;

//AfxMessageBox(strAdd);

}

elseif(m_CHANGE=="2")

{

strAdd=strAdd+"'F'whereID="+m_PERSON;

//AfxMessageBox(strAdd);

}

m_pConnection->Execute(strAdd,&ra,adCmdText);

m_pConnection->Close();

m_adodc1.SetRecordSource("select*fromPERSONNEL");

m_adodc1.Refresh();

UpdateData(FALSE);

}

⏹3.员工信息查询修改

窗口设计如下:

实现功能:

可以在所有记录上进行相关信息的查询和修改

各部分功能的代码如下

●增加新员工信息

//*************************************************************//

//以下实现按钮触发添加员工信息功能

voidCUpdateName:

:

OnBUTTONAddName()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

_ConnectionPtrm_pConnection;

:

:

CoInitialize(NULL);

//在ADO操作中建议语中要常用try...catch()来捕获错误信息

//因为他有时会经常出现一些想不到的错误

try

{

m_pConnection.CreateInstance("ADODB.Connection");

_bstr_tstrConn="Provider=SQLOLEDB;DataSourse=(local);InitialCatalog=人事管理系统;UID=sa;PWD=;PersistSecurityInfo=FALSE";

m_pConnection->Open(strConn,"","",adModeUnknown);

//if(m_pConnection->State==adStateOpen)MessageBox("成功连接数据库");

}

catch(_com_errore)

{

:

:

CoUninitialize();

//AfxMessageBox(e.ErrorMessage());

return;

}

_variant_tra;

m_PASSWD="12345";

m_AUTHORITY="2";

_bstr_tstrAdd="INSERTINTOPERSONVALUES('";

//strAdd=strAdd+m_ID+"','";

strAdd=strAdd+m_PASSWD+"','";

strAdd=strAdd+m_AUTHORITY+"','";

strAdd=strAdd+m_NAME+"','";

strAdd=strAdd+m_SEX+"','";

strAdd=strAdd+m_BIRTHDAY+"','";

strAdd=strAdd+m_DEPARTMENT+"','";

strAdd=strAdd+m_JOB+"','";

strAdd=strAdd+m_EDU_LEVEL+"','";

strAdd=strAdd+m_SPCIALTY+"','";

strAdd=strAdd+m_ADDRESS+"','";

strAdd=strAdd+m_TEL+"','";

strAdd=strAdd+m_EMAIL+"','";

strAdd=strAdd+m_STATE+"','";

strAdd=strAdd+m_REMARK+"')";

//AfxMessageBox(strAdd);

m_pConnection->Execute(strAdd,&ra,adCmdText);

m_pConnection->Close();

m_adodc1.SetRecordSource("select*fromPERSON");

m_adodc1.Refresh();

UpdateData(FALSE);

}

●查询功能

//***************************************************************************//

//连接上面两个组合框的输入值来响应相应的查询信息

voidCUpdateName:

:

OnBUTTONCheck()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

if((m_SelectYes==1&&m_CheckName=="")||(m_SelectYes==2&&m_CheckID==""))

{

CStringstr="select*fromPERSON";

m_adodc1.SetRecordSource(str);

m_adodc1.Refresh();

UpdateData(FALSE);

return;

}

else

{

if(m_SelectYes==1)

{

CStringstr="select*fromPERSONwhereNAME='"+m_CheckName+"'";

//AfxMessageBox(str);

m_adodc1.SetRecordSource(str);

m_adodc1.Refresh();

UpdateData(FALSE);

}

elseif(m_SelectYes==2)

{

CStringstr="select*fromPERSONwhereID='"+m_CheckID+"'";

//AfxMessageBox(str);

m_adodc1.SetRecordSource(str);

m_adodc1.Refresh();

UpdateData(FALSE);

}

}

}

●删除选定记录

//***************************************************************************//

//以下实现按钮触发删除当前列表所选择的记录

voidCUpdateName:

:

OnBUTTONDeleteName()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

intColNum=2;

CStringcolVal;

//要包含头文件"Columns.h"

CColumnscols;

//要包含头文件"Column.h"

CColumncol;

VARIANTv_ColNum,v_Value;

cols=m_datagrid1.GetColumns();//调用GetColumns返回CDataGrid对应的CColumns对象

v_ColNum.vt=VT_I2;

//读取ID

v_ColNum.iVal=0;//设置列编号

col=cols.GetItem(v_ColNum);//根据列编号返回CColumn对象

v_Value=col.GetValue();//读取列植

CStringtmp=v_Value.bstrVal;

//intcurRow=atoi(tmp);

CStringtmp2="确认要删除编号为"+tmp+"的记录吗?

";

if(MessageBox(tmp2,_T("数据删除提示"),MB_YESNO|MB_ICONSTOP)!

=IDYES)

return;

UpdateData(TRUE);

_ConnectionPtrm_pConnection;

:

:

CoInitialize(NULL);

try

{

m_pConnection.CreateInstance("ADODB.Connection");

_bstr_tstrConn="Provider=SQLOLEDB;DataSourse=(local);InitialCatalog=人事管理系统;UID=sa;PWD=;";

m_pConnection->Open(strConn,"","",adModeUnknown);

if(m_pConnection->State==adStateOpen)MessageBox("成功连接数据库");

}

catch(_com_errore)

{

:

:

CoUninitialize();

AfxMessag

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

当前位置:首页 > 农林牧渔 > 林学

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

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