人事管理系统实验报告文档格式.docx

上传人:b****5 文档编号:20463212 上传时间: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

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

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

员工实体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

密码

AUTHORITY

用户权限

NAME

姓名

SEX

varchar

性别

BIRTHDAY

NULL

生日

DEPARTMENT

所在部门

JOB

职务

EDU_LEVEL

varchar

受教育程度

SPCIALTY

专业技能

ADDRESS

家庭住址

TEL

联系电话

EMAIL

电子邮箱

STATE

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

REMARK

备注

表2PERSONNEL人事变更记录表

记录编号

PERSON

员工号

CHANGE

变更代码

DESCRIPTION

16

详细记录

表3EDU_LEVEL受教育程度代码表

CODE

4

代码

NULL

描述

表4JOB职务代码表

字段名

数据类型

长度

int

NOTNULL

表5PERSONNEL_CHANGE人事变动代码表

表6DEPANTMENT部门信息表

是否为空

部门编号

部门名称

MANAGER

部门经理

INTRO

简介

表7受教育程度代码

小学

1

初中

2

高中

3

职高

大本

5

大专

6

硕士

7

博士

8

博士后

表8人事变更代码

新员工加入

职务变动

辞退

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=="

请输入密码"

if(ID!

="

&

&

PASSWD!

if(ID==m_ID&

PASSWD==m_PASSWD)

{

AfxMessageBox("

欢迎使用!

CAdminBoxa;

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

a.DoModal();

//调用函数

}

else

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

/*time++;

if(time>

2)

exit(0);

*/

}

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

2.主窗口的设计

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

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

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

voidCAdminBox:

OnBUTTONUpdateName()

CUpdateNamea;

a.DoModal();

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

//调用人事变动窗口

OnBUTTONPersonnel()

CPERSONNELa;

//提供退出系统的功能

OnButtonExit()

if(MessageBox("

确定退出?

_T("

),MB_YESNO|MB_ICONSTOP)==IDYES)

exit(0);

⏹3.人事变动

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

代码如下:

voidCPERSONNEL:

OnButton1()

_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());

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

_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"

F'

m_adodc1.SetRecordSource("

select*fromPERSONNEL"

m_adodc1.Refresh();

UpdateData(FALSE);

⏹3.员工信息查询修改

窗口设计如下:

实现功能:

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

各部分功能的代码如下

●增加新员工信息

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

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

voidCUpdateName:

OnBUTTONAddName()

{

PersistSecurityInfo=FALSE"

//if(m_pConnection->

State==adStateOpen)MessageBox("

//AfxMessageBox(e.ErrorMessage());

m_PASSWD="

12345"

m_AUTHORITY="

INSERTINTOPERSONVALUES('

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);

select*fromPERSON"

●查询功能

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

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

OnBUTTONCheck()

if((m_SelectYes==1&

m_CheckName=="

)||(m_SelectYes==2&

m_CheckID=="

))

CStringstr="

m_adodc1.SetRecordSource(str);

m_adodc1.Refresh();

UpdateData(FALSE);

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)

select*fromPERSONwhereID='

+m_CheckID+"

●删除选定记录

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

OnBUTTONDeleteName()

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)

AfxMessag

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

当前位置:首页 > 初中教育 > 理化生

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

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