数据库人事管理系统.docx

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

数据库人事管理系统.docx

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

数据库人事管理系统.docx

数据库人事管理系统

数据库系统原理及其应用教程课程设计报告

 

题目名称———人事管理系统

任课教师———

 

姓名:

学号:

 

2009年12月20日

一.概括

设计背景

在计算机不停发展的今日,计算机已经运用到各个领域,计算机的作用使由手工的操作到计算机的操作是一个大的飞腾,取代的复杂的简单犯错的人工操

作,节俭了大批的时间,提升了正确性,提升了数据的靠谱性。

数据库技术是计算机科学技术发展最快,应用最为宽泛的技术之一。

其在计算机设计,人工智能,电子商务,公司管理,科学计算等诸多领域均获得了宽泛

的应用,已经成为计算机信息系统和应用的中心技术和重要基础。

数据库设计是成立数据库及其应用系统的技术,是信息系统开发和建设中的中心技术,详细说,是指关于一个给定的应用环境,结构最优的数据库模式,建

立数据库及其应用系统,使之能够有效地储存数据,知足各样用户的应用需求(信息要乞降办理要求)。

数据库一个信息系统的各个部分可否密切地联合在一同以

及怎样联合,重点在数据库。

数据库设计的目标是为用户和各样应用系统供给一个信息基础设备和高效率的运转环境。

高效率的运转环境包含:

数据库数据的存取率、数据库储存空间的利用率、数据库系统运转管理的效率等都是高的。

为了便于公司人事管理,设计了认识管理系统,简化公司管理工作,实现管理现代化。

设计目的

为了使公司的认识管理效率获得提升,减少人工操作的犯错时机,实现数据共享,便于查问、增添、更新数据,实现整个公司的信息化和办公自动化,为公司的竞争供给优秀的条件。

设计内容

设计一个公司人事的数据库管理系统,包含数据库成立的需求剖析,数据的输入输出。

经过SQLServer2000实现。

设计用户的操作界面,实现数据的查问、增添、删除等功能。

设计三大基本

模块:

基本信息管理、考勤考评管理和系统用户管理。

利用的MFC设计界面,经过此中的ADOC实现数据库的连结。

设计平台

操作系统:

WindowsXP

DBMS:

SQLServer2000

开发工具:

VisualC++

二.需求剖析

1.功能剖析

依据需要达成的功能,设计出系统的整体功能模块。

本系统共分为3个功能模块:

基本信息管理、考评考勤管理、系统用户管理。

功能模块表示图以下:

 

人事管理系统

 

图1

人事管理系统功能模块表示图

基本信息管理模块:

基本信息管理

 

部门管理职工管理退出系统

 

图2基本信息管理模块表示图

考勤考评管理模块:

考勤考评管理

 

考考

评勤

管管

理理

图3考勤考评管理模块表示图

系统用户管理模块:

系统用户管理

增添

改正密码用户管理密码复位

删除

图4系统用户管理模块表示图

2.工作流图

开始

 

用户登录

 

成功

确认用户种类

 

管理员

 

用户

 

重试

失败

 

基本信息管理考勤考评管理系统用户管理

管理系统管理员改正复位密码;

拥有全部权限用户信息;增添删除一般用

管理一般用户;户;

 

管理自己的用户改正复位自己用

查问权限信息户密码;

删除自己用户;

 

退出系统结束

图5系统工作流图

3.数据流图

部门信息

 

采纳树

状结构

管理部

门信息,

在部门

间成立

附属关

系。

 

数据库成立

 

职工信息用户信息

 

职工基本信息

实现数据的插入、

删除、查问等功能

图6数据流图

 

退

4.数据词典

部门表Departments

编号

字段名

数据种类

能否能够为空

能否为主键

说明

1

Dep_Id

int

NotNULL

主键

部门编号

2

Dep_Name

varchar(40)

NotNULL

部门名称

3

Describes

varchar(400)

部门职能描绘

4

UpperId

int

NotNULL

上司部门编号

