VB人事管理系统(数据流程图+ER图)-课程设计

发布时间:2020-08-10 23:25:06   来源:文档文库   
字号:

VB人事管理系统(数据流程图+ER图)-课程设计

1〃课程设计的目的

人事管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信

息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种

管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文

件和数据,这对于查找、更新和维护都带来了不少的困难。使用计算机对人事信

息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。因此有利于办公自动化的人

事管理系统能够极大地提高人事管理的效率,也是企业进行科学化、正规化管理的手段。

2.设计方案论证

2.1需求分析

人事管理可以说是一项琐碎、繁杂而又必须十分细致的工作,是不能允许时常发

生差错的。几十年前的那种手工操作已远远跟不上近代企业发展的步骤,时代的

进步决定了企业的发展,而企业要发展必然完善的管理体系,所以说企业人事管

理的自动化完全是时代进步的必然结果。合理的利用有助于企业发展的管理系统

是企业改革的一种优越的体现。利用计算机对企业人事管理不仅保证了核算准确

度,还成倍的提高了工作效率,而且便于查询。 通过本人事管理数据库管理系统软件,能帮助人事管理人员利用计算机快速方便

的对企业人事资源进行管理。人事管理系统主要用于企业内部员工的档案、工资,

便于公司领导掌握人员动向,及时调整人才的分配。本软件集企业人员基本信息,

企业人员劳工合同,及人才需求计划于一身,目的在于能够使管理人员更加方便,

快捷的对企业人事进行管理。同时本人事管理软件使人事管理工作系统化、规范

化、自动化,从而在一方面提高了管理者的工作效率,减少了传统人工管理方式

所带来的人力,物力的浪费,另一方面由于本软件具有查找方便、可靠性高、存

储量大等优点,所以实现了企业人事管理的自动化。 人事管理系统针对企业员工信息的处理工作采用计算机进行全面的现代化管理,

用户可以通过输入员工的基本信息、考勤信息等,由系统自动生成相应的统计数据及工资统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定

期的更新与删除工作,人事管理系统力求以方便快捷的途径去管理职工的信息,

代替手工操作的繁琐数据。

经过调查分析有关企业的人事信息需求的基础上,得到如图1-1的系统数据流程

图如下:

图1-1 系统数据流程图

2〃2概念结构设计 图2.2人事管理系

课程设计说明书 NO.5

2.3逻辑结构设计

根据实体间的E-R模型的需求分析,本系统需要2个数据表分别来存放员工个人信息和人事变动记录,并需要一个外部数据表(部门管理表)的支持。另外设计

工资管理,考勤管理,员工评价3个表来管理员工数据。具体数据表的设计如下面的表格所示。

字段名 数据类型 长度 是否为空 说明 ygid Varchar 10 Not null 工号 ygname Varchar 20 Not null 姓名 sex Char 10 Not null 性别

age Varchar 3 Not null 年龄

birth Datetime 8 null 出生日期 address Varchar 50 null 地址 tel Varchar 15 null 电话

politic Varchar 50 null 政治面貌 school Varchar 50 null 毕业院校 ygidentity Varchar 20 null 身份证号 department Varchar 50 null 所在部门 text Text 16 null 备注

图2.3职工档案信息表

字段名 数据类型 长度 是否为空 说明 id Varchar 10 Not null 事件编号 Case1 Text 16 Not null 事件

text Text 16 Not null 备注

图2.4 人事变动表

字段名 数据类型 长度 是否为空 说明

name char 20 Not null 用户名

password char 8 Not null 密码

图2.5 管理员表

2.4系统详细设计208

VB人事管理系统

2.4.1系统的主界面设计

这个企业人事管理系统的主界面是采用多重窗体的格式(MDI),可使系统界面更加美观,方便实用。在登陆主界面之前,首先登记用户管理窗体;创建好的窗

体如图2.6:

图2.6 系统的主界面

这个项目我们使用多文档界面,单击工具栏中的ADD MDI Form按扭,产生一个窗体。在窗体上添加所需控件。

在主界面中,员工管理菜单是此系统的重要组成部份,其中包括4个主要功能模块:员工基本信息模块,员工考勤模块,员工评价模块和员工工资管理模块。

2.4.2员工基本信息模块设计

