数据库课程设计报告人事管理系统.docx
《数据库课程设计报告人事管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告人事管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告人事管理系统
课程设计报告
课程设计题目:
人事管理系统
姓名:
学号:
班级:
指导教师:
2016年1月15日
1.题目分析:
人事管理系统是企、事业单位常见的计算机信息管理系统。
它的主要任务是对各种人事信息进行日常的信息管理,如人员信息的输入、查询、修改、增加、删除,迅速准确地完成各种人员信息的统计计算和汇总,快速打印出报表。
在建立与实现人事管理系统时,进行了功能划分,能够由数据库管理系统完成的功能应尽可能由数据库管理系统守成,充分发挥数据库管理系统高效、完全、可靠、便捷的性能,减少编程人员的工作量。
工资管理系统是数据库管理系统的一个比较典型的应用,前台使用的是微软的VB6.0,后台数据库采用MicrosoftSQLSever数据库。
运行结果证明,本人事管理系统极大提高了工作效率,节省了人力和物力,自重满足企业员工管理的需要。
人事管理系统的主要任务是用计算机对各种员工信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种员工信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了人事管理系统。
人事管理系统主要有以下几大功能:
(1)对单位人员的变动进行处理。
一个单位的职工不会是一成不变的,总是在不断的变化:
有调出、有调入、也有职工在本单位内部调动。
因此,设计系统是应考虑到这些情况。
(2)对职工的工资进行计算、修改。
可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算基本工资、岗位工资、水电费及实发金额等。
(3)查询统计功能。
要求即可以单项查询,比如查看某个职工的就职情况等;也可以多项查询,比如某个部门所有的员工的工资信息。
2.设计分析:
1,数据表的设计:
(1)基本信息表:
键
名称
数据类型
大小
空
默认值
主键
员工编号
char
8
Notnull
姓名
char
8
Notnull
性别
char
2
null
“男”
出生年月
datetime
8
null
外键
所属部门
char
4
null
文化程度
char
4
null
职称
char
12
null
身份证号
Varchar
50
null
婚姻状况
Char
20
null
备注
Varchar
100
null
年龄
Int
Null
(2)基本部门表
键
名称
数据类型
大小
空
默认值
主键
部门编号
char
4
Notnull
部门名称
char
20
null
部门负责人
char
8
null
部门人数
int
4
null
(3)职工工资表
键
名称
数据类型
大小
空
默认值
主键、外键
员工编号
char
8
不可以
外键
部门编号
char
4
可以
基本工资
numeric
5(8,2)
可以
奖金
numeric
5(8,2)
可以
2.ER图设计:
3.ER图转换成关系模式:
(主键添加下划线)
(1)基本信息(编号,姓名,性别,籍贯,年龄,学历,婚姻状况,部门,职称,参加工作时间,岗位,工资,身份证号,电话号码,备注)
(2)职工部门:
(部门编号,部门名称,职工总数,部门负责人,所有职工编号)
(3)职工工资表:
(编号,姓名,工资,奖金)
(4)人事管理(编号,部门编号,姓名)
3.创建人事管理系统(数据库部分)
1创建数据库:
(1)创建数据库的实现:
createdatabase人事管理系统
onprimary
(
name=人事管理系统,
filename='G:
\数据库\人事管理系统.mdf',
size=5,
maxsize=100,
filegrowth=10%
)
logon
(
name=人事信息管理系统,
filename='G:
\数据库\人事管理系统.ldf',
size=3,
maxsize=100,
filegrowth=5
)
(2)创建数据库:
2.创建基本数据表:
(1)创建数据标的实现;
use人事管理系统
createtable基本职工信息表
(姓名varchar(20),
编号char(8),
性别char(8),
籍贯char(10),
年龄int,
学历varchar(20),
婚姻状况varchar(20),
部门varchar(20),
职称varchar(20),
参加工作时间char(10),
岗位varchar(30),
工资char(20),
省份证号varchar(30),
电话号码varchar(30),
备注varchar(50)
)
use人事管理系统
createtable职工部门表
(部门编号int,
部门名称varchar(30),
部门负责人varchar(30),
职工总数int,
所有职员编号varchar(100)
)
use人事管理系统
createtable职工工资表
(编号char(8),
姓名varchar(50),
工资char(20),
奖金char(8)
)
数据表的创建:
✍基本信息表:
✍职工部门表
✍职工工资表
3.创建存储过程:
createprocp2(@snamevarchar(20))
as
ifexists(select*from职工基本信息表wheresname=@sname)
select*from职工基本信息表wheresname=@sname
else
print'查无此人'
p2'刘'
4.创建触发器:
createtriggertr1
on基本职工信息表
forinsert
as
print'任何人不得添加数据'
rollback
select*froms
四,创建人事管理系统访问键面:
(VB部分)
1,创建键面的实现代码:
(1)基本职工信息查询:
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubDataGrid1_Click()
WithAdodc1.Recordset
Text1(0)=.Fields("姓名")
Text1
(1)=.Fields("编号")
Text1
(2)=.Fields("性别")
Text1(3)=.Fields("籍贯")
EndWith
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
strsql1="select*from基本职工信息表"
Adodc1.ConnectionString=conn
Adodc1.RecordSource=strsql1
Adodc1.Refresh
SetDataGrid1.DataSource=Adodc1
WithAdodc1.Recordset
Text1.Text=.Fields("姓名")
Text2.Text=.Fields("编号")
Text3.Text=.Fields("性别")
Text4.Text=.Fields("籍贯")
EndWith
EndSub
(2)基本的职工工资:
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubDataGrid1_Click()
WithAdodc1.Recordset
Text1(0)=.Fields("姓名")
Text1
(1)=.Fields("编号")
Text1
(2)=.Fields("性别")
Text1(3)=.Fields("籍贯")
EndWith
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
strsql1="select*from基本职工信息表"
Adodc1.ConnectionString=conn
Adodc1.RecordSource=strsql1
Adodc1.Refresh
SetDataGrid1.DataSource=Adodc1
WithAdodc1.Recordset
Text1.Text=.Fields("姓名")
Text2.Text=.Fields("编号")
Text3.Text=.Fields("性别")
Text4.Text=.Fields("籍贯")
EndWith
EndSub
(3)职工部门:
PrivateSubcmdAdd_Click()
EndSub
PrivateSubcmdDelete_Click()
'如果删除记录集的最后一条记录
'记录或记录集中唯一的记录
EndSub
PrivateSubcmdRefresh_Click()
'这仅对多用户应用程序才是需要的
Data1.Refresh
EndSub
PrivateSubcmdUpdate_Click()
Data1.UpdateRecord
EndSub
PrivateSubcmdClose_Click()
UnloadMe
EndSub
PrivateSubData1_Error(DataErrAsInteger,ResponseAsInteger)
'这就是放置错误处理代码的地方
'如果想忽略错误,注释掉下一行代码
'如果想捕捉错误,在这里添加错误处理代码
MsgBox"数据错误事件命中错误:
"&Error$(DataErr)
Response=0'忽略错误
EndSub
PrivateSubData1_Reposition()
Screen.MousePointer=vbDefault
OnErrorResumeNext
'这将显示当前记录位置
'为动态集和快照
'对于Table对象,当记录集创建后并使用下面的行时,
'必须设置Index属性
EndSub
PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)
SelectCaseAction
CasevbDataActionMoveFirst
CasevbDataActionMovePrevious
CasevbDataActionMoveNext
CasevbDataActionMoveLast
CasevbDataActionAddNew
CasevbDataActionUpdate
CasevbDataActionDelete
CasevbDataActionFind
CasevbDataActionBookmark
CasevbDataActionClose
EndSelect
Screen.MousePointer=vbHourglass
EndSub
(4)基本职工信息:
PrivateSubcmdAdd_Click()
EndSub
PrivateSubcmdDelete_Click()
'如果删除记录集的最后一条记录
'记录或记录集中唯一的记录
EndSub
PrivateSubcmdRefresh_Click()
'这仅对多用户应用程序才是需要的
Data1.Refresh
EndSub
PrivateSubcmdUpdate_Click()
Data1.UpdateRecord
EndSub
PrivateSubcmdClose_Click()
UnloadMe
EndSub
PrivateSubData1_Error(DataErrAsInteger,ResponseAsInteger)
'这就是放置错误处理代码的地方
'如果想忽略错误,注释掉下一行代码
'如果想捕捉错误,在这里添加错误处理代码
MsgBox"数据错误事件命中错误:
"&Error$(DataErr)
Response=0'忽略错误
EndSub
PrivateSubData1_Reposition()
Screen.MousePointer=vbDefault
OnErrorResumeNext
'这将显示当前记录位置
'为动态集和快照
'对于Table对象,当记录集创建后并使用下面的行时,
'必须设置Index属性
EndSub
PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)
'这是放置验证代码的地方
'当下面的动作发生时,调用这个事件
SelectCaseAction
CasevbDataActionMoveFirst
CasevbDataActionMovePrevious
CasevbDataActionMoveNext
CasevbDataActionMoveLast
CasevbDataActionAddNew
CasevbDataActionUpdate
CasevbDataActionDelete
CasevbDataActionFind
CasevbDataActionBookmark
CasevbDataActionClose
EndSelect
Screen.MousePointer=vbHourglass
EndSub
2.实现:
(1)登陆键面:
(2)基本菜单
(3)修改密码
(4)基本信息:
五:
实验总结
1.实验中遇到的问题:
(1)数据库中存储过程和触发器的建立,因为在平时的学习中没有太认真的学习这一块以至于在课程设计的过程中这块存在者严重的问题,但是在同学的帮助下及时的得到了解决
(2)数据库与VB的连接访问
2,心得:
很多的题目看似简单,其实不然,,一开始看了只有这么几个模块是心里挺高兴的,但是当我真真正正地去把一个操作写成功时,很多意想不到的情况发生了。
有时候会为了一个操作不能调试成功而整个晚上都不能去安心做其他的作业。
这也就要求我们要冷静沉着、兢兢业业的去对待这件事,编程是一个很繁琐的过程,要考虑到很多错误转移情况,在这期间会有很多以前不曾想过的问题出现,次数多了,不免会有觉得做不下去的感觉。
但是我从中发现,只要一步一步调试、静下心来看待问题,再复杂再微小的问题都会迎刃而解,当一个程序被调试出来时,那时的快乐相比与任何困难都值得的。
经过课程设计我觉得立足程序、回归书本才是组重要的,在着手写程序时觉得思路一片混乱,无意间出现的问题会不知道怎么解决。
这时,需要回归书本,书本是前人总结的经验,几乎所有情况都会有解决方法。
只有把书本“吃透”,在遇到问题是才会反应快。