资源描述
毕业设计论文
设计题目:企业考勤管理信息系统
学 院:计算机
专业班级:
学生姓名:
指导老师:
完成日期:
摘 要
随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。员工考勤信息管理是企业信息管理的重要部分。面对大量的人事考勤信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。
因此,开发一个界面友好,易于操作的员工信息管理软件进行自动化处理具有较大的社会现实意义。同时,人事考勤管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,开发应用简单,不失一般性。
人事考勤管理系统的特点是从人事考勤管理的角度出发,用集中的数据库将几乎所有与人事考勤相关的数据统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得人事考勤管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人事考勤规划和政策.
作为计算机应用的一部分,使用计算机对考勤信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
考勤管理系统就是把分散的企事业单位的考勤信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询以及防火、防潮、防蛀、防盗等现代化、专业化的管理系统,为企事业单位和职工解除后顾之忧。
企业考勤管理系统为企事业单位提供信息咨询、信息检索、信息存取等服务。
本考勤管理系统基本上能够满足现代企业考勤管理需求。信息录入项目齐全、完整、系统。现代考勤管理系统灵活使用表格对各种信息分门别类,组成企业考勤管理系统,可以方便地查询、阅读、修改、交流和重复使用。
关键词:信息管理系统;考勤管理;信息检索
目 录
中文摘要 ………………………………………………………3
第一章 应用系统开发工具 …………………………………4
1.1 VB技术简述 ………………………………………………………4
1.2 Access简述 ………………………………………………………4
第二章 企业考勤信息系统需求分析 ……………………5-6
2.1 系统功能分析 ……………………………………………………5
2.2 系统功能模块设计 ………………………………………………5
2.3 系统功能描述 ……………………………………………………6
2.4 数据库需求分析……………………………………………………6
第三章 系统需求 ……………………………………………7
3.1 性能需求 …………………………………………………………7
3.2 数据库需求 ………………………………………………………7
第四章 系统实现技术 ……………………………………8-21
4.1 系统主窗体设计 …………………………………………………8
4.2 登录窗体的建立……………………………………………………9
4.3 员工档案模块设计 ………………………………………………10
4.4 考勤管理模块设计 ………………………………………………14
4.5 员工调动模块设计 ………………………………………………18
第五章 数据库逻辑结构设计 ………………………………22-24
第六章 系统测试 ……………………………………………25
第七章 系统评价及体会………………………………………26
致谢 …………………………………………………………27
参考文献 ………………………………………………………27
第一章 应用系统开发工具
1.1 VB技术简介
微软公司的visual basic 6.0是windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。visual basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统visual basic 6.0是一个相对较好的选择。
微软的jet数据库引擎提供了与数据库打交道的途径,我们是通过它以及visual basic 来访问数据库并对其进行各种操作。visual basic、access以及其他微软的软件产品都是通过共用jet数据库引擎,从而给用户提供了丰富的数据类型。
data 控件在数据库中的信息与将信息显示给用户看的visual basic程序之间架起了一座桥梁。我们可以设置data控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,data控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。data控件还提供了用来浏览不同记录的各种跳转按钮。将data控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
visual basic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和 方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。
visual basic应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。
1.2 Access简介
Access2000 是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
第二章 需求分析
2.1 系统功能分析
人事考勤管理系统的主要任务是对人事考勤信息进行整理,使得能方便快捷地对人事考勤信息进行录入、查询、修改、删除。通过该系统,使企业的考勤管理工作系统化、规范化、自动化,从而提高企业人事管理的效率。界面设计简洁大方,使用户能够方便上手,熟练使用。
29
2.2 系统功能模块设计
2.3 系统功能描述
系统开发的总体任务是实现企业人事考勤信息的系统化、规模化和自动化,以此来提高企业的工作效率。
本系统所描述的企业人事管理系统的主要功能包括:
(1)系统设置模块功能
分为用户管理和特权用户管理,使其进入不同界面进行操作。
(2)员工档案模块功能
对员工档案信息进行添加,修改,删除和查询,并可打印出相应报表。
(3)考勤管理模块功能
对考勤信息进行添加,修改,删除和查询,并可打印出相应报表。
(4)员工调动模块功能
对员工调动信息进行添加,修改,删除和查询,并可打印出相应报表。
2.4 数据库需求分析
数据库在一个信息管理系统中占非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高存储的效率,保证数据的完整性和一致性。另外,合理的数据库结构将非常有利于程序的实现。
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能够充分满足各种信息的输入和输出。收集基本数据、数据结构和数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。针对一般小型企业单位人事信息管理系统的需求,通过对员工工作过程的内容和数据流程的分析,设计如下所示的数据项和数据结构:
1)员工档案
基本信息:员工编号,员工姓名,性别,籍贯,出生日期,学历,专业,身份证号,婚姻情况,政治面貌,电话号码,邮政编码,电子邮箱,家庭地址,进入公司时间,起薪时间,所在部门,调入部门时间,职称,职称时间。
工作经验:原身份,原职务,原来工作单位,参加工作时间,工作经验,其他备注。
2)考勤管理
基本信息:员工编号,员工姓名,性别,职务,所在部门,年度,月份,
全勤天数,应出勤天数,起始日期,截止日期,起始时间,截止时间,
请假类型,审批人,请假事由。
其他考勤:其他假天数,其他假说明,迟到早退次数,延时加班小时,
休息日加班小时,休假日加班小时,矿工次数,备注。
3)员工调动
员工编号,员工姓名,原部门名称,新部门名称,原职务,新职务,
调出时间,调入时间,备注。
第三章 系统需求
3.1 性能需求:
(1)安全性要求高,能有效控制和管理不同的用户的权限。
(2)查询数据的相应时间控制在30秒内。
(3)系统具有灵活性、可维护性、安全性、容错性。
3.2 数据库需求:
(1)考虑到人事考勤管理人员的特点和每天的实际业务量的情况;
声明:本系统对考勤人员分两类处理,一种属于超级用户,即能对本系统中的任何部分实施操作;另一种只是考勤人员,对员工进行考勤,只能对考勤模块进行操作,其他模块只能进行查询。
本系统之所以要用到部门,员工档案,和调动信息,是因为这几个模块都涉及到考勤的核对和管理人员对信息的及时了解认识。
例如:有员工调换了部门,如果当天考勤人员不清楚,则可以查询调动信息确认;
考勤人员要确认某人为其企业员工,可以通过员工档案的查询来获知。
(2)要求能存储较大数据的能力,并且能够对大量数据处理有强大的处理能力和快的响应时间。
(3)要求实用性好,可以满足各种需求,应对突发情况的能力强。
(4)考虑到数据库将来可能要加强,扩充的情况。
(5)考虑到安全性和保密性,保证数据库的完好。
(6)尽量简单而不失完整性,繁琐不利于操作。
第四章 系统实现设计
4.1 系统主窗体设计
系统的主窗体完成的功能如下
(1)当光标指向“系统设置”标签时,在下拉菜单中能完成“添加用户”,“修改密码”,“关闭窗口”的操作。
(2)当光标指向“部门管理”标签时,能完成对部门管理的操作。
(3)当光标指向“员工档案”标签时,在下拉菜单中能完成“档案管理”,“查询员工档案”,“员工档案报表”的操作。
(4)当光标指向“考勤管理”标签时,在下拉菜单中能完成“管理”,“查询考勤信息”,“考勤信息报表”的操作。
(5)当光标指向“员工调动”标签时,在下拉菜单中能完成“添加调动”,“调动管理”,“查询调动信息”,“调动信息报表”的操作。
4.2 登录模块设计
“登录”控件代码如下所示:
Dim StrSQL As String
UserName = CStr(Trim(TxtUserName.Text)) '//将文本框内的值赋给定义好的全局变量
PassWord = CStr(Trim(TxtPassWord.Text))
If UserName <> Empty And PassWord <> Empty Then '//用户名与密码是否为空
StrSQL = "select 用户名称,用户口令,用户权限 from 管理用户 where 用户名称= '" & UserName & "'and 用户口令 ='" & PassWord & "'"
If RsLoginCheck.State = adStateClosed Then
RsLoginCheck.Open StrSQL, DBCON, adOpenKeyset, adLockPessimistic, adCmdText '//打开记录集
End If
Group = RsLoginCheck.Fields(2).Value
If RsLoginCheck.Fields(2).Value <> "Administrators" Then
Call CheckLogin
End If
If RsLoginCheck.RecordCount <> 0 Then '//判断记录集记录条数是否为0
RsLoginCheck.Close
Unload Me
Frmmdimain.Show '//显示主窗
FrmDay.Show vbModal
ElseIf Counts < 2 Then
MsgBox "用户名域密码错误", vbExclamation + vbOKOnly, "登录失败"
RsLoginCheck.Close '//关闭记录集
Counts = Counts + 1
Else
MsgBox "密码错误不得超过三次,否则视您为非法用户!", vbCritical, "警告"
End
End If
Else
MsgBox "用户名密码不能为空", vbExclamation + vbOKOnly, "登录失败"
Call Form_Load
End If
End Sub
4.3 员工档案模块设计
4.3.1 档案管理模块
<1>. “添加”控件代码:
RsRecord.AddNew '//在记录集中添加一条新记录
Call FormTxtValue2 '//调用给文本框赋空值的过程
Call TxtState '//调用启用文本框的Enabled属性过程
Call CmdState1 '//调用命令按钮Visible属性为隐藏的过程
If RsBranch.State = adstateclsed Then
RsBranch.Open "部门管理", DBCON, adOpenKeyset, adLockPessimistic, adCmdTable
End If
Set TxtBranch.RowSource = RsBranch
TxtBranch.BoundColumn = "部门名称"
TxtBranch.ListField = "部门名称"
If RstTitle.State = adStateClosed Then
RstTitle.Open "员工职务", DBCON, adOpenKeyset, adLockPessimistic, adCmdTable
End If
Set TxtTiltle.RowSource = RstTitle
TxtTiltle.BoundColumn = "员工职务"
TxtTiltle.ListField = "员工职务"
<2>. “修改”(即编辑)控件代码:
Call CmdState1 '//调用命令按钮Visible属性为隐藏的过程
Call TxtState '//调用启用文本框的Enabled属性过程
<3>. “删除”控件代码:
If MsgBox("确定要删除吗?", vbInformation + vbYesNo, "删除信息") = vbYes Then
If RsRecord.RecordCount <> 0 Then
RsRecord.Delete '//删除记录
Call CmdMove_Click
Else
MsgBox "当前没有任何记录", , "删除记录"
Call FormTxtValue2 '//调用给文本框赋空值的过程
End If
End If
<4>. “移动”控件代码:
If RsRecord.RecordCount <> 0 Then
RsRecord.MoveNext '//记录向下移一条
If RsRecord.EOF Then
RsRecord.MoveFirst '//将记录移到第一行
End If
Call FormTxtValue1 '//调用将记录数据赋给文本框的过程
Else
MsgBox "当前没有任何记录", , "移动记录"
End If
<5>. “返回”控件代码:
Unload Me
4.3.2 查询模块
“查询”控件代码:
Dim StrSQL As String
StrSQL = "select * from 员工档案 where " '//给定义好的字符变量赋予SQL语句
'//判断复选框有一个选中时,则
If ChkCode.Value = 1 Or ChkName.Value = 1 Or ChkDate.Value = 1 Then
'//判断三个复选框同时选中时,则
If ChkCode.Value = 1 And ChkName.Value = 1 And ChkDate.Value = 1 Then
StrSQL = StrSQL & "员工编号= '" & Trim(TxtCode.Text) & "'" & "and" & " 员工姓名 = '" & Trim(TxtName.Text) & "'" & "and" & " 进入公司时间 between #" & DTPFromDate.Value & "# and #" & DTPToDate.Value & "#" & ""
'//判断编号与姓名复选框选中时,则
ElseIf ChkCode.Value = 1 And ChkName.Value = 1 Then
StrSQL = StrSQL & "员工编号= '" & Trim(TxtCode.Text) & "'" & "and" & " 员工姓名 = '" & Trim(TxtName.Text) & "'"
'//判断编号与进入公司时间复选框选中时,则
ElseIf ChkCode.Value = 1 And ChkDate.Value = 1 Then
StrSQL = StrSQL & "员工编号= '" & Trim(TxtCode.Text) & "'" & "and" & " 进入公司时间 between #" & DTPFromDate.Value & "# and #" & DTPToDate.Value & "#" & ""
'//判断姓名与进入公司时间复选框选中时,则
ElseIf ChkName.Value = 1 And ChkDate.Value = 1 Then
StrSQL = StrSQL & " 员工姓名 = '" & Trim(TxtName.Text) & "'" & "and" & " 进入公司时间 between #" & DTPFromDate.Value & "# and #" & DTPToDate.Value & "#" & ""
Else
If ChkCode.Value = 1 Then '//只有编号复选框选中时,则
StrSQL = StrSQL & "员工编号= '" & Trim(TxtCode.Text) & "'"
End If
If ChkName.Value = 1 Then '//只有姓名复选框选中时,则
StrSQL = StrSQL & " 员工姓名 = '" & Trim(TxtName.Text) & "'"
End If
If ChkDate.Value = 1 Then '//只有进入公司时间复选框选中时,则
StrSQL = StrSQL & "进入公司时间 between #" & DTPFromDate.Value & "# and #" & DTPToDate.Value & "#" & ""
End If
End If
If RsQRecord.State = adStateClosed Then
RsQRecord.Open StrSQL, DBCON, adOpenKeyset, adLockOptimistic, adCmdText
End If
Set VSDataRecord.DataSource = RsQRecord.DataSource
LblCount.Caption = RsQRecord.RecordCount '//将记录条数显示在标签上
VSDataRecord.Refresh '//刷新网格
RsQRecord.Close '//关闭记录集
TxtCode.Text = Empty '//请空文本框
TxtName.Text = Empty
Else
If RstQRecord.State = adStateClosed Then
RstQRecord.Open "员工档案", DBCON, adOpenKeyset, adLockOptimistic, adCmdTable
End If
Set VSDataRecord.DataSource = RstQRecord.DataSource '//设置网格的数据源
LblCount.Caption = RstQRecord.RecordCount
End If
4.4 考勤管理模块设计
4.4.1 管理模块
<1>.“添加”控件代码:
RsAddCheck.AddNew '//在记录集中添加一条新记录
Call FormTxtValue2 '//调用给文本框赋空值的过程
Call TxtState '//调用启用文本框的Enabled属性过程
Call CmdState1 '//调用命令按钮Visible属性为隐藏的过程
If RsRecordCheck.State = adStateClosed Then
RsRecordCheck.Open "员工档案", DBCON, adOpenKeyset, adLockPessimistic, adCmdTable
End If
Set CmbCode.RowSource = RsRecordCheck
CmbCode.BoundColumn = "员工编号"
CmbCode.ListField = "员工编号"
<2>.“修改”(即编辑)控件代码:
Call CmdState1 '//调用命令按钮Visible属性为隐藏的过程
Call TxtState '//调用启用文本框的Enabled属性过程
<3>.“删除”控件代码:
If MsgBox("确定要删除吗?", vbInformation + vbYesNo, "删除信息") = vbYes Then
If RsAddCheck.RecordCount <> 0 Then
RsAddCheck.Delete '//删除记录
Call CmdMove_Click
Else
MsgBox "当前没有任何记录", , "删除记录"
Call FormTxtValue2 '//调用给文本框赋空值的过程
End If
End If
<4>.“移动”控件代码:
If RsAddCheck.RecordCount <> 0 Then
RsAddCheck.MoveNext '//记录向下移一条
If RsAddCheck.EOF Then
RsAddCheck.MoveFirst '//将记录移到第一行
End If
Call FormTxtValue1 '//调用将记录数据赋给文本框的过程
Else
MsgBox "当前没有任何记录", , "移动记录"
End If
<5>.“返回”控件代码:
Unload Me
4.4.2 查询模块
“查询”控件代码:
Dim StrSQL As String
StrSQL = "select * from 考勤信息 where " '//给定义好的字符变量赋予SQL语句
'//判断复选框有一个选中时,则
If ChkCode.Value = 1 Or ChkName.Value = 1 Or ChkDate.Value = 1 Then
'//判断三个复选框同时选中时,则
If ChkCode.Value = 1 And ChkName.Value = 1 And ChkDate.Value = 1 Then
StrSQL = StrSQL & "员工编号= '" & Trim(CmbCode.Text) & "'" & "and" & " 员工姓名 = '" & Trim(TxtName.Text) & "'" & "and" & " 年度='" & Trim(TxtYear.Text) & "'" & "and" & " 月份='" & Trim(CmbMonth.Text) & "'"
'//判断编号与姓名复选框选中时,则
ElseIf ChkCode.Value = 1 And ChkName.Value = 1 Then
StrSQL = StrSQL & "员工编号= '" & Trim(CmbCode.Text) & "'" & "and" & " 员工姓名 = '" & Trim(TxtName.Text) & "'"
'//判断编号与进入公司时间复选框选中时,则
ElseIf ChkCode.Value = 1 And ChkDate.Value = 1 Then
StrSQL = StrSQL & "员工编号= '" & Trim(CmbCode.Text) & "'" & "and" & " 年度='" & Trim(TxtYear.Text) & "'" & "and" & " 月份='" & Trim(CmbMonth.Text) & "'"
'//判断姓名与进入公司时间复选框选中时,则
ElseIf ChkName.Value = 1 And ChkDate.Value = 1 Then
StrSQL = StrSQL & " 员工姓名 = '" & Trim(TxtName.Text) & "'" & "and" & " 年度='" & Trim(TxtYear.Text) & "'" & "and" & " 月份='" & Trim(CmbMonth.Text) & "'"
Else
If ChkCode.Value = 1 Then '//只有编号复选框选中时,则
StrSQL = StrSQL & "员工编号= '" & Trim(CmbCode.Text) & "'"
End If
If ChkName.Value = 1 Then '//只有姓名复选框选中时,则
StrSQL = StrSQL & " 员工姓名 = '" & Trim(TxtName.Text) & "'"
End If
If ChkDate.Value = 1 Then '//只有进入公司时间复选框选中时,则
StrSQL = StrSQL & "年度= '" & Trim(TxtYear.Text) & "'" & "and" & " 月份='" & Trim(CmbMonth.Text) & "'"
End If
End If
If RstQueryCheck.State = adStateClosed Then
RstQueryCheck.Open StrSQL, DBCON, adOpenKeyset, adLockOptimistic, adCmdText
End If
Set VSDateCheck.DataSource = RstQueryCheck.DataSource
LblCount.Caption = RstQueryCheck.RecordCount '//将记录条数显示在标签上
VSDateCheck.Refresh '//刷新网格
RstQueryCheck.Close '//关闭记录集
CmbCode.Text = Empty '//请空文本框
TxtName.Text = Empty
TxtYear.Text = Empty
'CmbMonth.Text = Empty
Else
If RsQueryCheck.State = adStateClosed Then
RsQueryCheck.Open "考勤信息", DBCON, adOpenKeyset, adLockOptimistic, adCmdTable
End If
Set VSDateCheck.DataSource = RsQueryCheck.DataSource '//设置网格的数据源
LblCount.Caption = RsQueryCheck.RecordCount
VSDateCheck.Refresh '//刷新网格
RsQueryCheck.Close '//关闭记录集
CmbCode.Text = Empty '//请空文本框
TxtName.Text = Empty
TxtYear.Text = Empty
'CmbMonth.Text = Empty
End If
4.5 员工调动模块设计
4.5.1添加调动:
“确认”控件代码:
If CmbCode.Text <> Empty Then
If RsAddmove.State = adStateClosed Then
RsAddmove.Open "调动信息", DBCON, adOpenDynamic, adLockOptimistic, adCmdTable
End If
RsAddmove.AddNew '添加一条新记录
Call Addnewmove
RsAddmove.Update '更新记录
CmbCode.Text = Empty
TxtName.Text = Empty
TxtBranch.Text = Empty
CmbNewBranch.Text = Empty
TxtForTitle.Text = Empty
CmbNewTitle.Text = Empty
DTPmovedate = Date
DTPfolddate = Date
TxtRemark.Text = Empty
MsgBox "数据已被保存", , "保存成功"
Else
MsgBox "员工编号不能为空", , "验证失败"
End If
4.5.2调动管理
(1)“修改”控件代码:
Call CmdState1 '//调用命令按钮Visible属性为隐藏的过程
Call TxtState '//调用启用文本框的Enabled属性过程
If RsMoveBranch.State = adstateclsed Then
RsMoveBranch.Open "部门管理", DBCON, adOpenKeyset, adLockPessim
展开阅读全文