数据库课程设计-员工信息管理系统_第1页
数据库课程设计-员工信息管理系统_第2页
数据库课程设计-员工信息管理系统_第3页
数据库课程设计-员工信息管理系统_第4页
数据库课程设计-员工信息管理系统_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书

姓名学号班级

姓名性别班级在本项目中口勺分工

VB界面设计、系统查询功

能、SQL表日勺创立完善和

权限、触发器设计、系统

强健性维护

课题组VB界面设计、系统添加功

能、SQL表日勺建立和索引

组员设计、数据字典、系统测

试、系统逻辑设计

系统修改功能、SQL表欧I

创立、需求分析、

系统顾客注册、考勤修改

功能、SQL表的创立、功

能设计分析

课程名称数据库系统原理课程性质专业必修课

设计时间2023年5月3日——2023年6月15日

设计名称员工信息管理系统

1、对实际系统要有恰当日勺需求分析过程,内容至少应包括重要数

据流图、基本数据字典等信息的描述和有关系统功能的分析。

2、设计过程应体现和侧重对数据库的分析和设计过程,内容至少

包括E-R图设计,关系模式设计和优化,表间关系的分析等内容

(至少有4张以上基表的设计)。

3、要有数据库和表口勺创立脚本,输入必要H勺初始数据(每表至少

有20条以上记录)。

4、要有体现数据库安全性方略的设计过程,包括必要的权限设计

与管理。

设计规定

5、要有数据完整性设计,应包括必要日勺数据完整性校验、•致性

检查等。

6、对经典功能鼓励使用存储过程、函数和触发器的设计与应用。

7、系统前台的设计,可由学生自选开发工具完毕,但要完毕与数

据库连接配置与有关数据控件的绑定。

8、成果提交形式:课程设计汇报+完毕系统功能的、有一定强健

性的系统。

1、需求分析;

2、进行数据库H勺概念设计;

设计思绪

3、进行数据库的逻辑设计;

与4、进行数据库的物理设计;

设计过程5、进行应用程序设计;

6、编程实现。

7、调试完善

1、2023.05.3-2023.05.5需求分析

2、2023.05.7-2023.05.10概念设计

计划与进度3、2023.05.10-2023.05.14逻辑设计

4、2023.05.15-2023.06.2系统设计

5、2023.06.5-2023.06.15课程设计汇报撰写

任课教师

意见

说明

设计名称:员工信息管理系统日期:2023年5月3日

设计内容:

1、员工信息添加

2、员工信息修改

3、员工信息删除

4、员工信息查询(多种方式)

5、员工考勤信息添加

6、员工考勤信息修改

7、员工考勤信息删除

8、员工考勤信息查询

9、顾客注册

10、SQL基本表建立

11、SQL权限、索引、触发器、函数的创立

12、ODBC连接

设计目的与规定:

1)加深对数据库系统原理、软件工程、程序设计语言日勺理论知识日勺理解和应用

水平。

2)通过设计实际日勺数据库系统应用课题,深入熟悉数据库管理系统的操作技术,

提高动手能力,提高分析问题和处理问题的能力。

3)通过设计,掌握数据库应用系统综合开发日勺措施与技能。

设计环境或器材、原理与阐明:

VB6.0

SQLSERVER2000

设计过程(环节)或程序代码:

1需求分析

1.1系统需求分析

在人才过剩日勺今天,企业对于有用人才日勺需求逐渐加大,企业内部日勺人事变

动和部门规划也开始加速,老式的人事档案已经不能满足各个企业H勺人员流动速

度,迫使人们起用新的管理措施来管理员工日勺有关信息。科学技术日新月异日勺进

步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算

机技术应用方面得到了广泛H勺普和和使用。信息化时代H勺到来成为不可抗拒H勺时

尚,人类文明正在进入一种崭新H勺时代。因此,员工管理系统也以以便、快捷、

费用低、绿色环境保护日勺长处正慢慢地进入各个行业和领域,将老式的员工管理

