收藏 分享(赏)

职工工资综合管理系统的设计与实现.doc

上传人:wo7103235 文档编号:6152295 上传时间:2019-03-30 格式:DOC 页数:52 大小:949.50KB
下载 相关 举报
职工工资综合管理系统的设计与实现.doc_第1页
第1页 / 共52页
职工工资综合管理系统的设计与实现.doc_第2页
第2页 / 共52页
职工工资综合管理系统的设计与实现.doc_第3页
第3页 / 共52页
职工工资综合管理系统的设计与实现.doc_第4页
第4页 / 共52页
职工工资综合管理系统的设计与实现.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、职工工资综合管理系统的设计与实现目 录前 言 1一 系统设计 2(一) 系统功能分析 .2(二) 系统功能模块设计 .2二、数据库设计 .5(一) 数据库需求分析 .5(二) 数据库概念结构设计 .5(二) 数据库逻辑结构设计 .7三、数据库结构的实现 .9四、系统安全性的设计 11(一)对用户密码使用了加密解密技术,安全性更高 .11五、创建应用程序 12六 登 陆 窗 口 设 计 .14七 职 工 工 资 主 界 面 设 计 .16八 人 员 管 理 主 界 面 设 计 .17九 职 位 管 理 主 界 面 设 计 19十 特 殊 项 管 理 主 界 面 设 计 .21十一 工 资 发 放

2、 管 理 主 界 面 .23十二 详细代码(附) .25结 束 语 48参考文献 481前 言现代企业都需要职工工资管理,特别是工资内容日益丰富的社会,工资管理工作更是不可缺少。电脑管理也成为企业管理必不可少的一个方面,而现在很多企业单位虽然使有电脑,但大多数都是人工记帐与电脑统计相结合的方式,由于顾客、供货商很多,为此总是产生大量的单据,而一般企业又往往是从事业务的人员很多,而作统计工作的只有一到两人,所以经常出现单据丢失现象,以至造成一些不必要的损失,例如工资发放账目不对应,发工资不及时等等问题,且查对时需要相当长的时间,因此而白白耗费了大量人力与时间,为管理上带来了诸多的困难与不便。作为

3、计算机专业即将毕业一名学生,在本次毕业设计中我选择了职工工资管理系统,如该系统得以实施。将解决上述问题。系统将把所有进货、销货、库存的记录、单据一一登记,并可以快速查找与分类这些数据,同时可以随时备份各种数据以便计算机的维护。职工工资管理系统包括对工资发放进行管理,职工信息管理。如果一个部门或单位没有工资管理系统,那么必将会使本单位的工资管理,如果使用传统的人工统计,不仅耗费财力、物力、人力,同时也容易出现错误,也不能及时的进行查对工作。一个良好的工资管理系统就可以完全解决这些方面的不足之处。也会促使部门或单位向着健康有序的方面发展。在此运用 Visual basic 设计软件开发一个较为全面

4、的仓库管理系统以便适合任何一个单位或部门对仓库进行管理的系统。2一 系统设计(一)系统功能分析系统开发的总体任务就是实现职工工资成绩管理的系统化、规范化和自动化。职工工资成绩综合管理系统需要完成的主要功能有: 职工基本信息的录入 职工基本信息的修改 职工基本信息的查询 职工基本信息的删除 职工工资信息的录入 职工工资信息的修改 职工工资信息的查询 职工工资信息的删除(二)系统功能模块设计对上述功能进行集中、分块和分析,按照结构化程序设计的要求,得到如图 1 所示的系统功能模块图。3职工综合管理系统职工基本信息管理 学生成绩信息管理职工基本信息修改职工基本信息 查询职工基本信息删除系统设置职工基

5、本信息添加用户管理密码修改职工工资信息添加职工工资信息修改职工工资信息查询职工工资信息删 除图 1 系 统 功 能 模 块 图4职工基本信息管理 职工工资信息管理 查询条件的 输 入职工基本信息查询录入添加信 息职工基本信息添加选择删除的记录 录入修改信 息职工基本信息删除职工基本信息修改管理后的数据图 2 系 统 数 据 流 程 图查询条件的 输 入职工工资信息查询录入添加信 息职工工资信息添加选择删除的记录录入修改信 息职工工资信息删除职工工资信息修改5二、数据库设计(一)数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询等方面。这就要求数据库结构能充分满足各种信息的输入和