该模块主要完成员工基本信息的输入、查询与修改,它定义了三个主要窗口:信息添加窗口、复合查询窗口、员工信息列表窗口。 员工信息添加窗口用来添加

员工个人信息,可供用户浏览查询及以记录为单

在窗体上放置多个文本框和下拉式列表框,用来输入员工个人基本信息,工作信息和其它信息;多个标签用来提示多个文本框所需要的内容。两个按钮用来确定

是否添加员工信息。一个下拉列表框用来显示员工的性别。在员工性别录入中使

用了下拉列表控件,在载入窗体时程序将自动在两个下拉式文本框中添加内容,

沈 阳 大 学

课程设计说明书 NO.7

载入窗体时,将首先通过整型变量gintmode的值来判断是添加还是修改状态(1为添加,2为修改)。如果是添加状态,性别选择框将选择第一个;如果是修改状态,将选择显示当前的记录。

员工信息的添加窗口如图2.7:

图2.7 员工信息添加

查询功能使用复合查询的模式。分为按工号查询、按员工姓名查询和按员工

部门查询。用户可以根据实际需要选择其中的一项或几项。首先点击要先择的复

选框控件,这时光标自动移动到它对应的文本框,只要在相应的文本框中输入要

查找的内容,然后点击确定按扭即完成了此项操作,并以列表的形式显示出数据。

查询功能的另一个特点是如果用户对查询窗口不做任何操作,直接点击确定按扭,在查询结果的列表窗口中显示出所有员工的信息。查询窗口界面如下图2.8所示:

图2.8 员工档案查询窗体

课程设计说明书 NO.8

在介绍了上述两项功能之后,将讲述一下员工信息的修改与删除的功能。首先如

果用户需要修改一些信息,可以在菜单中选择修改信息,这时,如果没有选择要具体修改的信息,将出现消息对话框,通知用户选择一条要修改的记录,然后则通过SQL语句载入窗体,触发窗体的Load事件,显示员工信息列表窗体并列出所有员

工的信息,在窗体的下部放置了一个修改按扭。用户在列表中选择了要操作的员

工记录后点击该按扭,屏幕将出现员工信息添加窗体,窗体中体现出上一步用户

所选择的员工记录,在具体的文本框中写入修改的记录,单击保存按钮出现”记录

保存成功”消息对话框,点击确定按扭返回员工列表窗体,至此己完成了对员工信

息的修改。删除员工信息的功能和修改功能类似,在列表中选择要删除的记录后

点击鼠标右键,在弹出的子窗体中选择删除信息弹出”是否删除此记录”对话框,点击确定后完成了信息的删除操作。

2.4.3员工考勤模块设计

员工考勤管理模块主要实现如下功能:

1 添加员工考勤信息

2 修改员工考勤信息

3 删除员工考勤信息

考勤管理是每个企事业所必需的,计算机管理系统的出现使员工出勤情况的记录

和统计变得十分简单。软件是用于员工出入单位的情况录入,请假、加班和出差情况的录入,每个月底进行整个月的出勤情况统计。另外,考勤管理为工资管理直接提供每个月工作时间的统计结果,用以计算工资,同时考勤管理也需要其它功

能所提供的员工、部门等信息。

考勤添加模块主要是用来实现系统用户对企业现有员工的考勤登记,包括出勤记录、请假记录、加班记录和出差记录。在主窗体的菜单中选择考勤添加便进入了

考勤添加窗体。图2.9 员工考勤添加

2.4.4 员工评价模块设计

员工评价的主要功能包括:

.员工评价信息的添加

.员工评价信息的修改与删除

.员工评价信息的查询

实现各数据库中添加评价记录的方法和前面员工信息,考勤信息的添加方法相同。 选择修改评价菜单,将出现员工评价列表的窗体,此窗体同样采用子窗体的形式,由主窗体继承而来。选择需要修改的记录,单击下面的修改按钮或单击鼠标右键

选择修改评价菜单,在员工评价信息添加窗体中进行修改。分为按工号查询和按

姓别查询两种,可以按照各种方式以及它们的组合进行查询。满足查询要求的记

录都将出现在员工评价记录列表框中。当先择主菜单中的添加员工评价信息菜单,将出现如图2.10所示:

图2.10 员工评价信息添加