方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙日勺工作,加速信息H勺更

新速度,使企业管理层第一时间理解到员工日勺信息,从而深入的进行对员工H勺调

配。

功能需求详细阐明:

一增长一

增长员工的基本信息、考勤信息

一编辑一

顾客可以对员工信息、考勤信息进行删除

顾客可以对员工的姓名、编号等员工基本信息进行修改

顾客可以对员工的出勤天数、请假天数等考勤信息进行修改

一查询一

顾客可以根据姓名、编号,精确的I查到要找的员工,也可以选择部门,查看

选中的部门日勺所有员工。

1.2可行性分析

本次课程设计题目:“员工信息管理系统”,重要目H勺是编制一种登陆系统,

连接数据库系统,用以实现员工个人信息与考勤信息的管理。同步对整个系统的

分析、设计过程给出一种完整的论证。

由于本系统管理的对象简朴,且每个数据内容之间都具有关联性,涉和过程

并不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指

导老师日勺指导和有关参照文献,尤其是网上和图书馆资料,尤其是参照其他程序

的功能,因此完全可以实现。

2数据库的概念设计

实体设计:

员工(员工编号,姓名,性别,出生日期,籍贯,专业,学历编号,职称编号,

职务编号,部门编号,参与工作时间,讲入企业时间,员工备注,政治面貌,员

工技术专长,毕业学校,用工性质,工资等级,协议期限)

考勤(员工编号,考勤日期,姓名,应出勤天数,迟到次数,早退次数,请假天

数,旷工天数,加班天数,加班天数,补休天数,加班费,扣款,备注)

根据以上需求分析,可画出E-R模型图(图1.1):

图1.1

E-R图

3数据库的逻辑设计

根据系统功能设计的规定以和功能模块的划分,对员工信息管理系统可以

列出以

下数据项和数据构造:

员工个人基本信息:包括员工编号、姓名、性别、出生日期、籍贯、专业、

学历编号、职称编号、职务编号、部门编号、参与工作时间、进入企业时间、员

工备注、政治面貌、员工技术专长、毕业学校、用工性质、协议期限。

员工考勤基本信息:包括员工编号、姓名、应出勤天数、迟到次数、早退

次数、请假天数、旷工天数、加班天数、加班天数、补休天数、加班费、扣款、

备注。

部门信息:包括部门编号、部门名称、部门简介

职称信息:包括职称序号、职称名称、备注

学历信息:包括学历序号、学历名称、备注

职务信息:包括职务序号、职务名称、备注

顾客信息:包括顾客欧J帐号和密码。

4数据库的物理设计

4.1数据字典与关系图

根据系统需求和逻辑构造设计,本网站基于SQLServer2023数据库,建

立如下数据库表(表1.1):

表1.1

库名(员工数据库)

顾客信息表(sysuser)

字段类型阐明大小与否为空

user_idnvarchar顾客账号8NOTNULL

user_pwdnvarchar密码8NOTNULL

部门信息表(department)

字段类型阐明大小与否为空

deptidint部门编号4NOTNULL

dept_namenvarchar部门名称20NOTNULL

dcpt_desnvarchar部门简介50

员工基本信息表(employee)

字段类型阐明大小与否为空

emp-idint员工编号4NOTNULL

empnamcnvarchar姓名20NOTNULL

sexnvarchar性别2NOTNULL

birthdaysmaldatetime出生日期4NOTNULL

nativenvarchar籍贯20

professionnvarchar专业20

eduidint学历编号4NOTNULL

title_idint职称编号4NOTNULL

dept_idint部门编号4NOTNULL

duty_idint职务编号4NOTNULL

empdatelsmaldatetime参与工作时间4NOTNULL

empdate2smaldatetime进入企业时间4NOTNULL

empdcsnvarchar员工备注255

zzmmnvarchar政治面貌50

ygjstcnvarchar员工技术专长50

bisxnvarchar毕业学校50

ygxznvarchar用工性质50

htqxnvarchar协议期限50

职称信息表(title)

