工资管理毕业设计论文.doc

上传人:仙人指路1688 文档编号:3769774 上传时间:2023-03-21 格式:DOC 页数:55 大小:627KB
返回 下载 相关 举报
工资管理毕业设计论文.doc_第1页
第1页 / 共55页
工资管理毕业设计论文.doc_第2页
第2页 / 共55页
工资管理毕业设计论文.doc_第3页
第3页 / 共55页
工资管理毕业设计论文.doc_第4页
第4页 / 共55页
工资管理毕业设计论文.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《工资管理毕业设计论文.doc》由会员分享,可在线阅读,更多相关《工资管理毕业设计论文.doc(55页珍藏版)》请在三一办公上搜索。

1、摘 要随着人类文明的不断进步,人们越来越重视工作的高效性和准确性,也越来越渴望摆脱某些重复性的繁重劳动。而工资方面的管理又涉及到大量的计算、填写等简单重复性动作,所以有必要实现工资管理方面的改革,将人们解放出来做一些更有意义的工作。现今社会上各种规模的企事业单位和私营企业日益增多,在所有这些团体中,人数少的不下几百,多者成千上万,而工资管理方面的工作也就成为了其中的一个重要环节。找一种合适的方法来管理工资,既能为大多数的单位带来最大方便,又能保证工资发放的快速、准确,且能为企业节约成本,带来一定的经济效益。传统的工资管理方法主要是依靠管理员用手工来记录、计算,这种方法既不方便,又容易出问题,显

2、然已很不适用。现代社会计算机技术日新月异,运用计算机来进行数据处理、信息管理已成为计算机三大主要应用之一,鉴于以上社会现实状况,结合所学专业,我决定运用所学到的计算机专业知识及信息管理专业知识,采用当今流行的Microsoft.VFP6.0可视化程序设计语言在此次毕业设计任务中编制一个用于“工资管理”方面的软件,以帮助社会上各式各样,尤其是较小规模的企事业单位处理工资管理方面的事务。本软件主要适用于较小规模企事业单位使用。在软件的具体编制实现过程中,我要特别感谢赵菊明老师!今天我能够取得这样一个小小的成果与她的热情、全面的帮助是分不开的。 关键词:数据库;SQL语言;vfp6;工资管理;窗体目

3、录1 Visual FoxPro 6.0概述1.1 Visual Foxpro 6.0 系统简介1.2 Visual Foxpro6.0特点1.2.1 友好的用户界面1.2.2 强大的面向对象编辑技术的功能1.2.3 快速创建应用程序1.2.4 数据库操作简便1.2.5 可与其他应用程序交互操作1.2.6 独特的开发客户/服务器解决方案1.2.7 可以升级早期版本1.2.8 有很好的帮助系统1.3 Visual Foxpro6.0对系统软硬件环境要求1.3.1 硬件环境1.3.2 软件环境1.4 Visual Foxpro6.0技术指标1.4.1 表和索引文件1.4.2 内存变量和数组1.4.

4、3 程序和过程文件1.4.4 报表1.4.5 其他1.5 Visual FoxPro的帮助系统2 应用程序总体设计2.1 系统需求分析2.1.1 用户要求:2.1.2 系统性能要求:2.2 设计目标2.3 数据库设计2.3.1 数据需求分析2.3.2 各数据表的结构2.4 系统模块划分及各模块包含的表单2.4.1 数据录入模块2.4.2 工资计算模块2.4.3 工资查询模块2.4.4 工资打印模块2.4.5 系统设置模块2.4.6 退出系统模块2.5 系统数据流程图2.5.1 系统总体结构模块划分图2.5.2 系统总体运行流程图2.5.3 重要模块运行流程图2.6 系统总开发环境设置3 模块的