VB人事管理系统(数据流程图+ER图) 2.4.5 员工工资管理模块

工资管理是企业管理中不可缺少的一项工作。员工工资管理模块用于每个月员

工实发工资的计算,计算的项目包括基本工资、奖金、福利待遇、津贴等。

主要包括以下几项功能:

.员工工资的录入

.员工工资的修改与删除

.员工工资的查询

.员工基本工资的设定

.奖金以及福利补贴的设置

.实发工资计算

.根据出勤统计结果计算本月各项实际金额 .输出工资报表

工资管理的输出结果是对员工工作的一个评价。计算工资的基本依据是考勤

管理模块的统计结果。同时,在统计和查询时需要用到员工基本信息模块和部门

信息。首先选择主窗体中添加工资菜单将出现我添加员工工资窗体。如图2.11

所示:

图2.11 员工工资添加

从部门下拉表中选择部门,再从姓名下拉列表中选择要添加工资的员工。在月份

文本框中使用的是Format(Now, "yyyy-mm-dd")函数,直接添加计算机的系统日期。其中实

沈 阳 大 学

课程设计说明书 NO.11

发工资的内容不需用户添写,在添写完其它工资内容后点击开始统计按钮将员工

的收入与支出金额相减得出实发工资项。最后单击确认,将所填数据存入数据库中。工资管理的修改与删除同样需要以列表的形式如图2.12显示:

图2.12 员工工资列表

作为子窗体的员工工资列表能够清楚的表现员工各项收入与支出的金额。选择修

改可以对所选数据进行编辑,也同样可以点击鼠标右键选择所需要的操作。在数

据环境中添加Command命令,并设置命令属性:在SQL语句中输入select * from按姓名和按工号复合查询的两种方式和其它模块不同的是员工工资管理填加了

一个工资报表窗体。选择主窗体中的工资报表菜单即会显示该窗体。员工工资报

表窗体如图2.13所示:

图2.13 员工工资报表

沈 阳 大 学

课程设计说明书 NO.12

工资报表窗体作为子窗体来显示。窗口主要分成工具条和预览效果两部分,

预览效果显示的就是最终打印的结果。在下面的工具条上包括4个页面浏览按钮。

在上面工具条的下拉列表框中选择需要显示的比例。别外两个按钮分别用来实现

打印与导出操作。如果要打印的工资报表有多页,可以通过4个页面浏览按钮进

行上下翻页。

此模块通过工资管理的创建,着重描述了工资计算和数据报表的使用。计算主要

是通过对所输入的数据进行相加和相减的运算,最后显示结果数据。数据报表为我们提供了一个更加方便快捷地实现报表打印的方法。通过使用报表中的各种控

件,可以很简单地实现复杂报表的设计,避免了繁杂的编程过程。

2.4.6系统源代码

Public fMainForm As frmmain

Public gintMode As Integer

Public flagEdit As Boolean

Public username As String

Sub Main()

Dim fLogin As New frmlogin

fLogin.Show vbModal

If Not fLogin.OK Then

End

End If

Unload fLogin

Set fMainForm = New frmmain

fMainForm.Show

End Sub

Public Function ExecuteSQL(ByVal SQL _ As String, MsgString As String) _ As ADODB.Recordset

Dim cnn As ADODB.Connection

Dim rst As ADODB.Recordset

Dim sTokens() As String

On Error GoTo ExecuteSQL_Error

sTokens = Split(SQL)

Set cnn = New ADODB.Connection

cnn.Open ConnectString

If InStr("INSERT,DELETE,UPDATE", _

阳 大 学

课程设计说明书 NO.13

UCase$(sTokens(0))) Then

cnn.Execute SQL

MsgString = sTokens(0) & _

" query successful"

Else

Set rst = New ADODB.Recordset

rst.Open Trim$(SQL), cnn, _

adOpenKeyset, _

adLockOptimistic

Set ExecuteSQL = rst

MsgString = "查询到" & rst.RecordCount & _

" 条记录 " End If

ExecuteSQL_Exit:

Set rst = Nothing

Set cnn = Nothing

Exit Function

ExecuteSQL_Error:

MsgString = "查询错误: " & _

Err.Description

Resume ExecuteSQL_Exit

End Function

Public Function ConnectString() As String