字段类型阐明大小与否为空

title_idint职称序号4NOTNULL

title_namenvarchar职称名称20NOTNULL

title_desnvarchar备注255

学历信息表(education)

字段类型阐明大小与否为空

edu_idint学历序号4NOTNULL

edu_namenvarchar学历名称20NOTNULL

edu_desnvarchar备注255

职务信息表(duty)

字段类型阐明大小与否为空

dutyidint职务序号4NOTNULL

duty_namenvarchar职务名称20NOTNULL

duty_desnvarchar备注255

考勤信息表(checkin)

字段类型阐明大小与否为空

emp_idint员工编号4NOTNULL

check__ymnvarchar员工姓名6NOTNULL

wdayreal应出勤天数4NOTNULL

l_numsint迟到次数4NOTNULL

e_numsint早退次数4NOTNULL

hdaysreal请假天数4NOTNULL

ndaysreal旷工天数4NOTNULL

o_daysreal加班天数4NOTNULL

r_daysreal补休天数4NOTNULL

overtime_sreal加班费4NOTNULL

d_checkreal扣款4NOTNULL

checkdesnvarchar备注255

注:波浪线为主键。

checkindepartment*employee+title*

emp_iddept_idgem?_id

title-nane

__check_ymdept_nameem?_name

title_des

—w_days__dept_dessex

—l_nu»sbirthday

—jnwnsnative

h_daysprofession

n_daysd

o_daystitle.id

—r_dayse<ucation♦de?t_idduty*

overtime'sduty_id

9«du_idgduty」d

d_checkedu_nameem?_datelduty_na»e

——

__chtck_dtsedu_desduty_des

em?_des

——

zznm

ygjstc

——

bisx

sysuser

y*z

|user_id

gzlj

luser_pwd——

htjx

图1.2

关系图

4.2数据库建立与初始化

4.2.1建立数据库

Createtableemployee

(

emp_idint(4)notnull,

cmp_namcnvarchar(20)notnull,

sexnvarchar(2)notnull,

birthdaysmaldatctimc(4)notnull,

nativenvarchar(20),

professionnvarchar(20),

cdu_idint(4),notnull,

title_idinl(4),notnull,

dept_idint(4),notnull,

duty_idint(4),notnull,

emp_dale1smaldatetime(4),notnull,

emp_date2smaldatetime(4),notnull,

emp_desnvarchar(255),

zzmmnvarchar(5D),

ygjstcnvarchar(50),

bisxnvarchar(50),

ygxznvarchar(50),

htqxnvarchar(50),

constraintEmPKprimarykey(emp_id),

constraintEduFKforeignkey(edu_id)referencescducation(cdu_id),

constraintTitleFKforeignkey(title_id)referencescducation(title_id),

constraintDuFKforeignkcy(duty_id)referencescducation(duty_id),

constraintDeFKforeignkey(dept_id)referenceseducation(dept_id),

)

Createtabletitle

(

tille_idint(4)notnull,

title_namenvarchar(20)notnull,

title_desnvarchar(255)

constraintTiPKprimarykey(title_id),

)

Createtableeducation

edu_idint(4)notnull,

edu_namenvarchar(20)notnull,

edu_desnvarchar(255)

constraintEdPKprimarykey(edu_id),

)

Createtableduty

(

duty_idint(4)notnull,

duty_namenvarchar(20)notnull,

duty_desnvarchar(255)

constraintDuPKprimarykey(duty_id),

)

Createtabledepartment

(

dept_idint(4)notnull,

dept_namenvarchar(20)notnull,

dept_desnvarchar(255)

constraintDePKprimarykey(dept_id),

)

4.2.2安全性(权限)

grantallprivilegesonemployeetosasa

grantallprivilegesoncheckintosasa

grantallprivilegesonsysusertosasa

grantallprivilegesondutytosasa

grantallprivilegesontitletosasa

grantallprivilegesondepartmenttosasa

grantallprivilcgcsoneducationtosasa

4.2.3触发器