5、实现3.1 各功能表单的编制3.1.1 启动画面及系统登录3.1.2 人员录入3.1.3 考勤录入3.1.4 扣款录入3.1.5 按月计算所有职工工资3.1.6 按月按部门计算职工工资3.1.7 按月按职工姓名计算工资3.1.8 按部门查询职工工资3.1.9 按职工姓名查询工资3.1.10 按部门打印职工工资3.1.11 按姓名打印职工工资条3.1.12 管理员设置3.1.13 修改密码3.2 公用变量的定义3.3 生成应用程序4 结束语1 Visual FoxPro 6.0概述1.1 Visual Foxpro 6.0 系统简介Visual Foxpro6.0是为数据库结构和应用程序开发而设

6、计的、功能强大的、面向对象的编程环境。无论是组织信息、运行查询、创建集成的关系型数据库系统,还是为最终用户编写功能全面的数据管理应用程序,Visual Foxpro都可提供管理数据所需的所有工具。Visual Foxpro6.0于1998年9月由微软公司发布,是一个基于图形界面技术的数据库管理系统软件,是一个性能完善的数据库编程语言;是xBASE类数据库历史上最强大的数据库管理系统,具有Windows界面、采用面向对象的开发方式、客户/服务器的数据连接以及OLE的应用程序访问。它还提供了许多可视化开发工具,如向导、生成器、设计器等,使用户能简单而迅速地完成数据库操作或应用程序的开发。1.2 V

7、isual Foxpro6.0特点Visual Foxpro6.0是微软发行的Microsoft Visual Studio 6.0套装系统软件之一。该系统在办公室管理中应用极为广泛,其理由之一是Visual Foxpro6.0从xBASE发展而来,而xBASE已有广泛的用户群,但更重要的理由是Visual Foxpro6.0有很多的新功能及特性。1.2.1 友好的用户界面Visual Foxpro6.0系统提供了一套由菜单驱动,辅助向导、对话框、设计器、表达式生成器等简洁、功能全面的用户界面。使用户可以在友好界面的支持下,用命令或菜单方式快捷地实现对系统的各种操作,从而完成对数据管理的任务。

8、1.2.2 强大的面向对象编辑技术的功能Visual Foxpro6.0不仅有完善的系统命令、丰富的标准函数,支持传统的结构化过程编程技术,而且还支持面向对象的可视化编程技术。系统提供了结构化查询语言-SQL语言,可以非常有效地访问索引文件的数据,迅速而精确地从庞大的、有数百万条记录的表格检索数据。系统支持事件处理、优化系统和Rushmore技术更成熟,速度更快。1.2.3 快速创建应用程序Visual Foxpro6.0系统可以用多种方式快速创建应用程序,如向导、项目管理器、生成器、各种设计器等灵活的工具,这些工具大大提高了开发应用程序的效率。1.2.4 数据库操作简便Visual Foxp

9、ro6.0系统中数据库创建与编辑都是在可视化界面上进行的,对用户来说是全透明的。如增删表、建立索引、查询、视图、建立表间的关系与连接等都是全透明的。1.2.5 可与其他应用程序交互操作Visual Foxpro6.0通过数据的导入/导出功能,可以方便地与微软其他应用系统共享数据。1.2.6 独特的开发客户/服务器解决方案Visual Foxpro6.0系统通过ODBC可以方便地直接访问、存储、检索和处理服务器平台上的信息,提供了客户/服务器解决方案。1.2.7 可以升级早期版本Visual Foxpro6.0系统对FoxPro生成的应用程序向下兼容。1.2.8 有很好的帮助系统Visual F

10、oxpro6.0提供了强大的帮助功能,在Microsoft Visual Studio 6.0套装系统软件中有两张MSDN(Microsoft Developer Network)Library光盘提供了VB、VF、VC+、VJ+等的帮助系统,只要用户将其安装,就可以使用帮助。1.3 Visual Foxpro6.0对系统软硬件环境要求1.3.1 硬件环境安装Visual FoxPro 必须具备以下的硬件系统:一台486、586(或更高档)处理器的PC兼容机,计算机中有8MB以上的内存并带有鼠标。推荐使用VGA或具有更高分辨率的监视器。Visual FoxPro 的便携式安装需要15MB硬盘空