ConnectString = "FileDSN=renshi.dsn"

End Function

员工基本信息模块代码:

Option Explicit

Dim mblchange As Boolean

Public txtSQL As String

Public msgtext As String

Dim mrc As ADODB.Recordset

Private Sub cmdcancle_Click()

Unload Me

End Sub

Private Sub cmdOK_Click()

Dim intCount As Integer

Dim txtSQL As String

Dim MsgString As String

阳 大 学 课程设计说明书 NO.14

Dim sMeg As String

Dim i As Integer

For intCount = 0 To 1

If Trim(Text1(intCount) & "") = "" Then

Select Case intCount

Case 0

sMeg = "工号"

Case 1

sMeg = "姓名"

End Select

sMeg = sMeg & "不能为空"

MsgBox sMeg, vbOKOnly + vbExclamation, "警告" Text1(intCount).SetFocus

Exit Sub

End If

Next intCount

If Trim(Text1(3) & "") = "" Then

MsgBox "出生日期不能为空", vbOKOnly + vbExclamation, "警告"

End If

If Trim(Text1(3) & "") <> "" Then

If Not IsDate(Text1(3)) Then

MsgBox "出生日期应为(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"

Text1(3).SetFocus

Exit Sub

Else

lwfree.cn vbOKOnly + vbExclamation, "警告" Exit Sub

End If

If gintMode = 1 Then

txtSQL = "select * from dangan where ygid='" & Trim(Text1(0)) & "'" Set mrc = ExecuteSQL(txtSQL, msgtext)

If mrc.EOF = False Then

MsgBox "有重复记录", vbOKOnly + vbExclamation, "警告"

Text1(0).SetFocus

End If

VB人事管理系统(数据流程图+ER图)

mrc.Close

txtSQL = "delete * from dangan where ygid='" & Trim(Text1(0)) & "'" Set mrc = ExecuteSQL(txtSQL, msgtext)

txtSQL = "select * from dangan"

Set mrc = ExecuteSQL(txtSQL, msgtext)

mrc.AddNew

For intCount = 0 To 1

mrc.Fields(intCount) = Trim(Text1(intCount))

Next intCount

For intCount = 2 To 5

mrc.Fields(intCount) = Trim(Text1(intCount))

Next intCount

For intCount = 6 To 10

mrc.Fields(intCount) = Trim(Text1(intCount))

Next intCount

mrc.Fields(11) = Trim(Combo1.Text)

mrc.Update

If gintMode = 1 Then

MsgBox "添加记录成功", vbOKOnly, "提示"

For i = 0 To 10

Text1(i).Text = ""

Next i

frmyuangong.Show

frmyuangong.ZOrder 0

frmmanrecord.ShowTitle frmmanrecord.ShowData

frmmanrecord.ZOrder 1

End If

Private Sub cmdSave_Click() Dim intCount As Integer Dim sMeg As String

Dim rectemp As Recordset Dim sSql As String

Dim msgtext As String

For intCount = 0 To 3

If Trim(txtItem(intCount) & " ") = "" Then

Select Case intCount

Case 0

sMeg = "本月天数"

阳 大 学

课程设计说明书 NO.16 Case 2

sMeg = "应出勤天数" Case 3

sMeg = "出勤"

End Select

If intCount <> 1 Then

sMeg = sMeg & "不能为空!"

MsgBox sMeg, vbOKOnly + vbExclamation, "警告"

txtItem(intCount).SetFocus

Exit Sub

End If

End If

Next intCount

If gintMode = 1 Then

txtSQL = "select * from checkin where kqid='" & Trim(txtid) & "' and kqdate= '" & Format(cboYear.Text & "-" & cboMonth.Text & "-01", "yyyy-mm-dd") & "'"

If mrc.EOF = False Then

MsgBox "已经存在该员工在该月的考勤记录!", vbOKOnly + vbExclamation, "

警告"

Exit Sub

End If

mrc.Close

txtSQL = "delete * from renshi1 where id='" & Trim(Text(0)) & "'" Set mrc = ExecuteSQL(txtSQL, msgtext)

txtSQL = "select * from renshi1"

Set mrc = ExecuteSQL(txtSQL, msgtext)

For intCount = 0 To 2

mrc.Fields(intCount) = Trim(Text(intCount))