功能:使姓名中不能出现数字。

CREATETRIGGERT_IN

ONdbo.cmploycc

FORINSERT,Update

AS

IFEXISTS(

SELECT*

FROMemployee

WHEREemp_namelike'%[0-9]%’

)

BEGIN

RAISERRORC错误!姓名中不可出现数字;16,1)

ROLLBACK

RETURN

END

4.2.4建立索引

createclusterindexpk_dutyonduty_id

createclusterindexpkdepartmentondeptid

createclusterindexpktitleontitle_id

createclusterindexpkeducationoncdu_id

createclusterindexpk_sysuseronuser_id

createclusterindexpkemployeeonempid

createclusterindexpkcheckinon(empid,chcckym)

4.2.5VB数据库连接语句

OptionExplicit

PublicdbConnAsNewADODB.Connection

PublicloginUserAsString

PublicloginOKAsBoolean

PubliccmdTypeAsString

PublictUser_idAsString

PublictDept_idAsInteger

PublictEmp_idAsInteger

PublictCheck_ymAsString

PublictQxAsString

SubMainO

IfConnectToDatabase=FalseThen

MsgBox〃连接数据库出错!〃

End

EndIf

loginOK=False

cmdinlpype=〃〃

frmLogin.ShowvbModal

UnloadfrmLogin

IfloginOKThen

MDIForm1.Show

EndIf

EndSub

'连接到数据库

FunctionConnectToDatabase()AsBoolean

OnErrorGoToERRCONN

’设置服务器名称,数据库名称,登录名(此时假设密码为空)

dbConn.ConnectionString=,,dsn=rsgl;Database=man;uid=ZFS;pwd=z,

'dbConn.ConnectionString

,zProvider=msdasql;Database=man;server=computer;uid=sa;pwd=//

dbConn.Open

ConnectToDatabase=True

ExitFunction

ERR_C0NN:

ConnectToDatabase=False

EndFunction

4.2.6ODBC连接

连接数据库措施如下:

1、打开我的电脑一控制面板…管理工具。

2、双击“数据源(ODBC)”,打开“ODBC数据源管理器”对话框,如图(图1.3)所示。

3、在“系统DSN”选项卡下,

单击“添加”按钮,弹出如

图(图1.4)所示对诏框,

在该对话框中选择SQL

Sei-ver选项。

4、单击“完毕”按钮。

5、在该对话框中输入数据源名“emp”、服务器名,按规定填空完毕后,即可完毕数据源H勺

连接设置(图1.6)。

图1.3

图1.4图1.5

图1.6

l区J

SQLServerODBC数Jg源测试ODBCMicrosoftSQLServer

则试结果将按下列沉蹙创建新的ODBC数据源

MicrosoftSQLServerODBC驱动程序版本

SQLScrvtrODBC驱动程序版本06,006001

0600.6001

总iP

T管H

正在运行连接病去.为E

图:0

据50

搜0)

一f

=二

凄■

星6£

教X

的涯S

服2

士0TYe:

笠I

S空^:NO:

心!-

心No

m在

则试成功!用r

?.No

用;^1g-

s—-

定^

'识

:.s

制gNo

㈣1^填

值Ye

用A)

画1

,充YeS

据Al

加2

.•