11、间,典型安装需要100MB硬盘空间,最大安装需要240MB的硬盘空间。1.3.2 软件环境中文版Visual FoxPro6.0可以在Windows9x/2000和Windows NT 4.0版本以上(推荐使用Service Pack3)操作系统环境中使用。 1.4 Visual Foxpro6.0技术指标Visual Foxpro6.0系统的技术指标如下:1.4.1 表和索引文件单个表文件最大记录数 1亿个表文件的最大长度 2GB每个记录最多字符个数 65500个每个记录最多字段数 255个数值字段最多字符个数 20个字符字段最多字符个数 254个日期字段字符个数 8个逻辑字段字符个数 1个

12、每表可打开的最大索引文件数 不限工作区可找开的最大索引文件数 不限关系最大数 不限关系表达式值最大长度 不限1.4.2 内存变量和数组内存变量默认数 1024个最大内存变量数 65000个最大数组数 65000个每个数组元素最大数 65000个1.4.3 程序和过程文件源程序文件中最大行数 不限编译程序模块的最大长度 65KB每一文件最大过程数 不限DO命令最多嵌套层数 126READ嵌套最大数 5嵌套结构化命令最大层数 384嵌套参数最大数 271.4.4 报表报表表头最多字符数 254个报表定义中对象最大数 不限报表定义最大长度 20层最大分组层数 1281.4.5 其他打开窗口的最大数

13、不限打开Browse窗口最大数 255个字符串的最大字符数 2GB每个命令行的最大字符数 8192个报表中每个标签控件的最大字符数 252个每个宏替换行的最大字符数 8192个可打开文件最大数 受操作系统的限制可以由SQL SELECT语句选择的最大字段数 255个1.5 Visual FoxPro的帮助系统Visual FoxPro可以通过“帮助”|“Microsoft Visual FoxPro 的帮助主题”|“目录”|“搜索”|“索引”命令等获得帮助。当然前提是先要安装Microsoft Studio6.0包中的MSDN Library两张光盘,如图1.1所示就是单击“帮助”|“Micr

14、osoft Visual FoxPro帮助主题”命令后弹出的MSDN的界面。 图1.1从图中可见,用户可以用不同的方式来使用帮助功能,如“目录”方式、“索引”方式、“搜索”方式与“书签”方式。MSDN就是一部很好的工具书,用户可以通过它学习一些书本中学不到的知识。2 应用程序总体设计2.1 系统需求分析数据库应用系统的最终目的就是为用户提供一个满足长期需要的软件产品。因此,成功地开发一个数据库应用系统的关键之一是要详细地了解用户的需求,然后再围绕用户的需求进行开发。2.1.1 用户要求: 对职工基本及其工资情况进行系统管理; 能够随时添加、删除、修改职工基本信息; 能够随时通过各种方式查询职工

15、工资发放情况; 对职工借款和扣款进行相应处理; 能按各种要求打印出职工工资发放表。2.1.2 系统性能要求: 准确可靠、功能齐全; 操作直观、方便、用户界面友好; 占用系统资源容量少,运行稳定; 便于扩充及维护。2.2 设计目标本次设计的主要目标是通过利用当今最流行可视化编程工具Visual Foxpro6.0设计一应用程序。利用VF的数据库编程,编写程序来实现用户对工资数据的录入、修改、检索等操作。让用户方便地掌握职工的基本信息与职工出勤及扣款情况,利用编程来实现信息的输入、编辑(删、插、改)、检索及数据备份等功能,继而完成对工资信息数据库的必要操作。2.3 数据库设计数据库设计在数据库应用

16、系统中是一项非常重要的工作,一个数据库性能的好坏将直接影响数据库应用系统的性能。2.3.1 数据需求分析在工资管理系统中,首先应必须对每个职工的基本信息如姓名、性别、所在部门、职称、职务、参加工作日期、上岗日期等进行记录并存入数据库,以方便进行查询。其次同理应当对职工的相关资料进行记录并存入数据库,以利于管理员了解职工的情况。另外,对职工出勤情况、职工借款及扣款明细等也必须进行记录。最后,为识别用户身份(管理员)应专门设计一个口令表,以便赋于用户使用权。2.3.2 各数据表的结构根据以上的数据需求分析,建立以下几个数据表分别为:ryb.dbf(职工信息表)、bmb.dbf(部门表)、zcb.d