表1表Departments的结构

职工基本表Employees

字段名

数据种类

能否能够为

能否为主

说明

1

Emp_Id

int

NotNULL

主键

工号

2

Emp_Name

varchar(50)

NotNULL

姓名

3

Photo

iamge

照片

4

Sex

char

(2)

性别

5

Nationality

varchar(40)

国籍

6

Birth

varchar(20)

出诞辰期

7

Political_Party

varchar(40)

政治相貌

8

Culture_Level

varchar(40)

文化水平

9

Marital_Condition

varchar(20)

婚姻情况

10

Family_Place

varchar(60)

籍贯

11

Id_Card

varchar(20)

身份证号

12

BadgeID

varchar(40)

编号

13

Office_Phone

varchar(30)

办公电话

14

Mobile

varchar(30)

手机号

15

Files_Keep_Org

varchar(100)

档案

16

Hukou

varchar(100)

户口

17

HireDate

varchar(20)

上班日期

18

Dep_Id

int

部门编号

19

Position

varchar(40)

岗位

20

Title

varchar(20)

职务

21

State

tinyint

职工状态

22

UpperId

int

上司职工编

23

Contract_Duration

varchar(20)

联系方式

24

Memo

varchar(200)

备注

25

Fillin_Person

varchar(30)

改正人

26

Fillin_Time

varchar(20)

改正时间

表2表Employees结构

 

家庭成员记录表Family

编号

字段名

数据种类

能否能够为空

能否为主键

说明

1

Id

tingint

NotNULL

主键

编号

2

Emp_Id

int

NotNULL

职工编号

3

Name

varchar(50)

NotNULL

姓名

4

Sex

char

(2)

性别

5

Age

tinyint

年纪

6

Relationship

varchar(20)

与职工关系

7

WorkingOrg

varchar(40)

工作单位

表3表Family结构

教育及工作经历记录表Experience

编号

字段名

数据种类

能否能够为空

能否为主键

说明

1

Id

tinyint

NotNULL

主键

编号

2

Emp_Id

int

NotNULL

职工编号

3

Start_Date

char(10)

开始日期

4

End_Date

char(10)

结束日期

5

School_Org

varchar(50)

学校名称

6

Title

varchar(20)

职务

表4表Experience的结构

 

职工考勤表Checkin

编号

字段名

数据种类

能否能够为空

能否为主键

说明

1

CheckDate

char(10)

NotNULL

候选键

考勤月份

2

Emp_Id

int

NotNULL

候选键

编号

3

qqDays

decimal(4,1)

考勤天数

4

ccDays

decimal(4,1)

出差天数

5

bjDays

decimal(4,1)

病假天数

6

sjDays

decimal(4,1)

事假天数

7

kgDays

decimal(4,1)

旷工天数

8

fdxjDays

decimal(4,1)

法定休假天数

9

nxDays

decimal(4,1)

年休天数

10

dxDays

decimal(4,1)

倒休天数

11

cdMinutes

tinyint

迟到时间

12

ztMinutes

tinyint

早走天数

13

ot1Days

decimal(4,1)

一类加班天数

14

ot2Days

decimal(4,1)

二类加班天数

15

ot3Days

decimal(4,1)

三类加班天数

16

Memo

varchar(200)

备注

表5表Checkin的结构

 

职工考评表Evaluation

编号

字段名

数据种类

能否能够为空

能否为主键

说明

1

EvaMonth

char(10)

NotNULL

候选键

考评月份

2

Emp_Id

int

NotNULL

候选键

编号

3

ztEva

varchar(200)

整体评论

4

jlReason

varchar(200)

奖赏事由

5

jlAmount

smallint

奖赏金额

6

cfReason

varchar(200)

处分事由

7

cfAmount

smallint

处分金额

8

Meno

varchar(200)

备注

表6表Evaluation的结构

用户信息表Users

编号

字段名

数据种类

能否能够为空

能否为主键

说明

1

UserName

varchar(40)

NotNULL

主键

用户名

2

Pwd