则式数据源而二]确定[[取消

5应用程序设计

5.1系统功能分析

员工信息管理系统基于顾客验证登录H勺方式实现员工个人信息管理和员工考勤信息管

理。其功能构造如图(图1.7):

图1.7:

I

员工信息管理系统“

系统功能构造图

5.2系统功能模块设计

员工信息管理系统重要包括顾客登录、新增、编辑、查询功能模块。

1、顾客登陆

员工信息管理系统采用顾客名和密码验证方式,进入员工信息管理系统前,

顾客必须在登录窗口输入顾客名和密码,只有验证通过口勺顾客方可进入员工信息

管理系统操作主页面。

2、新增功能模块

包括2个功能模块:员工个人信息的添加、员工考勤信息的添加

3、编辑功能模块

包括2个功能模块:员工个人信息的删除、按月份进行员工考勤信息编辑

与删除

4、查询功能模块

包括2个功能模块:员工个人信息查询、按月份进行员工考勤信息查询

系统操作流程图(图1.8):

图1.8:

设计成果与分析(可以加页”

1、员工信息查询(frmEmpInfo2.frm)

图1.9:员工信息查询界面

重要代码如下:

PrivateSubComnandl_Click()

DimallIdAsString

DimstrNameAsString

DimstrDeptAsString

DimstrTitleAsString

DimstrDutyAsString

DimstrEduAsString

DimstrSexAsString

'设置错误陷阱

OnErrorGoToERR_CONN

IfTrim(Mskld)=""Then

strld=〃〃

Else

strld="anda.emp_id='〃&Mskld&〃'〃

EndIf

IfTrim(Text2)=""Then

strName=〃”

Else

strName="anda.cmp_name=,/z&Trin(Text2)&”

EndIf

IfcboDcpt.ListZndcx=0Then

strDept=〃”

Else

strDept="andc.deptname='〃&cboDept.Text&

EndTf

IfcboTitle.Listindex=0Then

strTitie

Else

strTitle="ande.title_name=,&cboTitle.Text&

EndIf

IfcboDuty.Listindex=0Then

strDuty=〃*

Else

strDuty="andd.duty_name=,〃&cboDuty.Text&

EndIf

IfcboEdu.ListIndex=0Then

strEdu=

Else

strEdu="andb.cduname='〃&cboEdu.Text&

EndIf

IfcboScx.ListIndex=0Then

strSex=〃〃

Else

strSex=〃anda.sex='〃&cboSex.Text&

EndTf

'打开一种数据集

strSql="select

a.empid,a.empname,a.sex,b.eduname,c.deptname,d.dutyname,e.title

namefromemployeea,educationb,departmentc,dutyd,titleewhere

a.edu_id=b.edu_idanda.dept_id=c.dept_idanda.duty_id=d.duty_idand

a.title_id=e.title_id〃&strld&〃&strName&〃〃&strDept&〃〃

&strTitle&〃〃&strTitle&""&strDuty&〃"&strEdu&""&strSex

&〃orderbya.emp_:d〃

rs.OpenstrSql,dbConn,adOpenForwardOnl5^,adLockReadOnly

Ifrs.EOFThen

Label9=”找到0条记录“

flxShow.Rows=1

Else

'填写数据

flxShow.Rows=1

DoWhileNotrs.EOF

flxShow.Rows=flxShow.Rows+1

flxShow.TextMatrix(flxShow.Rows1,0)=

rs.Fields(O).Value

flxShow.TextMatrix(fIxShow.Rows-1,i)=rs.Fields(i■

1).Value

Nexti

rs.MoveNext

Loop

Labe19=〃找到〃&flxShow.Rows-1&〃条记录”

EndIf

rs.Close

ExitSub

ERR.CONN:

MsgBox〃请检查输入的数据与否有效〃

EndSub

PrivateSubCommand3_Click()

UnloadMe

EndSub

PrivateSubFormLoad()

‘性别

cboSex.Additem”〃

cboSex.Additem”男〃

cboSex.Additem"女〃

cboSex.Listlndex=0

'学历

strSql="Selectedu_id,edunamefromeducationOrderByedu_id〃

rs.OpenstrSql,dbConn,adOpenForwardOnl5^,adLockReadOnly

cboEdu.Addltem”〃

DoWhileNotrs.EOF

cboEdu.Addltem(rs.Fields("edunamc").Value)

cboEdu.ItemData(cboEdu.Newlndcx)=rs.Fields.Value

rs.MoveNext

Loop

rs.Close

cboEdu.Listindex=0

'部门

strSql="Selectdeptid,deptnamefromdepartmentOrderBydeptid〃

rs.OpenstrSql,dbConn,adOpenForwardOnly,adLockReadOnly

cboDept.Additem

DoWhileNotrs.EOF

cboDept.AddItem(rs.Fields(〃dept_name〃).Value)

cboDept.ItenData(cboDept.Newlndex)

rs.Fields(〃dept_id〃).Value

rs.MoveNext

Loop

rs.Close

cboDept.Listindex=0

'职务

strSql="Selectduty_id,duty_namcfrondutyOrderBydutyid”

rs.OpenstrSql,dbConn,adOpcnForwardOn1y,adLockReadOnly

cboDuty.Addltem”〃

DoWhileNotrs.EOF

cboDuty.Addltem(rs.Fields("duty_namc〃).Value)

cboDuty.ItenData(cboDuty.Newlndex)

rs.Fields("duty_id〃).Value

rs.MoveNext

Loop

rs.Close

cboDuty.Listindex=0

'职称

strSql="Selecttitle_id,title_namefromtitleOrderBytitle_id,z

rs.OpenstrSql,dbConn,adOpenForwardOn1y,adLockReadOnly

cboTitle.Addlten〃"

DoWhileNotrs.EOF

cboTitle.Addltem(rs.Fields(/ztitle_namez,).Value)

cboTitle.ItcmData(cboTitle.Newlndcx)

rs.Fields(〃titlc_id").Value

rs.MoveNext

Loop

rs.Close

cboTitle.Listindex=0

’设置列数

fIxShow.Cols=8

'列标题

fIxShow.TextMatrix(0,0)=〃工号〃

fIxShow.TextMatrix(0,1)二

fIxShow.TextMatrix(0,2)二〃姓名〃

fIxShow.TextMatrix(0,3)=〃性别〃

flxShow.TextMatrix(0,4)=〃学历”

flxShow.TextMatrix(0,5)=〃部门〃

flxShow.TextMatrix(0,6)=〃职务〃

flxShow.TextMatrix(0,7)=〃职称〃

’设置列宽

flxShow.ColWidth(O)=1000

flxShow.ColWidth(l)=0

flxShow.ColWidth(2)=1400

flxShow.ColWidth(3)=800

flxShow.ColWidth(4)=1400

flxShow.ColWidth(5)=1400

flxShow.ColWidth(6)=1400

flxShow.ColWidth(7)=1410

'设置各列的对齐方式

Fori=0To7

flxShow.ColA'ignment(i)=0

Nexti

'表头项居中

flxShow.FillStyle=flexFillRepeat

fIxShow.Col=0

fIxShow.Row=0

fIxShow.RowSel=1

fIxShow.ColSel=fIxShow.Cols-1

fIxShow.CellAlignment=4

fIxShow.Rows=1

'强制跨越整个行选择

fIxShow.SelectionMode=f1exSe1ectionByRow

EndSub

2^员工考勤查询(frmCheckInfo2.frm)

员工考勤查询界面

重要代码如下:

PrivateSubCommandsClick()

DimstrTdAsString

DimstrNameAsString

DimstrDeptAsString

DimstrCheckAsString

'按工号查询

IfLen(Trim(MskZd))二0Then

strTd=""

Else

strld=〃anda.emp_id='〃&Mskld&

EndIf

'按姓名查询

IfLen(Trim(Text1))=0Then

strName=

Else

strName="andb.emp_name=,z,&Trin(Textl)&

EndIf

'按部门查询

IfcboDept=〃〃Then

strDept=〃*

Else

strDept=〃andc.dept_name=,〃&cboDept&

EndIf

'准时间查询

IfcboCheckYear="〃Then

IfcboCheckMonth=""Then'年月都为空时

strCheck=

Else'任意年份的指定月

strCheck="anda.checkymin('〃&Year(Date;&

cboCheckMonth&"&Year(Date)-1&cboCheckMonth&"')〃

EndIf

Else

IfcboCheckMonth=Then'指定年份欢J任意月

strCheck="anda.checkymin('"&cboCheckYear&'01〃&

〃','〃&cboCheckYear&〃02〃&"&cboCheckYea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论