《基于VB的工资管理系统.docx》由会员分享,可在线阅读,更多相关《基于VB的工资管理系统.docx(47页珍藏版)》请在三一办公上搜索。
1、南昌航空工业学院高等职业技术学院毕业设计(论文)任务书、毕业设计(论文)题目:工资管理系统、毕 业设计(论文)使用的原始资料(数据)及设计技术要求:利用Visual Basic6.0及Microsoft Access2000数据库技术对企业员工工资的基本信息进行管理,要求进行用户需求分析,功能模块的设计,对部门、员工及工资的基本信息进行添加、修改、删除、查询及打印等功能。、毕 业设计(论文)工作内容:1. 查找资料,撰写开题报告。2. 设计系统主界面。3. 完成部门管理、员工基本信息管理模块的设计。4. 对软件进行调试与测试。、主 要参考资料:1刘韬等,编著.Visual Basic 6.0数
2、据库系统开发实例导航.北京:清华大学出版社, 20032 丰岚等,编著.手把手教你开发管理信息系统.北京:北京希望电子出版设,20023 求是科技.Visual Basic6.0数据库开发技术与工程实践.北京:人民邮电出版社,2004 专 业 班 学生 李慧明日期: 自 2007 年 2 月 26 日 至 2007 年 6 月 15 日指导教师 兼职教师或答疑教师(并指出所负责的部分):专业主任 开题报告毕业课题名称:工资管理系统一选题的依据及课题的意义:随着计算机技术的普及,数据信息处理技术得到了空前发展,人们处理大量数据的能力越来越强,大量以前必需由人工处理的工作现在都可以由计算机代劳。早
3、期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间限制。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。二国外研究概况及发展趋势:20世纪80年代后期,进入到数据管理阶段。该阶段的计算机系统广泛应用于企业管理。同时工资管理系统已经由原来的人工管理走入了计算机管理的时代,作为信息管理主要工具的数据库已经成为举足轻重的角色。数据库就是存放数据的仓库,数据按一定的规律存放在计算机中,在科学技术飞速发展的今
4、天人们越来越依赖计算机把现实中的事物抽象成数据然后以记录的形式加以保存。换个角度看数据库是长期存储在计算机内的,有组织的,可共享的数据集合。它具有较小的冗余度,较高的系数据独立性和易扩展性等特征,可以让多个用户在不同的权限下使用。这样用数据库技术来管理工资是一种趋势。三研究内容及实验方案;研究内容: 本课题的研究内容是对数据库理论及软件工程理论的研究,并利用所学的知识将这些理论运用到实践中来,即用这两大理论开发一套工资管理系统。这套系统包含以下几个功能模块:1工资信息设置 2 工资信息管理 3. 系统其功能模块图如下所示:企业工资管理系统系统部分企业工资信息设置企业工资信息管理修改密码基本工资
5、设置其他工资设置工资公式设置计算实发工资查询工资退出系统出勤统计添加用户导出工资表 图一 系统功能模块图本人研究的是以下几个功能模块:(1)工资信息设置这个模块的作用是包括设置员工的基本工资和其他项目的金额,如奖金等。并且负责设置员工工资的计算公式.(2)工资信息管理这个模块包含的信息是包括统计出勤、计算工资、查询工资和导出工资表。四目标,主要特色及工作进度目标:在WINDOWS系统下,运用 VB6.0和ACCESS2000数据库进行开发,实现工资管理系统。主要特色:易操作,外观新颖,界面友好,探索性较强。工作进度:第1至3周:收集相关资料,进行系统方案设计,写出开题报告第4至8周:实现各部分
6、模块功能。 第9至14周:整体调试并进行必要修改。第15至18周:测试所有功能,写论文。五参考文献1 张立科,Visual Basic 6.0数据库开发技术与工程实践,人民邮电出版 社,2004.4月2 赵增敏,王庆建,ACCESS2000实用教程,电子工业出版设,2002.6月3 牛勇,VB编程篇,电子工业出版设,2004.4月4 徐士良,计算机软件技术基础,清华大学出版社,2002.2工资管理系统 学生姓名:徐波 班级:049042-22指导老师:江晶摘要:企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,
7、同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时间限制。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典
8、型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。运行结果证明,本企业工资管理系统极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志。关键词:VB 工资管理 信息管理 数据查询 数据库 指导老师 目 录第一章 绪论81.2 企业工资管理系统8第二章 工资管理系统设计分析92.1 应用需求分析92.2 系统功能模块划分102.3系统数据库设计12第三章
9、工资管理系统应用程序设计1731 “登录模块”详细设计1732 “主窗体”模块详细设计20.各项子模块详细设计243.3.1 “设置基本工资”窗体设计243.3.2 “其他项目设置”窗体设计263.3.3 “工资计算公式设置”窗体设计293.3.4 “计算实发工资”窗体设计313.3.5 “查询工资“窗体设计333.3.6 “导出工资表”窗体设计3434 各项子模块编写要点35第四章软件调试与测试45第五章 总结46参考文献47第一章 绪论1.1 数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及
10、各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MS Access 2000就是一种关系型数据库管理系统。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。SQL语言是关系型数据库的标准化语言,已得到了广泛的应用。
11、1.2 企业工资管理系统企业工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。最初的工资统计和发放都是使用人工方式处理,工作量大的时候,出现错误的机率也随之升高,不仅花费财务人员大量的时间,而且往往由于抄写不慎,或者由于计算的疏忽,出现工资发放错误的现象。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是企业工资管理的这种重复性、规律性、时间性,使得企业工资管理计算机化成为可能。企业工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多企业工资信息的处理,同时使用电脑还可以安全地、完整地保存大量的企业工资记录。第二章 工资管理系统设计分析2.
12、1 应用需求分析需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。通常需求分为两种类型:一种是功能性需求,一种是非功能性需求,这一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类最主要的需求。非功能性需求
13、是指实际使用环境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质材料和具有较强的时
14、间限制。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。运行结果证明,本企业工资管理系统极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志2.2 系统功能模块划分 根据该企业的业务情况及实现目标,系统功能模块图如图2.1所示:
15、企业工资管理系统系统部分企业工资信息设置企业工资信息管理修改密码基本工资设置其他工资设置工资公式设置计算实发工资查询工资退出系统出勤统计添加用户导出工资表图2.1 系统功能模块在这次系统开发中我主要完成的部分是工资管理和设置方面。开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。系统最终实现的主要功能如下:企业工资信息设置部分:包括设置员工的基本工资和其他项目的金额,如奖金等。并且负责设置员工工资的计算公式。工资信息设置工资计算公式设置其他工资设置基本工资设置
16、图2.2 工资信息设置模块企业工资信息管理部分:包括统计出勤、计算工资、查询工资和导出工资表。工资信息管理导出工资表计算实发工资出勤统计查询工资图2.3 工资信息管理模块系统部分:包括添加用户和修改密码。系统退出系统修改密码添加用户图2.4 系统模块2.3系统数据库设计数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容分析,为本系统设计如下的数据项和数据结构:基本工资信息:包括员工
17、编号和基本工资(元/小时)。基本工资信息员工编号基本工资图2.5 基本工资实体E-r图其他项目信息:包括员工编号、奖金、津贴、福利、扣发等。其他项目设置奖金津贴福利扣发图2.6 其他项目实体E-R图计算公式信息:包括加班费的百分比、出差工资、旷工、迟到早退扣发等。计算公式加班费出差工资旷工扣发图2.7计算公式实体E-R图启动Access 2000,创建新的数据库,命名为Salary.mdb和Person.mdb,保存在要存放这个系统所有工程文件的文件夹中。在使用的时,要把应用程序和这两个数据库保存在同一个文件夹中。表2.1 员工出勤统计信息表:字 段类 型长 度是否空说 明id自动编号长整型否
18、记录编号stuffid文本50否员工编号stuffname文本50否员工姓名recordmonth日期/时间否统计时间attendance数字长整型否出勤天数lateearly数字长整型否迟到早退次数absent数字长整型否旷工次数overtimecom数字长整型否正常加班次数overtimespe数字长整型否特殊加班次数errand数字长整型否出差次数表2.2 员工工资计算公式信息表:字 段类 型长 度是否空说 明overtimecom数字长整型否正常加班工资百分比overtimespe数字长整型否特殊加班工资百分比errand数字长整型否出差工资absent数字长整型否旷工工资le数字长整
19、型否迟到早退表2.3 员工其他项目设置:字 段类 型长 度是否空说 明id自动编号长整型否记录编号stuffid文本50否员工编号yearmonth日期/时间否年月type数字长整型否类型name文本50是类型money货币货币否名称remark备注是备注表2.4 员工工资统计信息表:字 段类 型长 度是否空说 明id自动编号长整型否记录编号stuffid文本50否员工编号stuffname文本50否员工姓名yearmonth日期/时间否时间basicsalary货币货币基本工资bonus货币货币奖金welfare货币货币福利allowance货币货币津贴abatement货币货币扣发lesu
20、b货币货币迟到早退扣发absentsub货币货币旷工扣发overtime货币货币加班费errand货币货币出差费others货币货币其他金额total货币货币总额表2.5 员工信息表:字 段类 型长 度是否空说 明sid文本50否员工编号sname文本50否员工姓名sgender文本50否性别splace文本50否籍贯sage数字长整型否年龄sbirthday日期/时间否生日sdegree文本50是学历sspecial文本50是专业saddress文本50是住址scode文本50是邮编stel文本50是电话semail文本50是EmailsworkTime日期/时间否参加工作时间sintime
21、日期/时间否进入公司时间sdept文本50是部门spaytime日期/时间否起薪时间sposition文本50是职务sremark文本50是备注表2.6 用户信息表:字 段类 型长 度是否空说 明userid文本50否用户名称userpwd文本50否用户密码第三章 工资管理系统应用程序设计31 “登录模块”详细设计1、实现目标:登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。 2、界面
22、:图3.1 用户登陆界面登陆界面程序流程图如下:输入用户名密码开始用户名密码是否正确进入系统密码错误是否图3.2 登陆程序流程图3、程序说明: Option ExplicitDim pwdcount As IntegerPrivate Sub cmdcancel_Click() username.Text = password.Text = End SubPrivate Sub cmdok_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(username.Text = ) Then MsgBox 没有输入用户名称, vbO
23、KOnly + vbExclamation, 警告 username.SetFocus Else sql = select * from userinfo where userid= & username.Text & Set rs = getrs(sql, salary) If iflag = 1 Then If rs.EOF = True ThenMsgBox 没有这个用户,请重新输入, vbOKOnly + vbExclamation, 警告 username.SetFocus Else If Trim(rs.Fields(1) = Trim(password.Text) Then rs
24、.Close Me.Hide strusername = Trim(username.Text) userpassword = Trim(password.Text) frmMain.Show Unload Me Else MsgBox 密码不正确,请重新输入, vbOKOnly + vbExclamation, 警告 password.SetFocus password.Text = End If End If End If End If pwdcount = pwdcount + 1 If pwdcount = 3 Then Unload Me End IfEnd SubPrivate S
25、ub Form_Load() pwdcount = 0 strusername = userpassword = End Sub32 “主窗体”模块详细设计1实现目标:在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。2、界面及目标实现过程:主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。图3.4 员工工资管理系统界面3、程序说明:rivate Sub Menu_about_Cli
26、ck() frmabout.Show frmabout.ZOrder 0End SubPrivate Sub Menu_adduser_Click(Index As Integer) If Trim(strusername) admin Then MsgBox 对不起,您没有这个权限!, vbOKOnly + vbExclamation, 警告 ElseIf Trim(strusername) = admin Then frmadduser.Show frmadduser.ZOrder 0 End IfEnd SubPrivate Sub Menu_basic_Click(Index As I
27、nteger) If Trim(strusername) admin Then MsgBox 对不起,您没有这个权限!, vbOKOnly + vbExclamation, 警告 ElseIf Trim(strusername) = admin Then ichangeflag = 1 frmbasicsetting.Show frmbasicsetting.ZOrder 0 End IfEnd SubPrivate Sub Menu_changepwd_Click(Index As Integer) frmchangepwd.Show frmchangepwd.ZOrder 0End Sub
28、Private Sub Menu_check_Click(Index As Integer) frmresult.Show frmresult.ZOrder 0 frmresult.Caption = 信息查询End SubPrivate Sub Menu_exit_Click(Index As Integer) Unload Me Exit SubEnd SubPrivate Sub Menu_formulasetting_Click(Index As Integer) If Trim(strusername) admin Then MsgBox 对不起,您没有这个权限!, vbOKOnly
29、 + vbExclamation, 警告 ElseIf Trim(strusername) = admin Then frmformula.Show frmformula.ZOrder 0 End IfEnd SubPrivate Sub Menu_getsalary_Click(Index As Integer) If Trim(strusername) admin Then MsgBox 对不起,您没有这个权限!, vbOKOnly + vbExclamation, 警告 ElseIf Trim(strusername) = admin Then frmsumsalary.Show frm
30、sumsalary.ZOrder 0 End IfEnd SubPrivate Sub Menu_others_Click(Index As Integer) If Trim(strusername) admin Then MsgBox 对不起,您没有这个权限!, vbOKOnly + vbExclamation, 警告 ElseIf Trim(strusername) = admin Then ichangeflag = 1 frmothersetting.Show frmothersetting.ZOrder 0 End IfEnd SubPrivate Sub Menu_out_Clic
31、k(Index As Integer) If Trim(strusername) admin Then MsgBox 对不起,您没有这个权限!, vbOKOnly + vbExclamation, 警告 ElseIf Trim(strusername) = admin Then frmexport.Show frmexport.ZOrder 0 End IfEnd SubPrivate Sub Menu_sumattendance_Click(Index As Integer) frmsuminout.Show frmsuminout.ZOrder 0End Sub.各项子模块详细设计3.3.
32、1 “设置基本工资”窗体设计1、实现目标:选择“工资信息设置”“基本工资设置”菜单设置员工的基本工资,可以根据员工的编号,或者根据员工职务设置基本工资,设置的基本工资为每个小时的工资。2、界面及控件列表图3.5 设置基本工资界面表3.1 设置基本工资主要控件列表对 象属 性设 置optionbuttonCaption员工编号optionbuttonCaption员工职务Command1caption确认Command2caption取消3、程序说明:Set rs = getrs(sql, salary)If rs.EOF = False Thensql = delete from salary
33、setting where stuffid= & Mstuffid.Text & Call transactsql(sql, salary)End Ifrs.Closeid = Mstuffid.TextCall addrecordMsgBox 已经设置基本工资, vbOKOnly + vbExclamation, 添加结果Call initsql = select * from salarysettingCall frmresult.basictopicCall frmresult.showbasic(sql)frmresult.Showfrmresult.ZOrder 0Me.ZOrder
34、 03.3.2 “其他项目设置”窗体设计1、实现目标:选择“工资信息设置”“其他项目设置”菜单,在其他项目设置的窗体中,设置员工当月的奖金、津贴、福利等项目。2、界面及主要控件列表图3.6其他项目设置界面表3.2 其他项目主要控件对 象属 性设 置dtpicker名称dttimecombobox名称comidframe名称frameinfotexttext空Optionbuttonvaluefalse3、程序说明:sql = select * from salaryother If ichangeflag = 1 Then Call add MsgBox 已经添加记录, vbOKOnly +
35、vbExclamation, 提示 Call frmresult.othertopic Call frmresult.showother(sql) frmresult.Show Unload Me Else If Me.optionbonus.Value = True Then itype = 1 ElseIf Me.optionallowance.Value = True Then itype = 2 ElseIf Me.optionwelfare.Value = True Then itype = 3 ElseIf Me.optionabatement.Value = True Then
36、itype = 4 ElseIf Me.optionothers.Value = True Then itype = 5 resumdate = recordtime sql = delete from salaryother where stuffid= & Mid.Text sql = sql & and YearMonth=# & recordtime & # and sql = sql & Type= & itype Call transactsql(sql, Salary) Call add Call frmsumsalary.resumsalary(resumdate) sql =
37、 select * from salaryother Call frmresult.othertopic Call frmresult.showother(sql) frmresult.Show Unload Me End If3.3.3 “工资计算公式设置”窗体设计1、实现目标:选择“工资信息设置”“工资计算公式设置”菜单,在这个计算公式窗体中设置员工实际发放工资的计算公式。2、界面及主要控件列表图3.7 计算公式界面表3.3 主要控件列表对 象属 性设 置lablecaption界面所示commandcaption界面所示texttext空3、程序说明:IfMe.textovertimec
38、om = And IsNumeric(Me.textovertimecom) = True Then MsgBox 请输入正常加班工资百分比, vbOKOnly + vbExclamation, 提示 Me.textovertimecom = Me.textovertimecom.SetFocus ElseIf Me.textovertimespe = And IsNumeric(Me.textovertimespe) = False Then MsgBox 请输入特殊加班工资百分比, vbOKOnly + vbExclamation, 提示 Me.textovertimespe = Me.t
39、extovertimespe.SetFocus ElseIf Me.texterrand = And IsNumeric(Me.texterrand) = False Then MsgBox 请输入出差工资, vbOKOnly + vbExclamation, 提示 Me.texterrand = Me.texterrand.SetFocus ElseIf Me.textabsent = And IsNumeric(Me.textabsent) = False Then MsgBox 请输入旷工扣发工资, vbOKOnly + vbExclamation, 提示 Me.textabsent =
40、 Me.textabsent.SetFocus ElseIf Me.textle = And IsNumeric(Me.textle) = False Then MsgBox 请输入迟到早退扣发工资, vbOKOnly + vbExclamation, 提示 Me.textle = Me.textle.SetFocus Else Call setvalue Call init End If3.3.4 “计算实发工资”窗体设计1、实现目标:选择“工资信息管理”“计算实发工资”菜单,在这个窗体中选择需要统计的月份。选择统计月份后,单击“开始统计”按钮,系统如果已经统计了该月份的工资,系统会显示工资信息列表窗体。如果系统还没有统计工资,那么系统开始统计工资,然后在信息结果列表窗体中显示统计结果。2、界面:图3.8计算工资界面3、程序说明:If Mmonth.Text = 4 Then firstday = Year(Date) & - & Mmonth.Text & -1 days = DateDiff(d, Year(Date) & - & Mmonth.Text & -1, _