1、毕业设计论文 学 生 姓 名: 学 号: 学 院、 系: 专 业: 设 计 题 目: 企业工资管理系统 指 导 老 师: 2010 年 10 月 1日目 录摘 要 3一、开发背景 31.1 数据库管理系统简介 41.2 企业工资管理系统 41.3 开发工具简介 4二、需求分析 42.1 系统分析 42.2系统开发的可行性分析 52.3系统功能需求 5三、系统数据库设计 63.1 数据库介绍 63.2 使用ADO控件访问数据库 63.3 数据库设计过程6四、企业工资管理系统用户界面设计104.1 用户界面104.2 “主窗体”模块设计114.3各项子模块的设计12五、结论与体会30六、 参考资料
2、30摘 要本系统是针对芜湖市双翼航天有限公司的实际管理情况所设计和开发的一个工资管理系统。本系统采用可视化的面向对象的编程工具Visual Basic 6.0来开发,用Access 2003建立数据库,从开发背景、需求分析、系统模块建立、数据库设计、功能模块编程等方面阐述了于企业工资管理系统的开发过程,开发出真正适合该公司的工资管理系统。该系统主要由员工管理、工资查询计算和工资报表输出三个模块组成,功能基本涵盖该企业的工资管理业务范围。这个工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富
3、、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。关键词:工资管理系统;开发工具Visual Basic 6.0;数据库Access 2003;系统设计与开发开发平台::WINDOWS开发环境: Visual Basic 6.0,Access 2003一、 开发背景企业工资管理是任何企事业单位都面临的问题,由于各个单位的工资处理方式总是有所区别,因此目前还没有一个通用的工资管理系统,只能针对具体情况去开发适合本单位需求的工资管理系统。由于芜湖市双翼航天有限公司的发展规模一般,员工的数量有限,对企业的工资管理有一定基本的要求,当然使用计算机工资管理系
4、统成为其必然趋势。企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。早期工资管理多采取纸质
5、材料和具有较强的时间限制。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。1.1数据库管理系统数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据
6、模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。Microsoft Access 2003就是一种关系型数据库管理系统。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。SQL语言是关系型数据库的标准化语言,已得到了广泛的应用。1.2 企业工资管理系统企业工资管理是一项琐
7、碎、复杂而又十分细致的工作,一般不允许发生差错。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是企业工资管理的这种重复性、规律性、时间性,使得企业工资管理计算机化成为可能。企业工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多企业工资信息的处理,同时使用电脑还可以安全地、完整地保存大量的企业工资记录。1.3 开发工具简介微软公司的Visual Basic 6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化
8、了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。因此,本系统使用Microsoft Visual Basic 6.0开发。二、 需求分析2.1 系统分析系统分析的过程可以说是一个对具体问题的反复理解和抽象的过程。理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。通常需求分为两种类型:一种是功能性需求,
9、一种是非功能性需求,这一点也需要有一种清楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类最主要的需求。非功能性需求是指实际使用环境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等。本系统的设计应满足以下的系统要求:满足企业员工信息管理的基本要求;满足企业工资结算的基本要求;满足企业工资查询和报表导出的基本要求;提供良好的操作界面,对操作人员的技能要求比较的低;能够保证企业工资管理数据的安全准确。2.2 系统开发的可行性分析管理信息系统的可行性分析包括以下四个方面:管理可行性:指管理人员对开发项目是否支持,现有管理制度是否健全等。
10、而且运用此系统能够大大地提高工作效率,方便管理。经济可性行:主要是预估费用支出和对项目的经济效益进行评价。根据该医院的现有资源设备,建立工资MIS不但能提高工作效率、降低费用,还能提高数据计算的准确性。技术可行性:主要分析当前的技术条件能否满足对系统提出的要求。该医院内部建有局域网,有比较专业的技术人员,能够胜任信息系统的开发工作。社会可行性:是分析研究系统投入使用后对医院和社会可能带来的影响。此系统的开发不会对社会带来任何危害,所以开发此系统是可行的。综上所述,芜湖市双翼航天有限公司工资管理系统是完全可行与重要的。2.3系统功能需求开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实
11、现企业工资信息管理的系统化、规范化和自动化。能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。系统最终实现的主要功能如下:企业工资信息设置部分:包括设置员工的基本工资和其他项目的金额,如奖金等。并且负责设置员工工资的计算公式。企业工资信息管理部分:包括统计出勤、计算工资、查询工资和导出工资表。系统部分:包括添加用户和修改密码。根据以上系统应实现的功能,可以对其上面的功能进行模块化设计,得出系统功能模块图,如图2-1所示。 系 统 修改密码添加用户 系 统1 工资信息管理关 于退出系统基本工资设置其他工资设置工资计算公式设置出勤统计计算实发工资查询工资导出工资工资
12、信息设置退出系统 图2-1 系统功能模块图 三、系统数据库设计数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。3.1数据库介绍数据库是一种存储数据并对数据进行操作的工具。数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库和关系数据库。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。Access2003 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能
13、使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发,具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。3.2使用ADO控件访问数据库ADO是ActiveX Data Objects 的缩写,提供对各种数据库访问的标准
14、接口。1如何用ADO存取数据:在实际编程过程中使用ADO的一个典型的存取数据的步骤为:第一,连接数据源;第二,打开记录集对象;第三,使用记录集;第四,断开连接。2关闭所有的数据连接:如果在代码中使用了数据控件如ADO,在退出时应该关闭所有打开的recordsource,database。虽然对象能自动注销,但是数据连接不会马上断开,可能会导致一些内存不能被系统重新分配。Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式
15、有两种:第一,通过使用Visual Basic的 ADO控件; 第二,通过使用由Visual Basic提供的专用的直接与数据库相连的接口。3.3数据库设计过程 1企业管理系统的ER图:如图31所示。2关系模式的设计:启动Access 2003,创建新的数据库,命名为Salary.mdb,保存在要存放这个系统所有工程文件的文件夹中。在使用的时,要把应用程序和这个数据库保存在同一个文件夹中。员工出勤统计信息表(记录编号、员工编号、员工姓名、统计时间、出勤天数、迟到早退次数、旷工次数、正常加班次数、特殊加班次数、出差次数);员工工资计算公式信息表(正常加班工资百分比、特殊加班工资百分比、出差工资、
16、旷工工资、迟到早退); 员工其他项目设置(记录编号、员工编号、年月、类型、名称、金额、备注);工资信息设置表(记录编号、员工编号、员工职务、基本工资);员工工资统计信息表(记录编号、员工编号、员工姓名、时间、基本工资、奖金、福利、津贴、扣发、迟到早退扣发、旷工扣发、加班费、出差费、其他金额、总额)。员工信息表(员工编号、员工姓名、性别、籍贯、年龄、生日、学历、专业、住址、邮编、电话、Email、参加工作时间、进入公司时间、部门、起薪时间、职务、备注)用户信息表(用户名称、用户密码)3物理结构的设计:为了便于对数据的添加、查询、修改和删除操作,根据本系统的需求分析,最终确定用于保存数据的基本数据
17、表共有7个,具体设计如下:基本表attendancestatistics,用于保存员工的出勤信息:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号stuffname文本50员工姓名recordmonth日期/时间短日期统计时间attendance数字长整型出勤天数lateearly数字长整型迟到早退次数absent数字长整型旷工次数overtimecom数字长整型正常加班次数overtimespe数字长整型特殊加班次数errand数字长整型出差次数基本表formulasetting,用于计算员工工资:字 段类 型长 度说 明overtimecom数字长整型正常加
18、班工资百分比overtimespe数字长整型特殊加班工资百分比errand数字长整型出差工资absent数字长整型旷工工资le数字长整型迟到早退基本表salaryother,用于设置员工其他项目:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号yearmonth日期/时间短时期年月type数字长整型类型name文本50名称money货币货币金额remark备注备注基本表salarysetting,用于设置基本工资:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号sposition文本50员工职务salary货币货币基本工资基本表s
19、alarystatistics,用于保存员工工资统计出的信息:字 段类 型长 度说 明id自动编号长整型记录编号stuffid文本50员工编号stuffname文本50员工姓名yearmonth日期/时间短时期时间basicsalary货币货币基本工资bonus货币货币奖金welfare货币货币福利allowance货币货币津贴abatement货币货币扣发lesub货币货币迟到早退扣发absentsub货币货币旷工扣发overtime货币货币加班费errand货币货币出差费others货币货币其他金额total货币货币总额基本表stuffinfo, 用于保存员工的信息:字 段类 型长 度说
20、明sid文本50员工编号sname文本50员工姓名sgender文本50性别splace文本50籍贯sage数字长整型年龄sbirthday日期/时间短时期生日sdegree文本50学历sspecial文本50专业saddress文本50住址scode文本50邮编stel文本50电话semail文本50EmailsworkTime日期/时间短时期参加工作时间sintime日期/时间短时期进入公司时间sdept文本50部门spaytime日期/时间短时期起薪时间sposition文本50职务sremark文本50备注基本表userinfo,保存用户信息: 字 段类 型长 度说 明userid文本
21、50用户名称userpwd文本50用户密码四、 企业工资管理系统用户界面设计4.1 登录界面登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。 登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。 4.2 “主窗体”模块设计在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和
22、关于这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。 4.3各项子模块的设计1、选择“系统”“添加用户”菜单,在添加用户的窗体里,输入新的用户名称和密码后,单击“确定”按钮,系统将会添加新的用户。添加用户窗口局部代码:sql = insert into userinfo (userid,userpwd) values( & usernamesql = sql & , & password & )Call transactsql(sql, salary) MsgBox 添加成功, vbOKOnly + vbExclamation, 添加结果 usern
23、ame.Text = password.Text = confirmpwd.Text = username.SetFocus 2、选择“系统”“修改密码”菜单,在修改密码的窗体里,输入旧密码和2次输入新密码后,单击“确定”按钮,系统将会更改当前用户的密码。修改密码窗口局部代码:userpassword = newpwdsql = update userinfo set userpwd= & newpwd & where userid= & strusername & Call transactsql(sql, salary)MsgBox 密码已经修改, vbOKOnly + vbExclama
24、tion, 修改结果Unload Me3、选择“工资信息设置”“设置基本工资”菜单设置员工的基本工资,可以根据员工的编号,或者根据员工职务设置基本工资,设置的基本工资为每个小时的工资。设置基本工资窗口局部代码:Set rs = getrs(sql, salary)If rs.EOF = False Thensql = delete from salarysetting where stuffid= & Mstuffid.Text & Call transactsql(sql, salary)End Ifrs.Closeid = Mstuffid.TextCall addrecordMsgBox
25、 已经设置基本工资, vbOKOnly + vbExclamation, 添加结果Call initsql = select * from salarysettingCall frmresult.basictopicCall frmresult.showbasic(sql)frmresult.Showfrmresult.ZOrder 0Me.ZOrder 04、选择“工资信息设置”“其他项目设置”菜单,在其他项目设置的窗体中,设置员工当月的奖金、津贴、福利等项目。其他项目设置窗口局部代码:sql = select * from salaryotherIf ichangeflag = 1 The
26、nCall add MsgBox 已经添加记录, vbOKOnly + vbExclamation, 提示Call frmresult.othertopicCall frmresult.showother(sql)frmresult.Show Unload MeElse 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.op
27、tionabatement.Value = True Then 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 frmsumsal
28、ary.resumsalary(resumdate) sql = select * from salaryother Call frmresult.othertopic Call frmresult.showother(sql) frmresult.Show Unload Me End If 5、选择“工资信息设置”“工资计算公式设置”菜单,在这个计算公式窗体中设置员工实际发放工资的计算公式。 计算公式窗口局部代码:If Me.textovertimecom = And IsNumeric(Me.textovertimecom) = True Then MsgBox 请输入正常加班工资百分比,
29、 vbOKOnly + vbExclamation, 提示 Me.textovertimecom = Me.textovertimecom.SetFocusElseIf Me.textovertimespe = And IsNumeric(Me.textovertimespe) = False Then MsgBox 请输入特殊加班工资百分比, vbOKOnly + vbExclamation, 提示 Me.textovertimespe = Me.textovertimespe.SetFocusElseIf Me.texterrand = And IsNumeric(Me.texterran
30、d) = False Then MsgBox 请输入出差工资, vbOKOnly + vbExclamation, 提示 Me.texterrand = Me.texterrand.SetFocusElseIf Me.textabsent = And IsNumeric(Me.textabsent) = False Then MsgBox 请输入旷工扣发工资, vbOKOnly + vbExclamation, 提示 Me.textabsent = Me.textabsent.SetFocusElseIf Me.textle = And IsNumeric(Me.textle) = False
31、 Then MsgBox 请输入迟到早退扣发工资, vbOKOnly + vbExclamation, 提示 Me.textle = Me.textle.SetFocus Else Call setvalue Call initEnd If6、选择“工资信息管理”“统计出勤记录”菜单,在统计出勤记录窗体中选择需要统计记录的月份。 统计出勤记录窗口部分代码:firstday = Year(Date) & - & Mmonth.Text & -1days = DateDiff(d, Year(Date) & - & Mmonth.Text & -1, _Year(Date) & - & Mmont
32、h.Text + 1 & -1)lastday = Year(Date) & - & Mmonth.Text & - & dayssql = select * from attendancestatistics where recordmonth between #sql = sql & firstday & # and # & lastday & #Set rsrecord = getrs(sql, salary)If rsrecord.EOF = False Then MsgBox 已经统计, vbOKOnly + vbExclamation, 提示 frmaresult.Show frm
33、aresult.ZOrder 0 rsrecord.Close Unload Me Exit Sub End If sql = select * from attendanceinfo where adate between # sql = sql & firstday & # and # & lastday & # Set rsrecord = getrs(sql, person) If rsrecord.EOF = False Then sql = select sid,sname from stuffinfo order by sid Set rsperson = getrs(sql,
34、person)7、选择月份后单击“确定”按钮,如果系统已经统计过该月份的记录,那么会出现如下图所示的统计结果信息列表。如果系统没有统计过,那么系统就会开始统计记录,然后显示如图所示的统计结果信息列表。 员工出勤结构窗口部分代码:If strusername admin Thensql = select sid from stuffinfo where sname= & strusername & Set rs = getrs(sql, salary)sd = rs(0)sql = select * from attendancestatistics where stuffid= & sd &
35、Me.Adodc1.ConnectionString=provider=microsoft.jet.oledb.4.0;Datasource=& App.Path & salary.mdbMe.Adodc1.RecordSource = sqlMe.Adodc1.RefreshSet Me.DataGrid1.DataSource = Me.Adodc1.RecordsetMe.DataGrid1.RefreshElsesql = select * from attendancestatisticsMe.Adodc1.ConnectionString=provider=microsoft.je
36、t.oledb.4.0;Datasource=&App.Path&salary.mdbMe.Adodc1.RecordSource = sqlMe.Adodc1.RefreshSet Me.DataGrid1.DataSource = Me.Adodc1.RecordsetMe.DataGrid1.RefreshEnd If8、选择“工资信息管理”“计算实发工资”菜单,在这个窗体中选择需要统计的月份。选择统计月份后,单击“开始统计”按钮,系统如果已经统计了该月份的工资,系统会显示工资信息列表窗体。如果系统还没有统计工资,那么系统开始统计工资,然后在信息结果列表窗体中显示统计结果。计算实发工资窗
37、口部分代码:If Mmonth.Text = 4 Then firstday = Year(Date) & - & Mmonth.Text & -1 days = DateDiff(d, Year(Date) & - & Mmonth.Text & -1,_Year(Date) & - & Mmonth.Text + 1 & -1) lastday = Year(Date) & - & Mmonth.Text & - & days Call sumsalary(firstday, lastday) sql = select * from salarystatistics frmresult.S
38、STab1.Caption = 员工工资统计列表 Call frmresult.listtopic Call frmresult.showdata(sql) frmresult.Caption = 统计结果列表 frmresult.ZOrder 0 Unload MeElse MsgBox 这个月的工资未统计, vbOKOnly + vbExclamation, 提示End If9、选择“工资信息管理”“查询工资”菜单,系统显示如图的查询信息窗体,系统默认的是查询出数据库中所有的记录(当管理员进入的时候),当从“员工编号”下拉列表中选择一个员工编号后,单击“查询单人”按钮,就会查询出符合这个员
39、工编号的记录;如果需要返回查询所有信息,单击“查询所有”按钮,系统就会返回所有员工的信息。在“员工工资统计列表”中单击鼠标右键,会弹出下图的菜单,在“员工其他项目列表”中单击鼠标右键也会出现下图的菜单。如果要选择“删除基本工资设置”,出现如下的提示:具体的操作这里就不详细介绍。10、选择“工资信息管理”“导出工资表”菜单,会出现下图的“导出记录”窗体中选择需要导出工资的月份。选择月份和保存位置后,单击“导出”按钮,系统会开始导出数据。单击“确定”按钮打开导出的文件,单击“取消”按钮回到系统。4.4 各项子模块编写要点在登录的这个窗体里,我做的特点是:只要在数据库里有用户信息的,都可以登录,然后显示相关自己的信息,而管理员显示所有的信息。当输入的用户名或密码不正确的时候,会出现如下的对话框: 或者 在主窗体的设计中,我在系统的下拉菜单里包括有添加用户、修改密码和退出系统。在这个模块里普通用户只有修改自己的密码的权利。在添加用户的窗体里:添加3个标签、3个文本框和2个命令按钮,然后设置它们相关的属性。在修改密码的窗体里:添加了3个标签,用来显示信息;3个文本框用来输入用户名称和用户密码;2个按钮用来确定和取消操作,然后设置它们的属性。在工资信息设置的下拉菜单里包括有基本工资信息设置、其他项目信息设置和计算公式设置。在这个模块里,普通用户没有任何权利进行
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。