17、bf(职称表)、gxb.dbf(岗序表)、zwb.dbf(职务表)、kkb.dbf(扣款表)、cqb.dbf(出勤表)、mmb.dbf(用户登录表)各表的具体结构如下: 所用数据表的结构1.ryb.dbf 唯一索引:bh,普通索引:bmdm字段名字段类型宽度小数点位数显示标题bh字符型4职工编码xm字符型6姓名xb字符型2性别bmdm字符型2部门编码zwdm字符型2职务编码zcdm字符型2职称编码cjgzrq日期型8参加工作日期sgrq日期型8上岗日期gwgz数值型72岗位工资表2.12. bmb.dbf 唯一索引:bmdm字段名字段类型宽度小数点位数显示标题bmdm字符型2部门编码bmmc字

18、符型14单位表2.23. zcb.dbf 字段名字段类型宽度小数点位数显示标题zcdm字符型2职称编码zcmc字符型10职称名称表2.34. gxb.dbf 字段名字段类型宽度小数点位数显示标题gwdm字符型2岗序编码gxmc字符型10岗序名称gxgz数值型72岗序工资表2.45. zwb.dbf 字段名字段类型宽度小数点位数显示标题zwdm字符型2职务编码zwmc字符型10职务名称gxmc字符型10岗序名称表2.56.kkb.dbf 唯一索引:bh字段名字段类型宽度小数点位数显示标题bh字符型4职工编码jkse数值型82借款sdfy数值型62水电费wsf数值型62卫生费ccf数值型62存车费

19、kknf字符型4年份kkyf字符型2月份表2.67.cqb.dbf 唯一索引:bh字段名字段类型宽度小数点位数显示标题bh字符型4职工编码cqts数值型41出勤天数bjts数值型41病假天数sjts数值型41事假天数hsjts数值型41婚丧假天数cqnf字符型4年份cqyf字符型2月份表2.78. mmb.dbf字段名字段类型宽度小数点位数显示标题yhm字符型6用户姓名mm字符型6用户密码表2.8 相关表间的关联根据系统数据数据处理的需要,相关表之间进行了关联,关联情况如图2.1所示。图中用矩形框表示表,需要关联的两个表用线段连接,连线上方标出了关联关键字ryb.dbfcqb.dbfkkb.d

20、bfbmb.dbfbhbhbmdm。 表间关联的设计(图2.1) 需用到的公式本系统用到以下几个计算式:式(2.1) 职工工资=职工日工资职工月出勤天数+职工日工资职工月病假天数80%;式(2.2) 职工岗位工资=职工工资40%;式(2.3) 职工效益工资=职工工资40%;式(2.4) 职工职能工资=职工工资20%;式(2.5) 应付工资=职工岗位工资+职工效益工资+职工职能工资;式(2.6) 扣款=职工借款-水电费-卫生费-存车费;式(2.7) 实付工资=应付工资-扣款。2.4 系统模块划分及各模块包含的表单登录模块中主要设置系统管理员级别的用户。系统管理员登录成功后可以进行所有功能模块的操

21、作。其用户登录后的模块功能如下:2.4.1 数据录入模块 此模块实现对职工的基本信息,职工的出勤情况及职工的借款和扣款情况进行登记。分别用三个表单实现对职工信息、职工出勤、职工借(扣)款的录入等功能。操作对象分别为ryb.dbf(职工信息表)、cqb.dbf(出勤表)和kkb.dbf(扣款表)。包含的表单分别为:rydj.scx、kqdj.scx、kkdj.scx。2.4.2 工资计算模块 此模块实现对所有职工的工资进行按月计算,对某部门的全部职工按月计算工资,按月计算单个职工工资。分别用三个表单实现上述功能。包含的表单分别为:jsqbgz.scx、jsdwgz.scx、jsdrgz.scx。

