课程设计课程名称《VFP程序设计》课程设计题目工资管理系统专业计算机班级学号姓名成绩指导教师2008 年12 月22 日至2008年12月26日课程设计任务书设计题目:工资管理系统设计目的本课程的设计的目的是通过实践使同学们经历数据库设计、应用系统开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。
结合具体的开发案例,理解并初步掌握运用VFP的可视化开发工具及事件驱动的程序设计方法进行系统开发的方法;了解系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作过程。
设计任务(在规定的时间完成下列任务)1、系统功能的基本要求:员工每个工种基本工资的设定,加班津贴管理,根据加班时间和类型给予不同的加班津贴;按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;企业工资报表。
能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;2、数据库要求:在数据库中至少应该包含下列数据表:➢员工考勤情况表;员工工种情况表,反映员工的工种、等级,基本工资等信息;员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等;员工基本信息表员工月工资表。
具体要完成的任务是:A.完成整个程序的联调及测试,得出正确结果,并经教师检查及答辩;B.写出规的课程设计说明书;时间安排12月 22日布置课程设计任务;讲述设计目的、容、时间安排与本次课程设计的要求查阅资料,确定设计题目,并报自各班学习委员处集中;12月23日按各设计题,继续查阅资料,书写需求分析报告草稿;12月24日系统总体设计,按各设计题,继续查阅资料,设计调试程序,书写总体设计报告草稿;12月25日系统详细设计,按各设计题,继续查阅资料,设计调试程序,书写详细设计报告草稿;12月26日调试程序、演示设计软件、答辩12月26日提交课程设计报告具体要求1.课程设计报告按国际通用格式书写,具体格式要求请在网络上查阅;2.每位学生应独立完成各自的任务且每天至少在设计室工作半天;指导教师签名:08年12 月22 日教研室主任(或责任教师)签名:08年12 月22日工资管理系统说明书1.需求分析1.1系统任务及特点(1).设计题目:工资管理系统(2).设计目的:工资管理目前是所有单位、企业中的一个最重要也是最为频繁的任务,由于数据庞大,靠手工完成工资的管理工作会大大降低工作效率,为了节约资源,利用电脑进行信息处理成为最佳选择。
开发有使用功能的工资管理系统可以大大提高企业单位的办事效率,也能让员工节省更多的时间来获取工资发放的相关信息。
1.2系统功能本系统应能方便地实现员工基本信息与工资的浏览、注册新员工资料、根据某一关键字查询员工工资、打印工资报表的功能,系统各主要功能的要求如下;(1).浏览所有员工工资情况:包括此员工的一些基本信息,基本工资,加班奖金等。
(2).注册新员工:为企业单位新进的员工输入基本资料和工资情况并保存。
(3).查询功能:按照员工的号或者其它唯一性信息来查询此员工的工资情况。
(4).打印功能:打印员工的资料表、工资单。
1.3数据流图数据流图是交流信息的工具,它能将对现有系统的认识或目标系统的构想描绘出来,它通常作为分析和设计的工具,能帮助我们完成更详细的设计步骤。
数据流图是描绘系统的逻辑模型,以图形的形式表示出来,一下是工资管理系统的数据流图,如图1所示:图1工资管理系统的数据流图2.系统结构设计系统结构设计的基本目的就是用概括的方式确定系统如何完成预定的任务。
具体的说,就是要确定系统由那些功能模块组成,以及这些模块之间的关系。
通常,设计出初步的结构后还要进行多次修改,才能使其合理,接着进行数据库的设计。
2.1系统的主要结构系统的运行是从欢迎界面表单开始,然后出现功能表单,接受用户的操作,操作完毕后用户可以从功能表单退出系统。
系统的功能主要分成个模块:员工基本信息以及工资情况浏览、新员工报道注册新账户、根据号查询员工工资、打印工资表和退出系统。
每个功能模块又可细化为如下的子功能:(1).浏览每个员工的一些基本情况和工资详细情况,包括基本工资和奖金。
(2).查看员工加班情况对应给予相应的奖金。
(3).为新的员工输入基本信息并预设基本工资。
(4).打印输出工资报表功能。
(5).退出功能用来实现退出本管理系统。
工资管理系统的功能结构框架图如图2所示:图2 功能结构框架图2.2数据库设计一个数据库包含许多表,表之间又有关联,设计数据库一般需要一下几个步骤:(1).确定所需的表。
通过研究前阶段所获得的信息,可将工资管理系统使用2个数据表来表示,分别为员工基本情况工资表、加班情况奖金表、注册新员工表。
(2).确定各表的字段。
首先分析数据项,分析数据项的目的是找出真正需要放入数据表的数据项,即确定数据表中的字段,然后取出多余的字段或加入遗漏的字段。
经过分析,得出工资管理系统的各数据表所需的字段。
a.员工基本情况工资表:此表包含了员工的、性别、号、工龄、基本工资。
索引字段为号,其为主索引。
b.加班情况奖金表:此表用来储存员工的加班情况和所对应的奖金数目。
c.注册新员工表:用来储存新员工的基本资料以及预设的基本工资。
(3).确定各个表之间的关联关系。
a.员工基本情况工资表和加班情况奖金表通过存在一对多的关系。
b.员工基本情况工资表和新员工注册表存在一对一的关系。
(4).表结构设计。
员工基本情况工资表如图3所示:图3员工基本情况工资表加班情况奖金表如图4所示:图4加班情况奖金表3.系统详细设计详细设计阶段的目标是确定应该怎样具体地实现系统的各项要求。
设计表单、菜单、报表和程序完成所要求的功能。
3.1系统主表单系统的主表单是进入系统后用户所见到的第一界面,它将给用户留下一个深刻的印象,所以应尽可能设计得简洁大方。
本系统的主表单运行效果如图5所示:图5欢迎界面Label1的caption属性为工资管理系统,command1的caption属性为欢迎进入,其click event代码为:thisform.release /*关闭当前表单*/do form 功能表.scx /*执行功能表表单*/3.2数据录入(新员工注册)在此,数据录入包括了、号、性别、工龄、基本工资预设等。
运行新员工注册表单的效果如图6所示:图6新员工注册1.“添加”为command1,其click event代码为:sele 1append blankthisform.refreshthis.enabled = .F. /*在新注册员工.dbf中追加mand2.enabled = .T. 一条空白记录*/mand3.enabled = .T.2.“保存”为command2, 其click event代码为:if len(alltrim(thisform..value))=0 or len(alltrim(thisform.号.value))=0 or len(alltrim(thisform.工龄.value))=0;or len(alltrim(thisform.性别.value))=0 then=messagebox("、号、工龄和性别不能为空!")elsesele 2loca all for 号=alltrim(thisform.号.value)if not eof()=messagebox("号不能为重复!")sele 1elsesele 1 /*选择工作区1*/usesele 2 /*选择工作区2*/appe form 注册新员工表 /*给注册新员工表导入数据*/sele 1use 注册新员工表set safe off /*设置保护级防止数据被重写*/ zapthis.enabled = .F.mand1.enabled = .T.mand3.enabled= .F.thisform.refreshendifendif3.“取消”为command3,其click event代码为:sele 1 /*选择工作区1*/set safe off /*设置保护级防止数据被重写*/ zapthis.enabled = .F.mand2.enabled = .F.mand1.enabled = .T.thisform.refresh /*关闭当前表单*/4.“返回”为command4,其click event代码为:thisform.release /*关闭当前表单*/do form 功能表.scx /*执行功能表表单*/3.3数据查询在此,数据查询包括按号查询员工工资情况。
图7为查询表单的运行效果:图7查询输入号之后如图8:图8查询结果若查询的员工不存在则如图9:图9查询无结果Text1为输入号的空白处,其代码为:if len(alltrim(thisform.text1.value))=0 /*确保text2总长度不为空*/ mand1.enabled = .F.elsesfzh=thisform.text1.value /*号不为空*/mand1.enabled= .T.endif“查询”为command1,其click event代码为:sele 1 /*选择工作区1*/set order to 号loca all for 号=alltrim(sfzh) /*查询号相对应的数据*/if not eof()thisform.grid1.recordsource="人员资料"set filter to 号=sfzhthisform.grid1.refreshelse=messagebox("没有此员工的工资记录!")endif“退出”为command2,其click event代码为:thisform.release /*关闭当前表单*/do form 功能表.scx /*执行功能表表单*/3.4生成应用程序系统为一个项目创建应用程序的最后一步就是连编它。
此过程的最终结果是将所有在项目中引用的文件合成为一个应用程序文件。
可以将应用程序文件和数据文件一起发布给用户,用户可以运行该应用程序。
如果用户有一个完整的Visual FoxPro副本,则可以运行一个.app文件。
为了简单起见,此系统生成了一个.app文件,如图10所示:图10连编3.5参考资料:1. Visual FoxPro 程序设计及其应用系统开发作纬等中国水利水电4.设计心得体会工资管理系统的开发和应用,可以提高工厂的管理水平。
工厂办公效率可以有很大的提高,为工厂的信息管理提供了良好的工具,化简了繁琐的工作模式,从而使得工厂的管理更加合理化和科学化。