Next intCount

mrc.Update

MsgBox "添加记录成功!", vbOKOnly, "提示"

frmrenshi.ZOrder 1

frmrenshi.Show

Command1.Enabled = True

first.Enabled = True

阳 大 学 课程设计说明书 NO.17

last.Enabled = True

End If

If gintMode = 2 Then

txtSQL = "select * from renshi1"

Set mrc = ExecuteSQL(txtSQL, msgtext)

mrc.Fields(intCount) = Text(intCount).Text

mrc.Update

MsgBox "记录修改成功!", vbOKOnly, "提示"

cmdchange.Enabled = True

Command1.Enabled = True

cmddelete.Enabled = True

End If

mrc.Close

End If

txtSQL = "select * from department"

Set mrc = ExecuteSQL(txtSQL, msgtext)

mrc.AddNew

For intCount = 0 To 2

mrc.Fields(intCount) = Trim(Text(intCount))

mrc.Update

MsgBox "记录添加成功!", vbOKOnly + vbExclamation, "警告"

cmdok.Enabled = True

cmdchange.Caption = "修改" For i = 0 To 2

Text(i).Text = ""mblchange = False

Next i frmbumen.Show

ElseIf cmdchange.Caption = "修改" Then

txtSQL = "select * from department where dpid='" & Trim(Text(0)) & "'"

Set mrc = ExecuteSQL(txtSQL, msgtext)

For i = 0 To 2

mrc.Fields(i) = Text(i).Text

Next i

mrc.Update

For intCount = 0 To 2

Text(intCount).Enabled = True

mybookmark = mrc.Bookmark

Next intCount

MsgBox "记录修改成功!", vbOKOnly + vbExclamation, "警告"

Unload Me

End If

End Sub

设计结果与分析

系统运行后通过对各个模块的调试以测试运行结果。

在员工信息添加模快中在员工性别录入中使用了ComboBox下拉列表控件,在载入窗体时程序将自动在两个下拉式文本框中添加内容,这样可以规范化输入内容,其中加入了”男” 、”女”。用户可以直接从下拉表中选择需要的输入条件。

输入的出生日期按照YYYY-MM-DD的统一格式来录入。如果数据库中存在与此项

添加的员工档案相同的数据,按确定后将弹出消息对话框”己存在此员工的信息”,提示用户己经存在此员工的信息,从而避免了相同员工信息的重复录入。 在考勤添加模块中在主窗体的菜单中选择考勤添加便进入了考勤添加窗体。窗体

中使用了SSTAB控件,使界面和功能更加完美。在添加记录之前,用户可以根据现有员工档案的具体情况选择进行添加,在基本信息标签页中选择部门下拉列表框,其中包含了企业的所有部门。它的具体实现是通过ADODC控件绑定到员工信息数

据表中,从表中使用DISTINCT选择不同的部门名称加入到下拉列表中。当用户选

择了一个具体的部门之后,在随后的姓名列表中将通过SQL语句列出此部门的所

有员工的姓名,而同时在员工工号的文本框中自动添加了此员工的工号。这种使

用方式的好处是让用户可以根据员工档案的具体情况进行编辑,对每个员工进行考勤录入,从而避免了不了解企业内部员工档案的实际情况而造成错误的可能,同时也大大缩短了考勤操作的时间。

4设计体会

通过本次课程设计的操作与实践,使我了解到关系数据库的相关理论知识

和有关工具软件的使用技巧,训练了我的动手能力。让我意识到,掌握专业知识

的重要性。同时我也深深的感觉到如果自己有了兴趣就动手去做,困难在勇气和

毅力下是抬不了头的。

5〃参考文献

[1]郭盈发主编〃《数据库原理与应用》.西安: 电子科技大学出版社,2005.

[2]史嘉权主编〃《数据库系统教程》. 北京:清华大学出版社,2005.

[3]史济民主编〃《FoxPro及其应用系统开发》.北京:清华大学出版社,2006. [4]萨师煊主编〃《数据库系统概述》.北京:高等教育出版社,2007.

本文来源:https://www.2haoxitong.net/k/doc/1e495d5f4a2fb4daa58da0116c175f0e7cd119c1.html

《VB人事管理系统(数据流程图+ER图)-课程设计.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式