varchar(40)

NotNULL

密码

3

User_Type

tinyint

NotNULL

种类

表6表Users的结构

三.观点模型设计

1.实体及其属性

 

部门

上司部门

编号

编号

名称只好描绘

 

图7实体“部门”E-R图

 

工号

姓名

职工状态

照片

上司职工

编号

户口

性别

档案

联系方式

上班日期

国籍

手机号

备注

职工

出诞辰期

部门编号办公电话

改正人

岗位

 

编号政治相貌

改正时间身份证号

文化水平

职务

籍贯婚姻情况

 

图8实体“职工”的E-R图

 

编号工作单位

职工编号

关系

 

家庭成员

姓名年纪

 

性别

 

图9实体“家庭成员”的E-R图

 

编号

职工编号

开始日期

教育工作经历

学校名称

 

结束日期职务

 

图10实体“教育工作经历”的E-R图

节余实体“职工考勤记录”、“职工测评记录”、“用户信息”的E-R图近似,此处省略。

 

2.各实体联系图(除“用户信息”)

 

部门

1

管理

m

职工

 

1111

家属经历考勤测评

mmmm

家庭成员教育工作经历考勤记录测评记录

图11实体联系图

 

四逻辑设计

1.关系模式

 

(E-R模型变换为关系模式,指明所知足的范式并给出原因)

Departments:

Dep_Id,Dep_Name,Describes,UpperId

Employees:

Emp_Id,Emp_Name,Photo,Sex,Nationality,Birth,Political_Party,Culture_Level,Marital_Condition,Family_Place,Id_Card,BadgeID,Office_Phone,Mobile,Files_Keep_Org,Hukou,HireDate,Dep_Id,Position,Title,State,UpperId,Contract_Duration,Memo,Fillin_Person,Fillin_Time

Family:

Id,Emp_Id,Name,Sex,Age,Relationship,WorkingOrg

Experience:

Id,Emp_Id,Start_Date,End_Date,School_Org,Title

Checkin:

CheckDate,Emp_Id,qqDays,ccDays,bjDays,sjDays,kgDays,fdxjDays,nxDays,dxDays,cdMinutes,ztMinutes,ot1Days,ot2Days,ot3Days,Memo

Evaluation:

EvaMonth,Emp_Id,ztEva,jlReason,jlAmount,cfReason,cfAmount,Meno

Users:

UserName,Pwd,User_Type

2.范式剖析

因为每张基本表中每一个属性列只对应独一的值,即属性都是不行再分的,因此都知足第一范式(1NF)。

关于基本表Departments,我们认为Dep_Id,Dep_Name是不重名的,因此Dep_Id和Dep_Name关于Describes和UpperId存在部分依靠,因此只知足第一范式

 

1NF)。

关于基本表Users,只有三个属性,没有属性依靠,因此知足BC凡是(BCNF),同时也就知足第三范式(3NF)。

其余基本表,均不存在部分函数依靠和传达函数依靠,知足第三范式(3NF)。

五.源代码及查问截图

1.程序流程图

用户登录

 

登岸界面

 

管理员

 

一般用户密码正确?

 

一般用户登录

退出

管理员登岸

 

图12用户登录程序流程图

查问

 

 

再查找

 

结束

用户

 

查问条件

 

信息

 

存在

 

确认

图13查问程序流程图

 

插入

 

开始

 

信息

 

是保留

 

从头保留否成功

否是

结束

 

图14插入程序流程图

 

2.数据库连结方法

使用ADO连结数据库,此顶用到

MicrosoftDataListControl,version(OLEDB)

MicrosoftDataGridControl(SP6)(OLEDB)

MicrosoftDataComboControl,version(OLEDB)

MicrosoftADODataControl(SP6)(OLEDB)

四个控件实现与数据库的连结利用

连结数据库以下:

(其余控件见源代码)

ADOConn.cpp:

implementationoftheADOConnclass.

//////////////////////////////////////////////////////////////////////

#include"stdafx.h"