6、输出。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为下一步的数据库具体设计做好充分的准备。在仔细分析调查有关职工工资综合管理系统需求的基础上,将得到如图 2 所示的本系统所处理的数据流程。针对一般职工工资综合管理系统的需求,通过对职工各种信息变动过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:职工基本信息,包括的数据项有:职工 ID、姓名、性别、出生年月、工作年月。特殊项信息,包括的数据项有:职工 ID、特殊项 ID、特殊项金额、特殊项时间等。职位信息,包括的数据项有:职位,基本工资,津贴。设计好上面的数据结构、数据项和数据流程,就可以开始下面的数据库设计。(

7、二)数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需要的各种实体以及它们之间的关系,为后面的逻辑结构设计打下好的基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。根据上面的设计,得到的实体有:职工基本信息实体、特殊项信息实体,职位信息实体。各个实体的描述 E-R 图,如下所示。职工基本信息实体的 E-R 图,如图 3 所示。6职工 ID 工作年月职工基本信息实体职工姓名 出生年月图 3 职工基本信息实体的 E-R 图特殊项信息实体的 E-R 图,如图 4 所示。职工 ID 日 期特殊项信息实体特殊项 ID 特殊项金额图 4 特殊信息实体的 E-R 图

8、各个实体之间关系的 E-R 图,如图 5 所示7职工信息变 动职工基本信息管理职工成绩信息管理图 5 各个实体之间关系的 E-R 图(二) 数据库逻辑结构设计现在需要把上面设计好的数据库概念结构转化为 Microsoft Access 2000 数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。学生学籍成绩综合管理系统数据库中各个表格的设计结果如下面表格所示。每个表格对应于数据库中的一个表。其中,表 1 为职工信息表, 表 2 为特殊项信息表 ,表 3 为系统用户口令表。表 1 score 职工信息表8表 2 特殊项信息表列 名 数 据 类 型 可 否 为 空 说 明特殊象 ID NU

9、MBER NOT NULL 职工特殊项 ID职工 ID NUMBER NOT NULL 职工的 ID特殊项名称 VARCHAR NOT NULL 特殊项的名称特殊象日期 VARCHAR NOI NULL 特殊项的日期因为本系统采用了用户管理模式,所以在系统中应设立数据库管理表 3 user_pswd 用户口令表列 名 数 据 类 型 可 否 为 空 说 明pswd VARCHAR NOT NULL 口令user VARCHARNOT NOT NULL 用户名列 名 数 据 类 型 可 否 为 空 说 明职工 ID NUMBER NOT NULL 职工 ID职位 VARCHAR NOT NULL

10、 职工职位姓名 VARCHAR NOT NULL 职工姓名性别 VARCHAR NOT NULL 职工性别出生年月 VARCHAR NULL 职工出生年月工作年月 VARCHAR NULL 职工工作年月9三、数据库结构的实现在需求分析、概念结构设计的基础上得到数据库逻辑结构以后,就可以在数据库系统中实现该逻辑结构。本系统使用的是 Microsoft Access 2000 数据库系统,下面说明创建数据库的过程。图 6(数据库操作模拟图)(1) 打开 Microsoft Access 2000 数据库系统如图 6 所示,打开下拉菜单,选者新建空白数据库。(2) 在数据库文件格式中选择“使用设计器

11、创建” ,加入所需要的字段名,和所需要的格式说明。10(3) 如图 7 所示再设立头文件,建立数据库的工作完成图 7。11四、系统安全性的设计(一)对用户密码使用了加密解密技术,安全性更高( 测试的用户 密码 ) :Administrator Administrator系统默认的用户名和密码为 Administrator,管理员可以根据需要设定密码,和增加用户名。12五、创建应用程序该职工工资综合管理系统应用程序使用 Microsoft Visual Basic 方法开发,工程的创建步骤如下:(1) 选择窗口中的 “新建项目”选项卡中 “标准 EXE”,13。(1) 选择“打开”选项,如上图

12、所示。14图 6 选择基于对话框的应用程序第一步(2) 为了程序能支持数据库对象,在头文件 stdafx.h 中加入#include 。15六 登 陆 窗 口 设 计由于此应用程序采用的是基于对话框的开发,因此该应用程序的主对话框(即运行应用程序后出现的对话框)就应是登录窗口。该窗口的设计如图 7 所示。为了数据库的使用安全,系统有默认的 Administrator 帐户,在后面具体模块设计时会有详细的介绍。单击 “身份验证” 按钮后,应用程序会首先执行一次数据库查询,看输入的用户名和口令是不是在数据库的 user 表中存在,如果存在则打开系统管理功能选择对话框,若没有找到,则有相应的提示,并

13、给予用户再次尝试的机会,如果为成功则会不允许进入此系统。图 7 登陆窗口上的控件布局实现这些功能的代码写在“身份验证”按钮的单击事件函数中:16Private Sub cmdOK_Click() If (flag = True) ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset.MoveNextNext i ElseMsgBox “你的用户名或密码有误“, vbCritical, “警告“frmuser.txtUser = “frmuser.txtPassword = “End If(具体内容请见第 17 节中的详细源代码 - 第 17 页)在此过程

