4数据库课程设计企业员工工资管理系统.docx
《4数据库课程设计企业员工工资管理系统.docx》由会员分享,可在线阅读,更多相关《4数据库课程设计企业员工工资管理系统.docx(30页珍藏版)》请在冰豆网上搜索。
4数据库课程设计企业员工工资管理系统
数据库课程设计报告
企业员工工资管理系统
姓名:
_____________________________
班级:
_____________________________
学号:
_____________________________
指导教师:
_____________________________
成绩:
_____________________________
完成时间:
_____________________________
完成地点:
_____________________________
摘要
企业的工资管理是公司管理的一个重要内容。
工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。
工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。
资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。
但考虑到学生的开发时间,本次设计主要阐述员工工资管理系统主要是以企业员工工资情况为对象而开发的。
涉及系统比较小,有利于学生单独编写。
其系统的设计主要包括数据库的设计、维护和应用界面的设计与后台数据库的连接。
经分析采用Microsoft公司开发的VisualBasic6.0为开发工具,MicrosoftSQLsever2000为后台数据库。
VisualBasic(简称VB)是由Microsoft公司推出的在Windows操作平台下最迅速、最简捷的应用开发工具之一。
它引入了面向对象的程序设计思想和“控件”的概念,使得大量已经编好的VisualBasic程序可以直接拿来使用。
同时VB具有简单、易学的特点,是大多数初学者最理想的编程语言,也是专业人员得心应手的开发工具。
它在一个公共环境里集成了许多不同的功能,例如,设计、编辑、编译和调试。
目前市场上数据库的主流厂商及产品有IBMDB2、MicrosoftSQLSERVER2000、ORACLE9i、Sybase。
MicrosoftSQLServer2000是在SQLServer7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。
SQLServer2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。
其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。
MicrosoftSQLServer2000简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。
关键词:
工资管理系统、设计、开发工具
第1章绪论
1.1问题的提出
随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
早期工资管理多采取纸质材料和具有较强的时间限制。
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。
建设一个科学高效的信息管理系统是解决这一问题的必由之路。
企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。
工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统对企业和员工的工作都带来许多的不便。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
工资管理系统是企、事业单位常见的计算机信息管理系统。
它的主要任务是对各种工资信息进行日常的信息管理,如工资信息的输入、查询、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。
在建立与实现工资管理系统时,进行了功能划分,能够由数据库管理系统完成的功能应尽可能由数据库管理系统守成,充分发挥数据库管理系统高效、完全、可靠、便捷的性能,减少编程人员的工作量。
工资管理系统是数据库管理系统的一个比较典型的应用,前台使用的是微软的VB6.0,后台数据库采用MicrosoftSQLSever数据库。
运行结果证明,本企业员工工资管理系统极大提高了工作效率,节省了人力和物力,自重满足企业员工工资管理的需要。
1.2系统设计功能
企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了企业工资管理系统。
企业工资管理系统主要有以下几大功能:
(1)对单位人员的变动进行处理。
一个单位的职工不会是一成不变的,总是在不断的变化:
有调出、有调入、也有职工在本单位内部调动。
因此,设计系统是应考虑到这些情况。
(2)对职工的工资进行计算、修改。
可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算基本工资、岗位工资、水电费及实发金额等。
(3)查询统计功能。
要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某个部门所有的员工的工资信息。
(4)对用户管理功能。
一个系统的应用有管理员和普通用户,他们对系统的权限受到限制。
第二章数据库系统设计
2.1数据库分析设计
需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。
理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。
抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。
需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。
所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。
此次课程设计的使用者是企业的员工,主要是针对系统的管理员。
其进行的操作就是对公司员工、部门等一些方面改动的改善。
由此对员工需求分析如下。
用户的需求就是对员工工资和使用用户的添加、删除、修改和查询。
这就要求各种信息中存在实体完整性、参照完整性和用户自定义完整性。
搜集了各项要求,故数据项要求设计如下:
表2.1员工信息表
键
名称
数据类型
大小
空
默认值
主键
员工编号
char
8
不可以
姓名
char
8
不可以
性别
char
2
可以
“男”
出生年月
datetime
8
可以
外键
所属部门
char
4
可以
文化程度
char
4
可以
职称
char
12
可以
表2.2部门信息
键
名称
数据类型
大小
空
默认值
主键
部门编号
char
4
不可以
部门名称
char
20
可以
部门负责人
char
8
可以
部门人数
int
4
可以
表2.3基本工资
键
名称
数据类型
大小
空
默认值
主键
工资级别
char
2
可以
工资金额
numeric
5(8,2)
不可以
表2.4岗位工资
键
名称
数据类型
大小
空
默认值
主键
工资级别
char
2
可以
工资金额
numeric
5(8,2)
不可以
表2.5工资信息
键
名称
数据类型
大小
空
默认值
主键、外键
员工编号
char
8
不可以
外键
部门编号
char
4
可以
基本工资
numeric
5(8,2)
可以
岗位工资
numeric
5(8,2)
可以
水电费
numeric
5(8,2)
可以
实发工资
numeric
5(8,2)
可以
2.2数据各个表之间的关系
在设计过程中,从用户的角度考虑来处理各个表之间的约束关系,把概念模式转化成逻辑模式最终形成E-R图。
员工信息表(员工编号、姓名、性别、出生年月、所属部门、文化程度、职称)
部门信息表(部门编号、部门名称、部门负责人、部门人数)
基本工资表(工资级别、工资金额)
岗位工资表(工资级别、工资金额)
工资信息表(员工编号、部门编号、基本工资、岗位工资、水电费、实发工资)
各个模块之间的关系,如图2.1所示。
图2.1各表之间的联系
第三章各个关系间的数据结构
3.1系统设计目标
开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。
实现企业高效、科学、现代化的员工管理。
系统最终实现的主要功能如下。
·企业工资信息设置部分:
包括设置员工的基本工资和其他项目的金额,如水电费。
·企业信息管理部分:
包括员工信息、部门信息和发放工资(工资信息)。
·企业员工查询部分:
包括按员工查询和按部门查询。
·系统部分:
包括添加用户、修改用户信息。
3.2系统概要分析
用户在使用一个系统时,必须先登录操作界面,在操作完成后然后再退出,其操作如图3.1所示。
注销
图3.1系统流程图
说明:
操作员进入管理系统的身份不同,所获得的权限也不同,普通用户只可以查询自己的工资情况,而且部门对自己的所有信息进行更改。
图3.2用户操作模块
说明:
管理员可以对所有模块进行操作,普通用户只可以进行查询员工工资的权限。
说明:
在各个子模块操作时用户同时在实现更改的时候在对话框上的网格看到后台数据库最新的动态。
各个模块简介:
登录模块:
主要完成用户的登录信息核对并进入主界面。
用户管理模块:
主要完成对用户信息的添加、修改和删除功能。
信息设置模块:
主要对企业内部员工和部门的管理。
工资查询模块:
主要完成对员工工资的查询。
第四章企业工资管理系统应用设计
4.1企业工资管理系统设计
4.1.1¡°登陆模块¡±详细设计
¡°登录模块¡±的设计主要是针对用户登录界面的设计,判断用户是管理员还是普通用户,从而进入主界面。
登陆界面主要由用户名和密码的信息,还有标题的设置,登录和取消按钮的设置。
用户只有选择用户名后填入相应的密码后点击¡°登录¡±才能进入主界面,点击¡°取消¡±会退出系统。
由此,登陆界面设计如图4.1所示
图4.1登陆界面设计界面
若用户对此有操作上的错误,我设计的特点是都有提示的对话框(几乎每个窗体都设置了如下操作,除了特殊的提示外,为节省打印纸张,相同的提示在以后的篇幅中不再一一写出),如图4.2所示
4.2操作错误提示
若用户三次输入密码错误,系统会认为恶意进入,系统自动关闭。
如图4.3所示
图4.3强制关闭图
4.1.2¡°主界面¡±的详细设计
主界面的设计是由菜单编辑器生成,主要由系统设置、设置、信息维护、工资查询五个模块组成。
其作用是使程序更加有条有理,有利于管理。
其中普通用户只可部分操作,管理员可以对所有模块进行操作。
主界面设计如图4.4所示:
图4.4主界面设计图
4.2子模块的设计
4.2.1选择“系统设置”→“用户管理”→“用户添加”菜单,在添加用户的窗体里输入用户名、用户密码和权限,系统自动新增用户名及其用户信息。
如图4.5所示。
为了防止用户在输入密码时按错键或者一时忘记密码,我在设计的时候运用了“确认密码”的文本框,其属性与密码项相同。
可以用来矫正用户一时的粗心大意目的,完善了系统的完整性。
图4.5用户添加
4.2.2.选择¡±系统设置¡°?
”用户管理“?
”用户修改“菜单,其窗体由五个标签、两个文本框、两个组合框和一个按钮组成,分别设置它们的属性,其中两个组合框的属性设置为只读属性。
在用户修改的窗体里选择用户名即可修改用户密码和权限,系统价自动更改后台数据库的用户信息。
设计界面如图4.6所示
图4.6用户修改
4.2.3选择”系统设置“?
”用户管理“?
”用户删除“菜单,窗体设计较简单,分别由一个文本框、一个组合框和两个按钮组成,组合框的属性设置为只读属性。
由于删除的用户只可以是后台数据库中存在的用户在下拉按钮中选择要删除的用户名,即可删除用户名及其有关信息。
关于用户管理的子菜单,只有管理员有权限进入设置。
4.2.4选择”设置“?
”基本工资“菜单,自动弹出基本工资设置的对话框(如图4.7所示),在网格中会显示数据库中现有的基本工资级别和金额,用户在填写完级别和金额后单击添加或者修改按钮进行后台数据库的更新。
在网格中选择要删除的基本工资,点击删除按钮,系统会自动进行删除,并且所有的操作后会自动刷新网格,以及时提供给用户信息。
图4.7基本工资设置
4.2.5选择”设置“?
”岗位工资“菜单后,自动弹出对话框,其功能与基本工资设置相同,在此不在赘述。
4.2.6选择”信息维护“?
”部门管理“菜单后会出现如图4.9所示对话框,管理员用户可以通过网格浏览现有库中的部门信息,在部门信息框架中输入部门信息,同时也可添加、修改部门信息,数据库自动更新。
当删除一条信息时,会出现如图4.8所示提示信息,用户可以选择删除或者取消操作。
但如其部门已经被引用,则"delete"语句会与约束条件发生冲突,不能删除。
图4.8确定删除对话框
图4.9部门管理设置
4.2.7选择”信息维护“?
”员工管理“菜单后会出现如下对话框,“性别”组合框默认为“男”,如用户输入的不是“男”或者是“女”时,添加操作将不能进行,并且在填写员工信息时,员工的性别默认为“男”。
其进行的操作与部门管理相同,不再赘述。
4.2.8选择”信息管理“?
”发放工资“菜单,网格显示的是现有后台数据库中的员工工资信息,右边可以直接浏览员工工资信息。
直接点击选择网格中的工资信息,单击删除按钮可直接删除。
考虑到设计页面的大小问题,对工资信息的添加和修改操作转移到另一个窗体(如图4.10所示)中进行。
用户可以在工资信息中输入员工的工资信息,由于添加和修改的操作同时在一个窗体中进行,员工编号不知道要添加的哪一个,所以员工编号的下拉按钮不是“只读”属性,用户在输入员工编号时应输入一个存在的员工,不然则弹出如图4.11所示的提示框。
图4.10工资信息设置
图4.11员工不存在提示
4.2.9选择“工资查询”?
“按员工查询”菜单,弹出如图4.12所示对话框,用户可以选择单人查询或者全部显示,但是不能对员工的工资做任何的改动。
管理员可以查看所有人的工资情况,但是普通用户只可以查看自己的工资情况,别人的工资情况不允许查看。
图4.12按员工查询
4.2.10选择“工资查询”?
“按部门查询”菜单,弹出对话框,当选择“部门编号”后可执行“单个显示”,若想全部显示,可直接单击”显示所有“按钮。
网格中将会同时刷新后台数据库信息,但是不能做任何的修改。
第五章各个模块部门代码
5.1登陆界面
Statictry_timesAsInteger
DimsqlAsString
DimrstAsADODB.Recordset
IfTrim(cmo_user.Text)=""Then
MsgBox"请选择用户名",vbOKOnly+vbInformation,"提示"
cmo_user.SetFocus
Else
IfTrim(txt_key.Text)=""Then
MsgBox"请输入密码",vbOKOnly+vbExclamation,"提示"
txt_key.SetFocus
Else
sql="select*from用户表where用户名='"&Trim(cmo_user.Text)&"'"
Setrst=ExecuteSQL(sql,"")
IfTrim(rst.Fields
(1))=Trim(txt_key.Text)Then
tempuser=Trim(cmo_user.Text)
power=Trim(rst.Fields
(2))
username=Trim(cmo_user.Text)
rst.Close
frm_main.Show
UnloadMe
Ifpower<>"管理员"Then
frm_main.set.Enabled=False
frm_main.defend=False
EndIf
Else
MsgBox"密码不正确,请重新输入",vbOKOnly+vbExclamation,"警告"
txt_key.SetFocus
txt_key.Text=""
try_times=try_times+1
Iftry_times=3Then
MsgBox"您已三次尝试进入本系统失败,系统将自动关闭",vbOKOnly+vbExclamation,"结束"
UnloadMe
EndIf
EndIf
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
rst.Close
EndSub
5.2各个子模块代码设置
5.2.1以用户添加为例,部分代码如下所示
PrivateSubcmd_add_Click()
DimrstAsADODB.Recordset
DimsqlAsString
DimiAsInteger
IfTrim(txt_adduser.Text)=""OrTrim(txt_addkey.Text)=""OrTrim(cmo_addpower)=""Then
MsgBox"请将用户信息填写完整!
",vbOKOnly+vbExclamation,"警告"
txt_adduser.SetFocus
txt_adduser.Text=""
txt_addkey.Text=""
txt_rekey.Text=""
cmo_addpower.Clear
CallForm_Load
Else
sql="select用户名from用户表"
Setrst=ExecuteSQL(sql,"")
IfTrim(txt_adduser.Text)=Trim(rst.Fields(0))Then
MsgBox"您输入的用户已经存在,请重新输入!
",vbOKOnly+vbExclamation,"警告"
rst.Close
txt_adduser.SetFocus
txt_adduser.Text=""
txt_addkey.Text=""
cmo_addpower.Clear
CallForm_Load
txt_rekey.Text=""
Else
IfTrim(txt_addkey.Text)<>Trim(txt_rekey.Text)Then
MsgBox"两次输入的密码不相同,请重新输入!
",vbOKOnly+vbExclamation,"警告"
txt_addkey.SetFocus
txt_addkey.Text=""
txt_rekey.Text=""
Else
sql="insertinto用户表values("&"'"&Trim(txt_adduser.Text)&"',"_
&"'"&Trim(txt_addkey.Text)&"',"_
&"'"&Trim(cmo_addpower)&"'"&")"
Setrst=ExecuteSQL(sql,"")
MsgBox"添加成功",vbOKOnly+vbExclamation,"添加结果"
txt_adduser.SetFocus
txt_adduser.Text=""
txt_addkey.Text=""
txt_rekey.Text=""
cmo_addpower.Clear
CallForm_Load
EndIf
EndIf
EndIf
EndSub
PrivateSubcmd_cancel_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Withcmo_addpower
.AddItem"管理员"
.AddItem"普通用户"
EndWith
EndSub
5.2.2工资设置代码
以基本工资中的修改和删除为例,岗位工资与基本工资雷同,不再赘述。
PrivateSubcmd_alter_Click()
IfTrim(cmo_scale.Text)=""OrTrim(txt_money.Text)=""Then
MsgBox"请填写需要修改的信息!
",vbOKOnly+vbExclamation,"警告"
cmo_scale.SetFocus
cmo_scale.Text=""
txt_money.Text=""
Else
sql="select工资级别from基本工资where工资级别='"&Trim(cmo_scale.Text)&"'"
Setrst=ExecuteSQL(sql,"")
Ifrst.RecordCount=0Then
MsgBox"您输入的级别不存在,请重新输入!
",vbOKOnly+vbExclamation,"警告"
cmo_scale.SetFocus
cmo_scale.Text=""
txt_money.Text=""
Else
sql="update基本工资set工资金额='"&Trim(txt_money.Text)&"'where工资级别='"&Trim(cmo_scale.Text)&"'"
Setrst=ExecuteSQL(sql,"")
MsgBox"修改成功!
",vb