22、2.4.3 工资查询模块 此模块实现按部门查询职工工资和按姓名查询职工工资。分别用两个表单实现上述功能。包含的表单分别为:abmcz.scx、axmcz.scx。2.4.4 工资打印模块 此模块实现按部门打印职工工资发放表和按姓名打印职工工资条。分别用两个表单调用相关报表实现上述功能。包含的表单和报表分别为:abmdy.scx、dydwgz.frx和axmdy.scx、dygrgz.frx。2.4.5 系统设置模块 此模块实现系统管理员设置和密码修改两项功能。分别用两个表单实现,操作对象为mmb.dbf(用户登录表)。包含的表单分别为:glysz.scx、xgmm.scx。2.4.6 退出系统

23、模块 此模块实现系统的退出功能,用clear events命令来实现。2.5 系统数据流程图2.5.1 系统总体结构模块划分图(见图2.2)2.5.2 系统总体运行流程图(见图2.3)2.5.3 重要模块运行流程图 人员录入模块流程图(见图2.4) 按职工姓名计算工资模块流程图(见图2.5)登录系统数据录入工资计算工资查询工资打印退出系统系统设置人员录入按月计算所有职工工资按月按单位计算职工工资按月按职工姓名计算工资按部门查询按职工姓名查询各单位工资发放表个人工资条管理员设置修改密码考勤录入扣款录入总体结构图(图2.2)执行系统各功能模块启动工资管理系统显示初始化界面显示系统登录窗口生成系统菜

24、单退出系统Y密码为真?输入用户名和密码N图2.3 选择“按月按职工姓名计算工资”菜单项(显示图3.10界面)依次输入各项计算值单击“开始计算”按钮(执行zggrgz.scx)依次填入各项数据(显示如图3.11界面)单击“返回”按钮返回初始状态(图3.3 所示界面)选择“退出”按钮(返回系统主菜单)选择“人员录入”菜单项(显示图3.3界面)依次输入各项值自动计算工龄、岗龄、岗位工资选择“增页”按钮(为ryb.dbf增加记录)确定增加记录?将新记录加入ryb.dbf返回初始状态(图3.3 所示界面)选择“退出”按钮(返回系统主菜单)YN 图2.4图2.4所示为“人员录入”模块中的增加功能运行流程,

25、其它功能流程与此相同不再另画。2.6 系统总开发环境设置 在F:建立“毕业设计”文件夹,在VFP6.0中设置默认目录为F:毕业设计,并设置表单最大设计区为640480。 在毕业设计文件夹下新建立PIC文件夹,以便用来保存在表单设计中用到的图片。 以2.3.2中各数据表结构为准建立数据表。 图2.53 模块的实现3.1 各功能表单的编制3.1.1 启动画面及系统登录 cshjm.scx(系统启动界面表单) 1)、表单界面运行程序后,将显示如下初始化界面:(见图3.1)2)、主要控件及事件代码:label2(单击鼠标左键进入系统)的click事件:thisform.releasedo form x

26、tdl执行label2(单击鼠标左键进入系统)按钮的click事件后,将调用xtdl.scx表单显示如下结果: (见图3.2) xtdl.scx(系统登录表单)1)、主要控件及事件代码:command1(确定)按钮的click事件:dlyhm=thisform.text1.valuesele 1use mmbgo toploca for alltrim(yhm)=alltrim(dlyhm)if mmb.mm=alltrim(thisform.text2.value) thisform.visible=.f. do gzglcd.mpr read event quitelse messageb

27、ox(密码错,禁止进入系统!) mand2.clickendifcommand2(退出)按钮的click事件:thisform.release如果密码输入正确,则调用gzglcd.mpr菜单程序进入系统执行下列功能;否则就退出系统。图3.1图3.23.1.2 人员录入rydj.scx(职工基本信息登记表单) 表单界面及包含的控件:(见图3.3)控件:Form1、Label1、Label2、Label3、Label4、Label5、Label6、Label7、Label8、Label9、Label10、Label11、Lblxm、Lblxb、Lblbm、Lblzw、Lblzc、Lblgx、Lbl