14、中对用户输入的密码用解密函数分析数据库中的密码进行判断。17七 职 工 工 资 主 界 面 设 计由系统功能选择功能进入系统设置窗口后,将出现如图 9 所示的操作选择窗口, 各个按钮单击完成的功能简单介绍如下: “人员管理”:打开进入 “人员管理模块” 。 “职位管理”:打开进入 “职位管理模块” 。 “特殊项管理”:打开进入 “特殊项管理模块” 。 “工资发放管理”:打开进入 “工资发放管理模块” “退出”:打开退出本系统图 9 系统设置窗口的控件布局18八 人 员 管 理 主 界 面 设 计人员管理主界面是一个综合性操作界面,由一个大的窗口组成,包括四个 List Control 控件:添

15、加、删除、修改、退出。在窗口的左部分显示职工的基本信息;窗口的右边是来使用各项操作该窗口由主窗口上的 “人员管理”按钮单击事件激发。 职工信息主界面如图 12 所示。图 12 职工信息主界面窗口上控件的布局下面解释各个功能实现的大体过程。当点击“添加”里的记录时,在出现图表添加职工信息19 当点击“添加”控件时,则调用如下函数:.Private Sub cmdCancel_Click()Me.HideEnd Sub初始化Private Sub Form_activate()lblField(0).Caption = “职工 ID“lblField(1).Caption = “职位“lblFie

16、ld(2).Caption = “姓名“lblField(3).Caption = “性别“lblField(4).Caption = “出生年月“lblField(5).Caption = “工作年月“.End SubPrivate Sub lblField_Click(Index As Integer)End Sub(具体内容请见第 17 节中的详细源代码 -第 21-22 页 8.1) 当点击“修改”选项,则弹出新的对话框如图所示,根据数据项所指选择所需要修改的职工,调用以下函数:刷新数据,保持一致Private Sub Form_activate()lblField(0).Captio

17、n = “职工 ID“lblField(1).Caption = “职位“lblField(2).Caption = “姓名“lblField(3).Caption = “性别“lblField(4).Caption = “出生年月“lblField(5).Caption = “工作年月“保证职工 ID 不会被改变txtValue(0).Locked = TrueEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub。为了保持数据的完整性,函数中使用了“保证职工 ID 不会被改变” ,来保证职工的基本数据不被删除。(具体内容请见第

18、12 节中的详细源代码 - 第 22-23 页 8.2) 当选择“退出”时,系统将返回到住界面,方便用户继续进行相关的操作。20九 职 位 管 理 主 界 面 设 计职位管理是对职工职位进行管理,包括了“添加” , “修改” , “删除” , “取消”四个控件。窗口的左边显示职工所出的职位,右边显示管理员所需要进行的操作。 当点击“添加”控件时,则弹出对话框,在相应的表格中加入职工的“职位” , “基本工资” , “津贴” 。在点击添加便完成了操作。调用如下函数 Private Sub cmdPrint_Click()部分代码如下:.Private Sub cmdCancel_Click()2

19、1Me.HideEnd SubPrivate Sub Form_activate()For i = 0 To 2txtValue(i).Text = “NextEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub(具体内容请见第 12 节中的详细源代码 - 第 23-25 页 9。1 节) 当点击“修改”时,同职工管理类似,选择所需修改的数据便可。调用的函数如下:For i = 0 To 2PosForm.DataGrid1.Row = PosForm.CurPosPosForm.DataGrid1.Col = itxtValue

20、(i) = PosForm.DataGrid1.TextNexttxtValue(0).Locked = TruetxtValue(0).Text = PosForm.CurPosEnd Sub(具体内容请见第 12 节中的详细源代码 - 第 25-26 页 9。2 节) 选择“退出”选项时,将返回主界面,方便用户进行其他相关操作。22十 特 殊 项 管 理 主 界 面 设 计特殊项管理是对于职工工作中发生的一些特殊的工资问题如迟到,早退,项目提成等等一些出于基本工作外的事情进行的工资调整。同样包括了“添加” , “修改” , “删除” , “退出”三个选项,其主页面图如下:23 当点击“添加

21、”控件时,则弹出对话框,在相应的表格中加入相应特殊项的“特殊项ID”, “职工 ID”, “特殊项名称” , “特殊项金额” , “特殊项日期” 。在点击添加便完成了操作。调用如下函数 Private Sub cmdPrint_Click()其代码如下:保证姓名与 ID 一致Private Sub cmbName_Click()cmbID.Text = cmbID.List(cmbName.ListIndex)End Sub.lblField(2).Caption = “特殊项名称“lblField(3).Caption = “特殊项金额“lblField(4).Caption = “特殊项日

