数据库vb人事管理系统.docx
- 文档编号:27600949
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:24
- 大小:1.55MB
数据库vb人事管理系统.docx
《数据库vb人事管理系统.docx》由会员分享,可在线阅读,更多相关《数据库vb人事管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
数据库vb人事管理系统
一、系统定义
当今中国经济迅速发展,各个大中小型企业迅速崛起,企业的人员管理渐渐显露出了弊端,本系统以一个统一的界面,这就很需要一个好的管理系统来管理自己的企业,传统低效的人工管理已不合时宜。
给公司的普通员工,高级员工,管理员工等提供了不同的操作及管理功能。
数据库服务器可配置在独立的服务器上,也可配置在一台运行本系统的计算机上。
适用于中小型企业,或独资的个人小公司。
二、需求分析
系统综合需求
作为一个公司的人事管理系统,应该给用户提供方便、友好而简洁的界面进行应用,并对企业的运营过程中对员工的整体管理,并将这些数据进行逻辑上的融合,以便于用户查看、分析及管理。
针对中小型企业的运营模式,一般分为:
行政部,人事部,销售部,会计部等几个部门,对部门里边的员工和管理者,都有一个对应的数据,每个部门的员工信息综合起来又合成了全公司的员工信息。
此系统提供了两个登录方式,一个是普通员工的登录方式,普通员工可以查看自己的信息,部门信息,最新的人事调动信息,工资信息,以及其他员工的简单信息;另一个是系统管理员的登录方式,管理员可以通过此系统对数据库里边的所有员工信息进行操作,包括添加,修改和删除,发布人事调动信息,输入员工出勤信息和计算员工工资等操作都有管理员进行操作,以便员工可以查看。
三、系统设计
(一)概念结构设计
(二)逻辑结构设计
员工信息
员工编号
int
Notnull
员工姓名
Nvarchar(10)
null
所在部门编号
int
null
职位
Nvarchar(10)
null
性别
Nvarchar(5)
null
籍贯
Nvarchar(30)
null
身份证号码
bigint
null
文化程度
Nvarchar(5)
null
联系电话
bigint
null
入职时间
Nvarchar(10)
null
在职状态
Nvarchar(10)
null
婚姻状况
Nvarchar(10)
null
部门信息
部门编号
int
Notnull
部门名称
Nvarchar(10)
null
部门人数
Int
null
部门描述
Nvarchar(50)
null
月出勤情况
员工编号
int
Notnull
员工姓名
Nvarchar(10)
null
所在部门编号
int
Null
请假天数
int
Null
加班天数
int
Null
旷工天数
int
Null
月出勤天数
int
null
包装部(行政部,人事部等部门和此表数据一样)
部门编号
int
Notnull
员工编号
Nvarchar(10)
null
员工编号
int
Null
员工姓名
Nvarchar(20)
null
人事调动
员工编号
int
Notnull
员工姓名
Nvarchar(20)
null
原部门编号
int
NotNull
原职位
Nvarchar(10)
Null
现部门编号
int
NotNull
现职位
Nvarchar(10)
null
调动原因
Nvarchar(30)
null
(三)数据库关系图
四、详细设计
(一)开发平台及工具
●开发工具Vb6.0
●DBMS:
MicrosoftSQLServer2005
(二)编码设计
系统采用vb应用程序以方便开发,为数据做了很好的界面设计,并且可以进行添加删除修改存储等。
在数据源连接方面,使用ado控件进行数据库的连接,并用datagrid控件进行数据显示,不过这只是普通用户进行数据查看的界面,并不能对数据进行任何操作,而能有对数据进行操作权限的管理员就得从登录界面进入管理界面,对数据进行增删改减。
(三)界面设计
..主页
..普通用户登录
..普通员工进入的查询界面,按菜单进行查询操作
..登录的员工的本人信息
..用视图对数据进行简单的查询
..部门信息的查看
..管理员登录
..管理界面
员工的增删改操作
..添加操作
..修改操作
五、课程设计总结
这次课程设计我花了两个星期的时间来完成,前期做了一些准备工作,了解了一般超市物流管理方面的背景知识,然后再权衡了时间和人力,做了适量简化,并完成了初步的需求分析。
稍作细化后,便开始设计数据库。
而后做了界面设计,完成了程序大部分的主要界面。
而在编码方面,我从系统的功能、规模和实用方面考虑,并没有去学习和采用过多花哨的新技术,如.net、分布式等企业级应用。
我在规划前,进行了近半个月的时间来学习vb6.0的,还有SQLServer中触发器和存储过程的知识和编写方法。
而且在以后的编码过程中,也在不断的学习并解决遇到的问题。
在数据库设计时,由于有些仓促,没有深入的考虑外码约束的问题,使得编码阶段,发现了一个重大问题。
在是十部门中某个部门中增加了某个员工后,在员工信息中并没有记录,主要是约束和主键没设置好,并且对触发器的使用非常陌生,不过要知道这次的课设,大部分的时间都投在了vb中去了,界面设计太重要了,数据库设计还不如说是界面设计了,很多知识都是现场学现场用的。
不过还好,总算做完了,有点累,烦,但是当完成的那一会,还是挺有成就感的,因为这次确实有很大的收获,知道了一个系统的建立过程是多么的复杂,对以后出去工作应该有些帮助吧。
这次课程设计,我更加深入的了解到软件工程的复杂性,以及前期规划分析的重要性。
其实在vb这种面向对象的程序设计中,我的瀑布开发模型并不太合适。
而且如果系统再稍微大型一些,以一人之力也难以完成。
以后的学习中应该学习一些先进的思想,并多加实践,从写程序和软件架构两个方面都增强自己的能力。
六、参考文献
1.《Visualbasic6.0程序设计》
2.《数据库系统概论(第三版)》
七、附录
数据库部分源代码
createdatabase人事管理系统//数据库创建
onprimary
(name=人事管理系统_dat,
filename='F:
\数据库文件\人事管理系统_dat.mdf',
size=5MB,
maxsize=20MB,
filegrowth=10%)
logon(
name=人事管理系统_log,
filename='F:
\数据库文件\人事管理系统_dat.ldf',
size=2MB,
maxsize=10MB,
filegrowth=1MB)
use人事管理系统
go
createtable员工信息
(员工编号intnotnull,
员工姓名nvarchar(10)notnull,
所在部门编号intnotnull,
职位nvarchar(10)null,
性别nvarchar(5)null,
籍贯nvarchar(30)null,
身份证号码bigintnull,
婚姻状况nvarchar(5)null,
文化程度nvarchar(10)null,
联系电话bigintnull,
入职时间datetimenull,
在职状态nvarchar(10)null,
primarykey(员工编号,员工姓名,所在部门编号))
createtable部门信息(
部门编号intnotnull,
部门名称nvarchar(10)null,
部门人数intnull,
部门描述nvarchar(50)null,
primarykey(部门编号))
createtable人事部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable行政部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable销售部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable会计部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable生产部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable技术部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable包装部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable采购部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable服务部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable宣传部(
员工编号intnotnull,
员工姓名nvarchar(20)null,
primarykey(员工编号))
createtable工资(
员工编号intnotnull,
员工姓名nvarchar(10)notnull,
出勤天数intnull,
总工资intnull,
primarykey(员工编号,员工姓名))
createtable月出勤情况(
员工编号intnotnull,
员工姓名nvarchar(10)notnull,
所在部门编号intnotnull,
请假天数intnull,
加班天数intnull,
旷工天数intnull,
月全天出勤天数intnull,
日期datetimenull,
primarykey(员工编号,员工姓名,所在部门编号))
createtable人事调动(
员工编号intnotnull,
员工姓名nvarchar(10)notnull,
调动原因nvarchar(30)null,
原部门编号intnotnull,
原职位nvarchar(10)null,
现部门编号intnotnull,
现职位nvarchar(10)null,
primarykey(员工编号,员工姓名))
createtable登录信息(
用户名nvarchar(20)null,
用户密码nvarchar(20)null)
createtable管理员信息(
用户名nvarchar(20)null,
用户密码nvarchar(20)null)
createview员工工资查询
as
select员工编号,员工姓名,请假天数,加班天数,旷工天数,月全天出勤天数,总工资
from工资,月出勤情况
where工资.员工编号=月出勤情况.员工编号;
createview部门员工信息
as
select部门编号,部门名称,员工编号,员工姓名
from员工信息,部门信息
where员工信息.所在部门编号=部门信息.部门编号
createview员工简单信息查询
as
select员工编号,员工姓名,所在部门编号,部门名称,职位,联系电话
from员工信息,部门信息
where员工信息.所在部门编号=部门信息.部门编号
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(101,'行政部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(102,'人事部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(103,'会计部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(104,'销售部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(105,'包装部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(106,'技术部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(107,'生产部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(108,'宣传部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(109,'采购部',0,'无')
insert部门信息(部门编号,部门名称,部门人数,部门描述)
values(110,'服务部',0,'无')
insert行政部(员工编号,员工姓名)
values(10101,'刘星')
insert行政部(员工编号,员工姓名)
values(10103,'刘小星')
insert行政部(员工编号,员工姓名)
values(10104,'刘中星')
insert行政部(员工编号,员工姓名)
values(10107,'刘大星')
insert行政部(员工编号,员工姓名)
values(10108,'刘笑星')
insert行政部(员工编号,员工姓名)
values(10109,'刘校星')
insert月出勤情况(员工编号,员工姓名,所在部门编号,请假天数,加班天数,旷工天数,月全天出勤天数)
values(10201,'刘星',102,0,0,0,30)
insert人事调动(员工编号,员工姓名,原部门编号,原职位,现部门编号,现职位)
values(10201,'刘星',101,'经理',102,'经理')
insert登录信息(用户名,用户密码)
values('10101','10101')
insert登录信息(用户名,用户密码)
values('10201','10201')
insert管理员信息(用户名,用户密码)
values('sa','123')
vb部分代码
form1代码
PrivateSub关闭_Click()
End
EndSub
PrivateSub管理员登陆_Click()
frmLogin.Show
UnloadMe
EndSub
PrivateSub员工登陆_Click()
frmLogin1.Show
UnloadMe
EndSub
管理员登陆代码
OptionExplicit
PrivateSubcmdCancel_Click()
Me.Hide
Form1.Show
EndSub
PrivateSubcmdOK_Click()
DimuserAsString,passAsString,sqluseAsString,sqlpassAsString,trsqlAsString
IftxtUserName.Text=""Then
MsgBox"请输入用户名!
",vbExclamation
txtUserName.SetFocus
Else
user=txtUserName.Text
EndIf
IftxtPassword.Text=""Then
MsgBox"请输入密码!
",vbExclamation
txtPassword.SetFocus
Else
pass=txtPassword.Text
EndIf
sqluse="SELECT*FROM管理员信息WHERE用户名='"&user&"'"
sqlpass="SELECT*FROM管理员信息WHERE用户密码='"&pass&"'"
trsql="SELECT*FROM管理员信息WHERE用户名='"&user&"'AND用户密码='"&pass&"'"
WithAdodc1
.CommandType=adCmdText
.RecordSource=sqluse
.Refresh
If.Recordset.EOFAnd.Recordset.BOFThen
MsgBox"没有此用户,请重新输入!
"
Else
.RecordSource=sqlpass
.Refresh
If.Recordset.EOFAnd.Recordset.BOFThen
MsgBox"密码错误,请重新输入!
"
Else
.RecordSource=trsql
.Refresh
If.Recordset.EOFAnd.Recordset.BOFThen
MsgBox"无效用户,请重新输入!
"
Else
Form8.Show
UnloadMe
EndIf
EndIf
EndIf
EndWith
EndSub
PrivateSubrorm_initialize()
ChDriveApp.Path
ChDirApp.Path
EndSub
员工信息操作
PrivateSubCommand1_Click()'添加用户
DimuserAsInteger
user=Val(Text1.Text)
WithAdodc1
.CommandType=adCmdText
.RecordSource="SELECT*FROM员工信息WHERE员工编号="&user&""
.Refresh
If.Recordset.BOFThen
.Recordset.AddNew
.Recordset.Fields(0).Value=user
.Recordset.Fields
(1).Value=Text2.Text
.Recordset.Fields
(2).Value=Val(Text3.Text)
.Recordset.Fields(3).Value=Text4.Text
.Recordset.Fields(4).Value=Text5.Text
.Recordset.Fields(5).Value=Text6.Text
.Recordset.Fields(6).Value=Text7.Text
.Recordset.Fields(7).Value=Text8.Text
.Recordset.Fields(8).Value=Text9.Text
.Recordset.Fields(9).Value=Text10.Text
.Recordset.Fields(10).Value=Text11.Text
.Recordset.Fields(11).Value=Text12.Text
.Recordset.Update
MsgBox"添加用户成功"
UnloadMe
Else
MsgBox"员工编号已注册,请重新输入"
Me.Hide
EndIf
EndWith
EndSub
PrivateSubCommand2_Click()
Form8.Show
EndSub
PrivateSubCommand3_Click()'修改信息
Dimuser1AsInteger,user2AsString
user1=Val(Text13.Text)
user2=Text14.Text
WithAdodc1
.CommandType=adCmdText
.RecordSource="SELECT*FROM员工信息WHERE员工编号="&user1&"AND员工姓名='"&user2&"'"
.Refresh
If.Recordset.BOFThen
MsgBox"你的资料未输入系统,请找管理员"
Else
.Recordset.Fields(0).Value=Text1.Text
.Recordset.Fields
(1).Value=Text2.Text
.Recordset.Fields
(2).Value=Text3.Text
.Recordset.Fields(3).Value=Text4.Text
.Recordset.Fields(4).Value=Text5.Text
.Recordset.Fields(5).Value=Text6.Text
.Recordset.Fields(6).Value=Text7.Text
.Recordset.Fields(7).Value=Text8.Text
.Recordset.Fields(8).Value=Text9.Text
.Recordset.Fields(9).Value=Text10.Text
.Recordset.Fields(10).Value=Text11.Text
.Recordset.Fields(11).Value=Text12.Text
.Recordset.UpdateBatch
MsgBox"该员工信息已经修改,请查询确认!
"
EndIf
EndWith
EndSub
PrivateSubCommand4_Click()'删除信息
DimuserAsInteger
user=Val(Text13.Text)
WithAdodc1
.CommandType=adCmdText
.RecordSource="SELECT*FROM员工信息WHERE员工编号="&user&""
.Refresh
If.Recordset.BOFThen
MsgBox"没有此员工"
Else
.Recordset.Delete
.Refresh
EndIf
EndWith
EndSub
PrivateSubCommand5_Click()'确认键
Dimuser1AsInteger,user2AsString
user1=Val(Text13.Text)
user2=Text14.Text
WithAdodc1
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 vb 人事管理系统