28、cjgzrq、Lblsgrq、Lblgwgz、Text1、Text2、Text3、Text4、Text5、Text6、Text7、Text8、Text9、Text10、Combo1、Combo2、Combo3、Combo4、line1、line2、commandgroup1、check1、check2 几个控件的重要属性:1)、form1属性 windowstate:0-普通2)、Combo1属性 RowSource:bmb.bmmc, RowSourcetype:6-字段Combo2属性 RowSource:zcb.zcmc, RowSourcetype:6-字段Combo3属性 RowSo

29、urce:zwb.zwmc, RowSourcetype:6-字段Combo4属性 RowSource:gxb.gxmc, RowSourcetype:6-字段图3.3 主要的事件代码:Text6的lostfocus事件:&为text1赋值,当参加工作日期输入完毕,则自动计算工龄并填入text1文本框。thisform.text1.value=ltrim(str(year(date()-val(thisform.text4.value)+1)Text9的lostfocus事件:&为text2赋值,当上岗日期输入完毕,则自动计算岗龄并填入text2文本框。thisform.text2.value

30、=ltrim(str(year(date()-val(thisform.text7.value)+1)combo4的lostfocus事件:&为text10赋值,当岗序输入完毕,则自动计算岗位工资并填入text10文本框。 sele gxb go top gl=val(thisform.text1.value) do case case gl=1 and gl=5 and gl=10 glgz=3*gl endc zggx=bo4.value loca for gxmc=zggx zggwgz=glgz+gxb.gxgz thisform.text10.value=ltrim(str(zggw

31、gz)commandgroup1的click事件:sele rybdo case case this.value=1 &下页 thisform.check1.value=0 thisform.check2.value=0 if recn()=1 and gl=5 and gl=10 zggxgz=ryb.gwgz-3*gl endc loca for gxgz=zggxgz bo4.value=gxb.gxmc&填写岗序名称 if ryb.xb=男 thisform.check1.value=1 else thisform.check2.value=1 endif &计算性别 endi cas

32、e this.value=2 &上页 thisform.check1.value=0 thisform.check2.value=0 if recn()1 skip -1 set strictdate to 0 &使用通常的日期格式 thisform.text1.value=ltrim(str(year(date()-year(ryb.cjgzrq)+1) &计算工龄 thisform.text2.value=ltrim(str(year(date()-year(ryb.sgrq)+1) &计算岗龄 thisform.text3.value=ryb.xm &填写姓名 thisform.text

33、4.value=ltrim(str(year(ryb.cjgzrq)&填写参加工作年份 thisform.text5.value=ltrim(str(month(ryb.cjgzrq)&填写参加工作月份 thisform.text6.value=ltrim(str(day(ryb.cjgzrq)&填写参加工作日 thisform.text7.value=ltrim(str(year(ryb.sgrq)&填写上岗年份 thisform.text8.value=ltrim(str(month(ryb.sgrq)&填写上岗月份 thisform.text9.value=ltrim(str(day(r

34、yb.sgrq)&填写上岗日 thisform.text10.value=ltrim(str(ryb.gwgz)&填写岗位工资 sele bmb&打开部门表 go top szbmbm=ryb.bmdm loca for bmdm=szbmbm bo1.value=bmb.bmmc&填写所在部门名称 sele zwb&打开职务表 go top zgzwbm=ryb.zwdm loca for zwdm=zgzwbm bo3.value=zwb.zwmc&填写所担任职务名称 sele zcb&打开职称表 go top zgzcbm=ryb.zcdm loca for zcdm=zgzcbm bo2.value=zcb.zcmc&填写所取得职称名称 sele gxb&打开岗序表 go top gl=val(thisform.text1.value) do case case gl=1 and gl=5 and gl10 zggxgz=ryb.gwgz-

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号