22、期“For i = 2 To 4txtValue(i) = “NextcmbID.Clear24cmbName.Clear.(具体内容请见第 12 节中的详细源代码 - 第 27-28 页 10.1 节)保持 ID 和姓名一致可以防止职工特殊项出错误。 当点击“修改”时,选择所需修改的数据。调用的函数如下:Private Sub cmdCancel_Click()intErrFileNo = FreeFile()Private Sub Form_activate()(具体内容请见第 12 节中的详细源代码 - 第 28-30 页 10.2 节) 当选择“退出”时,系统将返回到主界面,方便用户继

23、续进行相关的操作。25十一 工 资 发 放 管 理 主 界 面工资发放管理包括“生成月表” , “查询是否发放工资” , “发放工资” , “打印列表”能够对职工工资发放进行管理,使工资的发放更加方便。其主界面如下: 查询职工是否已经领取工资在“员工姓名”选择所需要服务的职工名称,并输入所查询的月份,点击“查询” ,提示是否领取。在查询中调用了查询函数:SQL = “select 工资取毕 from “ & Format(CDate(cmbMonth.Text), “YYYYMM“) & “ where 26职工 ID = “ & cmbEmployee.Text & “从数据库中间调用数据.

24、 管理员可以根据需要生成所需要月表,在选定了职工姓名和月份的情况下。并可连接打印机进行打印。调用函数 Private Sub cmdPrint_Click()其部分代码如下:SQL = “SELECT 职工 ID FROM 职工“OpenRS (SQL)gRst.MoveFirstDim counts As IntegergRst.MoveLastcounts = gRst.RecordCountgRst.MoveFirstReDim mEIDs(counts)ReDim mSum(counts)Dim i As Integeri = 0While Not gRst.EOFi = i + 1m

25、EIDs(i) = gRst(“职工 ID“)gRst.MoveNextWendCloseRS.运用代码:Private Sub cmdPrint_Click()On Error Resume NextgX.Workbooks.Open App.Path & “ & mMonth & “细表.xls“Set mSheet = gX.ActiveSheetmSheet.PrintOutgX.Workbooks.CloseEnd Sub来把数据输入打印机进行打印。27十二 详细代码(附)第 6 节Private Sub cmdOK_Click()Dim i As IntegerDim flag A

26、s BooleanDim user As String, password As Stringflag = Falseuser = Trim(txtUser.Text)password = Trim(txtPassword.Text)If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenExit SubEnd IfAdodc1.Recordset.MoveFirstFor i = 1 To Adodc1.Recordset.RecordCountIf (user = Trim(Adodc1.Recordset.Fields(“user“) An

27、d password = Trim(Adodc1.Recordset.Fields(“password“) Thenflag = TrueExit ForEnd IfAdodc1.Recordset.MoveNextNext iIf (flag = True) ThenMainForm.ShowElseMsgBox “你的用户名或密码有误“, vbCritical, “警告“frmuser.txtUser = “frmuser.txtPassword = “End IfEnd SubPrivate Sub cmdReset_Click()frmuser.txtUser = “28frmuser

28、.txtPassword = “End SubPrivate Sub Label1_Click()End Sub添加员工Private Sub cmdAdd_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成 SQL 语句SQL = “INSERT INTO 职工(职工 ID,职位,姓名,性别,出生年月,工作年月) VALUES(“SQL = SQL & txtValue(0).Text & “,“SQL = SQL & txtValue(1).Text & “,“SQL = SQL & txtVal

29、ue(2).Text & “,“SQL = SQL & txtValue(3).Text & “,#“SQL = SQL & txtValue(4).Text & “#,#“SQL = SQL & txtValue(5).Text & “#)“打开连接OpenDBFile执行 SQL 语句gCon.Execute SQL关闭连接CloseDBFile刷新数据HRForm.Adodc1.Refresh隐藏窗体Me.Hide-Exit Sub-ErrGoto:把错误信息保存在文件里29intErrFileNo = FreeFile()Open “YFSystem.ini“ For Append A

30、s intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, “YYYY-MM-DD HH:MM:SS“) + Chr(34), Chr(34) + “信息“ + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + “cmdAdd_Click(AddEForm)“ + Chr(34), Chr(34) + App.Title + Chr(34)Close #intErrFileNoEnd SubPrivate Sub cmdCancel_Click()Me.HideEnd Sub!P

31、rivate Sub cmdOK_Click()Dim i As IntegerDim flag As BooleanDim user As String, password As Stringflag = Falseuser = Trim(txtUser.Text)password = Trim(txtPassword.Text)If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenExit SubEnd IfAdodc1.Recordset.MoveFirstFor i = 1 To Adodc1.Recordset.RecordCountIf (user = Trim(Adodc1.Recordset.Fields(“user“) And password = Trim(Adodc1.Recordset.Fields(“password“) Thenflag = TrueExit ForEnd IfAdodc1.Recordset.MoveNextNext iIf (flag = True) ThenMainForm.ShowElseMsgBox “你的用户名或密码有误“, vbCritical, “警告“frmuser.txtUser = “

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报