1、4 酒店人事工资管理系统 大学毕业设计论文课题 酒店人事工资管理系统姓 名 学 科 专 业 . 指 导 教 师 前言 酒店人事工资管理系统是一个酒店不可缺少的部分,它的内容对于酒店的决策者和管理者来说都至关重要,所以酒店人事工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的
2、一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是酒店的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套酒店人事工资管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。摘要酒店人事工资管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用
3、等特点。 经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。关键字 Visual Basic 6.0 Access2000 控件 窗体 域Abstract The system of man
4、aging census register file is a typical application of managing information system (know as MIS),which mainly includes building up data-base of back-end and developing the application interface of front-end. The former required consistency and integrality and security of data. The later should make
5、the application powerful and easily used.By looking up lots of datum, we selected Visual Basic presented by Microsoft because of its objective tools in Win32. VB offered a series of ActiveX operating a data-base. It can give you a short-cut to build up a prototype of system application. The prototyp
6、e could be modified and developed till users are satisfied with it.Key Word Visual Basic 6.0、Access2000、ActiveX、Form、Field 第3页 目 录前言2摘要2第一章 导论5第二章系统需求分析62.1、系统设计背景介绍62.2、系统功能分析7第三章 系统总体设计83.1 系统设计83.2、数据库设计12第四章 详细设计工作144.1 数据模块的创建144.2 用户登录模块设计144.3系统主界面设计154.4部门信息管理174.5职工信息管理244.6考勤信息管理254.7职工工资管
7、理254.8 系统维护26第五章 系统功能测试102第六章 结束语104第 4 页 74 酒店人事工资管理系统 第一章 导论随着信息技术的飞速发展,特别是数据库技术的发展,计算机已经成为当今信息时代的关键工具。数据库技术是计算机应用技术中的一个重要组成部分,对于大量的数据,使用数据库来存储管理将比通过文件来存储管理更高效。数据库技术在经过几代变革以后,出现了以关系数据库产品为主流的数据库时代。Access 2000是微软公司推出的关系数据库产品。作为Microsoft的office套件产品之一,Access已经卖出了近700万份,成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数
8、据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。Visual Basic作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。Visual Basic提供了强有力的数据库存取能力,将Windows的各种先进特性与强大的数据库管理功能有机地结合在一起。本次毕业设计酒店人事工资管理系统是运用ADO技术设计开发的,使用大量地SQL语句进行添加、查询、删除等操作。本系统使用Access 2000作为后台数据库,利用Visual Basic 6.0提供的数据库开发平台开发前台部分。第二章 系统需求分析2.1、系统设计背景
9、介绍管理信息系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变的越来越普及。而将信息管理系统与酒店自动化设备想结合,则是当今社会现代酒店的发展趋势。通过这样的管理方式,酒店的管理人员、技术人员、统计人员等各部门职工就能从大量烦琐的资料和数据中解脱出来,只需对自己需要的数据和内容进行必须的处理,而不用对每个环节都了如指掌。这在一定程度上能够节省人力物力,同时也大大加强了对数据处理的及时性和准确性。本次的开发内容酒店人事工资管理系统就是信息管理与现代化办公设备相结合的例子。开发本系统希望使人事管理人员可以从年复一年的输入、计
10、算、统计等工作中解脱出来,由于人事方面的数据众多,输入、统计极为不便,输入量大,计算量大。这些工作都以人力来完成将费时费力,而且容易出现错误和疏漏。本系统一次录入信息后,就可以反复多次在不同的信息库中使用。所有输入的信息都将按所属部门、专业、考勤日期、工资日期等详细分类,使客户可以根据需要进行管理操作。因此,该管理系统的目的就是利用计算机对复杂烦琐的数据进行存储和处理,并利用计算机与现代化办公设备的连接实时刷新数据,从而提高酒店的工作效率。2.2、系统功能分析热网管理系统主要有以下几项功能要求:*按不同权限登录系统。*对其提供的部门资料情况进行添加、查询、修改和删除操作。*对其提供的人员资料情
11、况进行添加、查询、修改和删除操作。*对其提供的人员考勤资料情况进行添加、查询、修改和删除操作,并可按考勤月份进行分类。*对其提供的职工资资料情况进行添加、计算、查询、修改和删除操作,并可按工资月份进行分类。*可添加新的用户,修改用户原有的用户名、密码,删除原有用户。第三章 系统总体设计管理信息系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变的越来越普及。而将信息管理系统与酒店自动化设备想结合,则是当今社会现代酒店的发展趋势。通过这样的管理方式,酒店的管理人员、技术人员、统计人员等各部门职工就能从大量烦琐的资料和数据中解
12、脱出来,只需对自己需要的数据和内容进行必须的处理,而不用对每个环节都了如指掌。这在一定程度上能够节省人力物力,同时也大大加强了对数据处理的及时性和准确性。本次的开发内容酒店人事工资管理系统就是信息管理与现代化办公设备相结合的例子。开发本系统希望使人事管理人员可以从年复一年的输入、计算、统计等工作中解脱出来,由于人事方面的数据众多,输入、统计极为不便,输入量大,计算量大。这些工作都以人力来完成将费时费力,而且容易出现错误和疏漏。本系统一次录入信息后,就可以反复多次在不同的信息库中使用。所有输入的信息都将按所属部门、专业、考勤日期、工资日期等详细分类,使客户可以根据需要进行管理操作。因此,该管理系
13、统的目的就是利用计算机对复杂烦琐的数据进行存储和处理,并利用计算机与现代化办公设备的连接实时刷新数据,从而提高酒店的工作效率。3.1 系统设计3.1.1系统功能分析 *按不同权限登录系统。*对其提供的部门资料情况进行添加、查询、修改和删除操作。*对其提供的人员资料情况进行添加、查询、修改和删除操作。*对其提供的人员考勤资料情况进行添加、查询、修改和删除操作,并可按考勤月份进行分类。*对其提供的人职工资资料情况进行添加、计算、查询、修改和删除操作,并可按工资月份进行分类。*可添加新的用户,修改用户原有的用户名、密码,删除原有用户。3.1.2 用户功能模块设计添 加 记 录 查 询 记 录部门信息
14、管理 修 改 记 录 删 除 记 录 添 加 记 录员工信息管理查 询 记 录 修 改 记 录 删 除 记 录用 户 登 陆添 加 记 录查 询 记 录考勤信息管理 修 改 记 录 删 除 记 录添 加 记 录员工工资管理查 询 记 录 修 改 记 录 删 除 记 录 修 改 密 码添 加 用 户系 统 维 护 删 除 用 户 数 据 备 份 数 据 恢 复退 出 系 统 图 3.13.1.3 数据流程图 用户登陆 是否管理员 是 是否修改数据是否录入数据 是 是 录入数据修改数据 是否进行查询 是输入查询条件是是否删除数据是删除数据退出系统3.1.4 说明本次设计主要利ADO技术,界面友好。
15、能自动生产编号,根据用户输入的数据检查其合法性,确保数据正确输入。登陆系统时对用户的请求进行身份验证,经验证合法后允许用户登陆系统,进行相应权限对数据的处理,本系统能对用户进行管理,能进行数据库备份和恢复,确保数据的安全。本次设计选择了Access 2000作为后台数据库,利用Visual Basic 6提供的数据库开发平台开发前台部分。3.2、数据库设计3.2.1在Access 2000数据库中创建表:根据设计要求,需要5个数据表:部门基本情况表、职工基本信息表、职工考勤信息表、职工工资信息表、口令信息表。这5个数据表的结构如下各表:(1)部门基本情况表字段名称数据类型长度主键允许空部门编号
16、文本6True否部门名称文本30是备注文本255是(2)职工基本信息表字段名称数据类型长度主键允许空职工编号文本6否职工姓名文本10否性别文本2是出生日期日期/时间短日期否民族文本10是政治面貌文本10是最后学历文本10是所学专业文本20是联系电话文本20是毕业学校文本30是籍贯文本50是家庭住址文本50是进入公司时间日期/时间短日期否部门名称文本30是职务名称文本30是备注文本255是(3)职工考勤信息表字段名称数据类型长度主键允许空职工编号文本6是职工姓名文本10是考勤日期文本6否部门名称文本50是出勤天数数字整型是假日加班数字整型是其它加班数字整型是出差天数数字整型是补休天数数字整型是请
17、假次数数字整型是旷工天数数字整型是迟到次数数字整型是早退次数数字整型是备注文本255是(4)职工工资信息表字段名称数据类型长度主键允许空职工编号文本6是职工姓名文本10是计发日期文本6否部门名称文本50是底薪数字单精度型是奖金数字单精度型是补贴数字单精度型是加班费数字单精度型是房帖费数字单精度型是扣考核数字单精度型是养老金数字单精度型是医疗保险数字单精度型是住房公积金数字单精度型是税前小计数字单精度型是所得税数字单精度型是实发工资数字单精度型是(5)口令信息表字段名称数据类型长度主键允许空用户名文本20是密码文本10是权限文本6是第四章 详细设计工作4.1 数据模块的创建 将数据库连接、数据表
18、和数据源等运行期不可见的组件都放在窗体设计界面上,虽然在调用时比较直观,但却为界面布局设计带来的麻烦,而且也不利于数据的统一管理。因此,在设计时,我选择使用ADO来控制管理数据库。 在程序模块中定义记录集,并在各个窗体中定义记录集变量,使输入数据能与数据库连接,并都用程序进行控制,这样不用数据控件都用代码控制大大提高了程序运行效率。 部分有关代码如下:Dim rc As New ADODB.Recordset 定义记录集变量Cnndb.Open provider=microsoft.jet.oledb.4.0;data source = & App.Path & 酒店人事工资管理系统.mdb
19、确定数据库位置Dim rc As New ADODB.Recordset 定义记录集变量If rc.State = 1 Then rc.Close 判断当前表的状态是否打开,是则关闭rc.Open SQL, Cnndb, 3, 2 打开当前表4.2 用户登录模块设计 设计思路每个用户登录系统都须经过身份验证。只有用户名和密码相对应才能进入系统。因为在系统设置中已经对系统使用权限进行了规定,所以,在用户登录的同时也决定了用户对系统使用的权限。当登录者是管理员身份时,他可以使用系统提供的所有功能,并能对所有用户进行管理。登录者是操作员可以使用所有对数据的编辑功能,而如果登录者是一般用户时只能利用系
20、统进行资料查询功能。4.3系统主界面设计根据系统模块结构,建立系统主界面。用户登录到系统后进入的就是该界面,所有功能一目了然。当不同权限的用户登录到该界面时功能有所不同,其控制由“用户登录”界面控制。在此界面中对用户的权限进行了设置,若是以一般用户登录时只能修改自己的密码且只能浏览所有的人事管理信息,以管理员身份进入时可以对所有一般用户的密码进行设置,还可删除一般用户!能对人事信息进行编辑删除,修改等操作具体精彩代码如下:Private Sub Command4_Click() Cmdsize = 4 PBm1.Visible = False PBm2.Visible = False LabB
21、m1.Visible = False LabBm2.Visible = False PYg1.Visible = False PYg2.Visible = False LabYg1.Visible = False LabYg2.Visible = False PKq1.Visible = False PKq2.Visible = False LabKq1.Visible = False LabKq2.Visible = False If QuanXian = (一般用户) Then Pgz1.Visible = True Pgz1.Enabled = False Pgz2.Visible =
22、True Labgz1.Visible = True Labgz1.Enabled = False Labgz2.Visible = True Else Pgz1.Visible = True Pgz2.Visible = True Labgz1.Visible = True Labgz2.Visible = True End If Command1.Top = 0 Command2.Top = 47.958 Command3.Top = 47.958 * 2 Command4.Top = 47.958 * 3End Sub4.4部门信息管理编辑部门信息作为编辑部门信息这一项,所实现的功能是对
23、公司各部门资料信息的存储与编辑,部门信息包括:部门编号(两位)、部门名称、备注。部门编号与部门名称都具有唯一性,不能重复。作为部门信息与职工信息有着密切的关系,每一名职工都从属一个部门。(1)数据添加 当操作员进入系统,根据设计要求,需要添加新的部门信息时,在编辑部门信息窗体上按添加按钮,便进入添加状态,文本框自动清空,添加按钮变为确定按钮,光标会停留在部门编号文本框上,此时系统已自动生成一个新的部门编号,只需输入部门名称和备注信息即可完成部门信息编辑操作,在按窗体上的确定按钮即可检查该部门信息是否合法并存入数据库,否则按取消按钮。再点击添加按钮,用户可再次添部门信息记录。添加代码设置如下:P
24、rivate Sub DataFresh(SQL As String) 进行数据表格控件的更新 Dim i As Integer Dim j As Integer Dim FBmbh As String Dim FBmmc As String Dim FBz As String FBmbh = Trim(Txtbmbh.Text) 保存当前各个输入框的值 FBmmc = Trim(Txtbmmc.Text) FBz = Trim(Txtbz.Text) MSFlexGrid1.Row = 0 写入表头标题 MSFlexGrid1.Col = 1: MSFlexGrid1.Text = 部门编号
25、 MSFlexGrid1.Col = 2: MSFlexGrid1.Text = 部 门 名 称 MSFlexGrid1.Col = 3: MSFlexGrid1.Text = 备 注 SQL = SQL & order by 部门编号 asc 向表格控件输入数据 PrintSQL = SQL If rc.State = 1 Then rc.Close rc.Open SQL, Cnndb, 3, 2 If rc.RecordCount 0 Then MSFlexGrid1.Rows = rc.RecordCount + 1 i = 1 rc.MoveFirst Do Until rc.EOF
26、 MSFlexGrid1.Row = i For j = 1 To 3 MSFlexGrid1.Col = j MSFlexGrid1.Text = & rc(j - 1) MSFlexGrid1.CellAlignment = 1 Next j rc.MoveNext i = i + 1 Loop Else MSFlexGrid1.Rows = 1 End If Dim n As Integer 清除表格控件最左边的选定当前行标志 For n = 0 To MSFlexGrid1.Rows - 1 MSFlexGrid1.TextMatrix(n, 0) = Next n ChangeChe
27、ck = False Txtbmbh.Text = FBmbh 恢复当前各个输入框的值 Txtbmmc.Text = FBmmc Txtbz.Text = FBz (2)数据查询当操作员需要对某个部门进行查询时,可以在编辑部门信息窗体下部中找到查询按钮。先在对应的文本框中输入要进行数据查询的条件,输入完查询条件后,点击查询按钮进行确定,系统便会查询出满足条件的部门记录,并列到数据表格中,无满足条件的部门记录时,则弹出对话框提示“查无此记录!”。查询代码:Private Sub DataFind() 数据查找 Dim M As Integer Dim SQL As String SQL = If
28、 Txtbmbh.Text Then SQL = SQL & and 部门编号 = & Trim(Txtbmbh.Text) & If Txtbmmc.Text Then SQL = SQL & and 部门名称 = & Trim(Txtbmmc.Text) & If Txtbz.Text Then SQL = SQL & and 备注 = & Trim(Txtbz.Text) & If SQL Then SQL = select * from 部门基本情况 where 部门编号 & SQL If rc.State = 1 Then rc.Close rc.Open SQL, Cnndb, 3
29、, 2 If rc.EOF Then M = MsgBox(查无此记录, vbInformation) Exit Sub End If Call DataFresh(SQL) End IfEnd Sub(3)数据修改当操作员需要对某个部门进行修改时,可以在编辑部门信息窗体下部中找到修改按钮。由于修改记录不可能在大量的数据中盲目的寻找,因此数据修改应该与数据添加按钮结合使用,先用查询功能进行对要修改记录的搜索,再在数据表格中选中要修改的部门记录,便把此部门记录读入文本框中,只需在文本框中直接进行数据修改便可,修改完后按修改按钮进行确定,系统并对修改后的数据进行合法性检测,合法则修改成功。修改信息
30、代码:Private Sub DataFresh(SQL As String) 进行数据表格控件的修改 Dim i As Integer Dim j As Integer Dim FBmbh As String Dim FBmmc As String Dim FBz As String FBmbh = Trim(Txtbmbh.Text) 保存当前各个输入框的值 FBmmc = Trim(Txtbmmc.Text) FBz = Trim(Txtbz.Text) MSFlexGrid1.Row = 0 写入表头标题 MSFlexGrid1.Col = 1: MSFlexGrid1.Text =
31、部门编号 MSFlexGrid1.Col = 2: MSFlexGrid1.Text = 部 门 名 称 MSFlexGrid1.Col = 3: MSFlexGrid1.Text = 备 注 SQL = SQL & order by 部门编号 asc 向表格控件输入数据 PrintSQL = SQL If rc.State = 1 Then rc.Close rc.Open SQL, Cnndb, 3, 2 If rc.RecordCount 0 Then MSFlexGrid1.Rows = rc.RecordCount + 1 i = 1 rc.MoveFirst Do Until rc
32、.EOF MSFlexGrid1.Row = i For j = 1 To 3 MSFlexGrid1.Col = j MSFlexGrid1.Text = & rc(j - 1) MSFlexGrid1.CellAlignment = 1 Next j rc.MoveNext i = i + 1 Loop Else MSFlexGrid1.Rows = 1 End If Dim n As Integer 清除表格控件最左边的选定当前行标志 For n = 0 To MSFlexGrid1.Rows - 1 MSFlexGrid1.TextMatrix(n, 0) = Next n Chang
33、eCheck = False Txtbmbh.Text = FBmbh 恢复当前各个输入框的值 Txtbmmc.Text = FBmmc Txtbz.Text = FBzEnd Sub (4)数据删除当操作员需要对某个或多个部门进行删除时,可以在编辑部门信息窗体下部中找到删除按钮。由于删除记录不可能在大量的数据中盲目的寻找,因此数据删除也有数据查找功能,先在对应的文本框中输入要进行数据删除的条件,再按删除按钮,系统便会列出满足删除条件的部门记录,并提示是否删除满足条件的全部部门记录,也可以一条一条删除部门记录,只要在数据表格中选中要删除的部门记录,在按一下删除按钮即可删除数据。删除数据代码:P
34、rivate Sub DataDel() 数据删除 Dim DelSQL As String Dim YesNo As Integer Dim SQL As String SQL = select * from 部门基本情况 If rc.State = 1 Then rc.Close rc.Open SQL, Cnndb, 3, 2 If rc.RecordCount 0 Then YesNo = MsgBox(真的要删除表格里满足条件的所有记录吗?, vbYesNo + vbQuestion) If YesNo = vbYes Then DelSQL = If Txtbmbh.Text Th
35、en DelSQL = DelSQL & and 部门编号 = & Trim(Txtbmbh.Text) & If Txtbmmc.Text Then DelSQL = DelSQL & and 部门名称 = & Trim(Txtbmmc.Text) & If Txtbz.Text Then DelSQL = DelSQL & and 备注 = & Trim(Txtbz.Text) & If DelSQL Then DelSQL = delete from 部门基本情况 where 部门编号 & DelSQL Cnndb.Execute (DelSQL) Call DataFresh( sel
36、ect * from 部门基本情况 ) Call TxtKong End If Else Call DataFresh( select * from 部门基本情况 ) End If End IfEnd Sub(5)清空清空按钮的作用可使所有文本框清空,方便用户进行其它操作。在下面各界面设置操作与上相同不再重复说明。清空输入信息代码:Private Sub CmdClear_Click() ChangeCheck = False Call TxtKong Dim n As Integer For n = 0 To MSFlexGrid1.Rows - 1 MSFlexGrid1.TextMatrix(n, 0) = End Sub浏览部门信息此窗体主要针对一般用户,只有浏览功能,因为