员工工资管理系统VBSQL.docx
《员工工资管理系统VBSQL.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统VBSQL.docx(43页珍藏版)》请在冰豆网上搜索。
员工工资管理系统VBSQL
VB+SQLserve2000课程设计报告
员工工资管理系统
姓名:
_________
班级:
________________
学号:
____________
指导教师:
____
成绩:
_____________________
完成时间:
2009-12-28
完成地点:
蚌埠学院
摘要
随着科学技术的不断发展,计算机科学日渐进步,其强大的功能耳闻目睹,它已进入人类社会的各个领域并发挥着越来越重要的作用。
此职工考勤管理系统的实现利用了计算机的相关技术,满足了单位日常考勤管理的需求,使单位考勤过程更加快速、安全、高效的信息管理系统。
本系统基于C/S模式,采用VisualBasic语言与MicrosoftSQL2005数据库开发完成,实现了系统管理、职工信息管理、考勤管理与工资设置管理等功能。
其中系统管理包括上下班时间设置和更改用户密码等模块;职工信息管理包括添加,删除,查询职工信息模块;考勤管理包括考勤和考勤查询模块;工资设置包括基本工资设置/修改和工资计算公式/修改报模块;工资管理模块包括出勤统计,查询工资等模块。
本系统能基本满足用户在考勤管理方面的需求,界面友好,符合用户使用习惯,能实际地提高单位考勤管理的效率。
第一章绪论
1.1数据库管理系统
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。
DBMS是数据库系统的核心组成部分。
对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。
DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。
根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。
MSsqlserve2000就是一种关系型数据库管理系统。
关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。
关系模型是由若干个关系模式组成的集合。
关系模式相当于前面提到的记录类型,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。
SQL语言是关系型数据库的标准化语言,已得到了广泛的应用。
1.2员工考勤管理系统
企业工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。
最初的工资统计和发放都是使用人工方式处理,工作量大的时候,出现错误的机率也随之升高,不仅花费财务人员大量的时间,而且往往由于抄写不慎,或者由于计算的疏忽,出现工资发放错误的现象。
同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。
正是企业工资管理的这种重复性、规律性、时间性,使得企业工资管理计算机化成为可能。
企业工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多企业工资信息的处理,同时使用电脑还可以安全地、完整地保存大量的企业工资记录。
1.3开发工具
微软公司的VisualBasic6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
因此,本系统使用MSVisualBasic6.0开发。
第二章员工工资管理系统设计分析
2.1应用需求与分析
基本信息的添加、修改、删除和查询。
基本信息包括项目类型信息,项目状态信息,模块状态信息和缺陷级别信息等。
此功能为项目组管理和软件项目管理模块提供数据。
项目组信息的添加、修改、删除和查询。
项目组信息包括收员工信息和角色信息。
软件项目管理模块包括项目基本信息管理、软件模块管理和软件缺陷管理等功能
2.2系统模块划分
开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。
能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。
系统最终实现的主要功能如下。
·企业工资信息设置部分:
包括设置员工的基本工资和其他项目的金额,如奖金等。
·企业工资信息管理部分:
包括统计出勤、计算工资、查询工资和导出工资表。
·系统部分:
包括添加用户和修改密码。
2.3系统数据库设计
数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。
数据库设计的好与坏,直接影响到这个系统的运行效率。
良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。
针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容分析,为本系统设计如下的数据项和数据结构:
·基本工资信息:
包括工资级别和工资金额。
·岗位工资信息:
包括工资级别和工资金额。
·工资信息:
包括员工编号、基本工资、岗位工资、水电费、实发金额。
·部门信息:
包括部门编号、部门名称、部门负责人、部门人数。
·工资统计信息:
包括员工编号、姓名、出生年月、所属部门、文化程度、职称。
·用户信息:
包括用户名、密码和权限。
员工信息表
员工编号
char(8)
主键,不允许重复
姓名
char(8)
性别
char
(2)
出生年月
datetime
所属部门
char(4)
外键
char(4)
职称
char(12)
部门信息
部门编号
char(4)
主键,不允许重复
部门名称
char(20)
部门负责人
char(8)
部门人数
int
基本工资
工资级别
char
(2)
主键,不允许重复
工资金额
numeric(8,2)
岗位工资
工资级别
char
(2)
主键,不允许重复
工资金额
numeric(8,2)
工资信息
员工编号
char(8)
主键,不允许重复;外键
基本工资
numeric(8,2)
岗位工资
numeric(8,2)
水电费
numeric(8,2)
实发金额
numeric(8,2)
用户表
用户名
char(8)
主键,不允许重复
密码
char(20)
权限
char(20)
E-R图:
第三章:
企业工资管理系统应用程序设计
3.1操作流程图
初始登入用户:
admin密码为:
admin
3.2“登录模块”详细设计
登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。
登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。
通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。
窗体及核心代码:
PrivateSubcmd_cancel_Click()
txt_key.Text=""
cmo_user.Text="请选择"
UnloadMe
EndSub
PrivateSubcmd_ok_Click()
Dimtry_timesAsString
DimsqlAsString
DimrstAsADODB.Recordset
try_times=0
If(Trim(txt_key.Text)="")Then
MsgBox"请输入密码",vbOKOnly+vbExclamation,"提示"
Else
sql="select*from用户表where用户名='"&Trim(cmo_user.Text)&"'"
Setrst=ExecuteSQL(sql,"")
IfTrim(rst.Fields
(1))=Trim(txt_key.Text)Then
IfTrim(rst.Fields
(2))<>"管理员"Then
‘系统’
EndIf
rst.Close
UserName=Trim(cmo_user.Text)
frm_main.Show
UnloadMe
Else
MsgBox"密码不正确,请重新输入",vbOKOnly+vbExclamation,"警告"
txt_key.SetFocus
txt_key.Text=""
try_times=try_times+1
ExitSub'在这里若密码错了应该跳出该过程,否则下面的语句还会执行,这不是你想要的
EndIf
'try_times=try_times+1'个人认为密码输入错了才加一,你这样的话,用户名错了也会加一,当然你这里用户名不会错是吧,改得多余了
Iftry_times=3Then
UnloadMe
EndIf
EndIf
EndSub
PrivateSubForm_Load()
DimiAsInteger
DimsqlAsString
DimrstAsADODB.Recordset
sql="select用户名from用户表"
Setrst=ExecuteSQL(sql,"")
Fori=1Torst.RecordCount
cmo_user.AddItem(rst.Fields(0))
rst.MoveNext
Nexti
EndSub
主窗体:
PrivateSubbumenxinxi_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_bumenxinxi.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubgangweigongzi_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_gangweigongzi.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubjiben_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_jiben.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubyonghushanchu_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_tianjiayushanchu.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubyonghutianjia_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_tianjiayushanchu.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubForm_Load()
DimiAsInteger
DimsqlAsString
DimrstAsADODB.Recordset
sql="select权限from用户表"
Setrst=ExecuteSQL(sql,"")
Fori=1Torst.RecordCount
rst.MoveNext
Nexti
3.3“主窗体”模块详细设计
在这个项目中,选择使用多文档界面。
使用这个窗体的好处是可以使程序更加有条理。
对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。
主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。
主窗体是进行相关操作的主界面。
在这几个里,管理员有所有的权利进行各种操作。
主窗体及核心代码:
PrivateSubbumenxinxi_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_bumenxinxi.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubgangweigongzi_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_gangweigongzi.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubjiben_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_jiben.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubyonghushanchu_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_tianjiayushanchu.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubyonghutianjia_Click()
DimsqlAsString
DimrstAsNewADODB.Recordset
sql="select*from用户表"
Setrst=ExecuteSQL(sql,"")
power=rst.Fields
(2)
IfTrim(power)<>"管理员"Then
MsgBox"您无权进行该操作!
",vbOKOnly+vbExclamation,"警告"
Else
IfTrim(power)="管理员"Then
frm_tianjiayushanchu.Show
UnloadMe
EndIf
EndIf
EndSub
PrivateSubForm_Load()
DimiAsInteger
DimsqlAsString
DimrstAsADODB.Recordset
sql="select权限from用户表"
Setrst=ExecuteSQL(sql,"")
Fori=1Torst.RecordCount
rst.MoveNext
Nexti
EndSub
3.4各项子模块详细设计
3.4.1添加用户与删除
选择“系统”—>“添加用户与删除”菜单,在添加用户的窗体里,输入新的用户名称和密码后,单击“添加”按钮,系统将会添加新的用户。
在窗体里输入用户名称和密码,单击“删除”按钮,系统将会删除原来用户。
PrivateSubcmd_adduser_Click()
DimnewrstAsADODB.Recordset
DimsqlAsString
sql="insertinto用户表values("&"'"&Trim(txt_username.Text)&"',"_
&"'"&Trim(txt_password.Text)&"',"_
&"'"&Trim(txt_power)&"'"&")"
Setnewrst=execute_sql(sql)
sql="select*from用户表"
Setnewrst=select_sql(sql)
SetDataGrid1.DataSource=newrst
EndSub
PrivateSubcmd_cancel_Click()
UnloadMe
EndSub
PrivateSubcmd_delete_Click()
DimsqlAsString
sql="select*from用户表"
Iftxt_username<>""Then
Setobjrs=ExecuteSQL(sql,"")
SetDataGrid1.DataSource=objrs
'刷新网格,显示操作后的结果
EndIf
Ifobjrs.RecordCount=0Then
MsgBox"库中没有记录!
"
ExitSub
EndIf
Ifobjrs.RecordCount<>0Then
IfMsgBox("真的要删除该级用户信息吗?
",vbYesNo+vbQuestion,"警告")=vbYesThen
objrs.Delete
MsgBox"删除成功!
",vbInformation,"提示"
EndIf
EndIf
EndSub
PrivateSubForm_Load()
DimnewrstAsADODB.Recordset
DimsqlAsString
sql="select*from用户表"
Setnewrst=select_sql(sql)
SetDataGrid1.DataSource=newrst
EndSub
3.4.2修改用户
选择“系统”->“修改用户”菜单,在窗体里输入新的用户名称和用户权限,单击“修改”按钮,系统将会修改原来用户信息。
PrivateSubcmd_adduser_Click()
DimnewrstAsADODB.Recordset
DimsqlAsString
sql="insertinto用户表values("&"'"&Trim(txt_username.Text)&"',"_
&"'"&Trim(txt_password.Text)&"',"_
&"'"&Trim(txt_power)&"'"&")"
Setnewrst=execute_sql(sql)
sql="select*from用户表"
Setnewrst=select_sql(sql)
SetDataGrid1.DataSource=newrst
EndSub
PrivateSubcmd_cancel_Click()
UnloadMe
EndSub
PrivateSubcmd_delete_Click()
DimsqlAsString
sql="select*from用户表"
Iftxt_username<>""Then
Setobjrs=ExecuteSQL(sql,"")
SetDataGrid1.DataSource=objrs
'刷新网格,显示操作后的结果