#include"ADOConn.h"

#ifdef_DEBUG

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

//

//

//#definenewDEBUG_NEW

//#endif

//

////////////////////////////////////////////////////////////////////////

//Construction/Destruction

////////////////////////////////////////////////////////////////////////

//

//ADOConn:

:

ADOConn()

//{

//

//}

//

//ADOConn:

:

~ADOConn()

//{

//

//}

//

//初始化—连结数据库

//voidADOConn:

:

OnInitADOConn()

//{

//初始化OLE/COM库环境

//:

:

CoInitialize(NULL);

//

//try

//{

//创立Connection对象

//m_pConnection.CreateInstance("ADODB.Connection");

//设置连结字符串,一定是BSTR型或许_bstr_t种类

_bstr_tstrConnect="

Provider=SQLOLEDB;

Server=WU-HUANZHUO;Database=HrSys;IntegratedSecurity=SSPI;

";

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

}

//捕获异样

catch(_com_errore)

{

//显示错误信息

AfxMessageBox(e.Description());

}

}

履行查问

_RecordsetPtr&ADOConn:

:

GetRecordSet(_bstr_tbstrSQL)

{

try

 

{

连结数据库,假如Connection对象为空,则从头连结数据库

if(m_pConnection==NULL)

OnInitADOConn();

创立记录集对象

m_pRecordset.CreateInstance(__uuidof(Recordset));

获得表中的记录

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

}

捕获异样

catch(_com_errore)

{

显示错误信息

AfxMessageBox(e.Description());

}

返回记录集

returnm_pRecordset;

}

履行SQL语句,InsertUpdate_variant_tBOOLADOConn:

:

ExecuteSQL(_bstr_tbstrSQL)

{

_variant_tRecordsAffected;try

{

能否已经连结数据库

if(m_pConnection==NULL)

OnInitADOConn();

Connection对象的Execute方法:

(_bstr_tCommandText,

VARIANT*RecordsAffected,longOptions)

此中CommandText是命令字串,往常是SQL命令。

//参数RecordsAffected是操作达成后所影响的行数,

参数Options表示CommandText的种类:

adCmdText-文本命令;adCmdTable-表名

adCmdProc-储存过程;adCmdUnknown未-知

m_pConnection->Execute(bstrSQL,NULL,adCmdText);

returntrue;

}

catch(_com_errore)

{

AfxMessageBox(e.Description());

returnfalse;

}

 

}

voidADOConn:

:

ExitConnect()

{

封闭记录集和连结

if(m_pRecordset!

=NULL)

m_pRecordset->Close();

m_pConnection->Close();

开释环境

:

:

CoUninitialize();

}

3.以基本表Departments为例,其各功能代码的实现

成立各基本表所对应的类,此处为表记清楚,以基本表名作为该类类名。

关系对应类,属性对应此中的成员变量,各操作由成员函数达成。

各基本表的查问、删除、插入功能的实现,以基本表Departments为例,其余表近似。

头文件:

Departments.h:

interfacefortheCDepartmentsclass.

//////////////////////////////////////////////////////////////////////

#include

#if!

defined(AFX_DEPARTMENTS_H__0EFF9A6D_F749_49ED_ADB0_170E78A422C6__INCLUDED_

#defineAFX_DEPARTMENTS_H__0EFF9A6D_F749_49ED_ADB0_170E78A422C6__INCLUDED_

#if_MSC_VER>1000

#pragmaonce

#endif//_MSC_VER>1000

classCDepartments

{

private:

intDep_id;

CStringDep_name;

CStringDescribe;

intUpperId;

public:

CStringArraya_DepName;

CStringArraya_DepId;

CStringArraya_UpperId;

 

CDepartments();

virtual~CDepartments();

读取和设置成员变量

intGetDep_id();

voidSetDep_id(intiDep_id);

CStringGetDep_name();

voidSetDep_name(CStringcDep_name);

CStringGetDescribe();

voidSetDes

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

当前位置:首页 > 解决方案 > 学习计划

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

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