1、课 程 设 计课程名称VFP程序设计课程设计题 目 工资管理系统专 业 计算机 班 级 学 号 姓 名 成 绩 指引教师 年12 月22 日至12月26日课程设计任务书设计题目:工资管理系统设计目本课程设计目是通过实践使同窗们经历数据库设计、应用系统开发全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学知识。结合详细开发案例,理解并初步掌握运用VFP可视化开发工具及事件驱动程序设计办法进行系统开发办法;理解系统分析、系统设计、系统实行重要环节和环节以及软件文档制作过程。设计任务 (在规定期间内完毕下列任务)1、系统功能基本规定:员工每个工种基本工资设定,加班津贴管理,依照加班时间
2、和类型予以不同加班津贴;按照不同工种基本工资状况、员工考勤状况产生员工每月月工资;员工年终奖金生成,员工年终奖金计算公式(员工本年度工资总和津贴总和)/12;公司工资报表。可以查询单个员工工资状况、每个部门工资状况、按月工资记录,并可以打印;2、数据库规定:在数据库中至少应当包括下列数据表: 员工考勤状况表;员工工种状况表,反映员工工种、级别,基本工资等信息;员工津贴信息表,反映员工加班时间,加班类别、加班天数、津贴状况等;员工基本信息表员工月工资表。 详细要完毕任务是: A.完毕整个程序联调及测试,得出对的成果,并经教师检查及答辩; B. 写出规范课程设计阐明书;时间安排 12月 22日 布
3、置课程设计任务;讲述设计目、内容、时间安排与本次课程设计规定 查阅资料,拟定设计题目,并报自各班学习委员处集中;12月23日 按各设计题,继续查阅资料,书写需求分析报告草稿;12月24日 系统总体设计,按各设计题,继续查阅资料,设计调试程序,书写总体设计报告草稿;12月25日 系统详细设计,按各设计题,继续查阅资料,设计调试程序,书写详细设计报告草稿;12月26日 调试程序、演示设计软件、答辩12月26日 提交课程设计报告详细规定1. 课程设计报告按国际通用格式书写,详细格式规定请在网络上查阅;2. 每位学生应独立完毕各自任务且每天至少在设计室工作半天;指 导 教 师 签 名: 12 月 22
4、 日教研室主任(或责任教师)签名: 12 月 22日工资管理系统阐明书1.需求分析1.1系统任务及特点(1).设计题目:工资管理系统(2).设计目:工资管理当前是所有单位、公司中一种最重要也是最为频繁任务,由于数据庞大,靠手工完毕工资管理工作会大大减少工作效率,为了节约资源,运用电脑进行信息解决成为最佳选取。开发有使用功能工资管理系统可以大大提高公司单位办事效率,也能让员工节约更多时间来获取工资发放有关信息。1.2系统功能本系统应能以便地实现员工基本信息与工资浏览、注册新员工资料、依照某一核心字查询员工工资、打印工资报表功能,系统各重要功能规定如下 ;(1).浏览所有员工工资状况:涉及此员工某
5、些基本信息,基本工资,加班奖金等。(2).注册新员工:为公司单位新进员工输入基本资料和工资状况并保存。(3).查询功能:按照员工身份证号或者其他唯一性信息来查询此员工工资状况。(4).打印功能:打印员工资料表、工资单。 1.3数据流图 数据流图是交流信息工具,它能将对既有系统结识或目的系统构想描绘出来,它普通作为分析和设计工具,能协助咱们完毕更详细设计环节。数据流图是描绘系统逻辑模型,以图形形式表达出来,一下是工资管理系统数据流图,如图1所示:图1 工资管理系统数据流图2.系统构造设计系统构造设计基本目就是用概括方式拟定系统如何完毕预定任务。详细说,就是要拟定系统由那些功能模块构成,以及这些模
6、块之间关系。普通,设计出初步构造后还要进行多次修改,才干使其合理,接着进行数据库设计。2.1系统重要构造 系统运营是从欢迎界面表单开始,然后浮现功能表单,接受顾客操作,操作完毕后顾客可以从功能表单退出系统。 系统功能重要提成个模块:员工基本信息以及工资状况浏览、新员工报道注册新账户、依照身份证号查询员工工资、打印工资表和退出系统。 每个功能模块又可细化为如下子功能:(1).浏览每个员工某些基本状况和工资详细状况,涉及基本工资和奖金。(2).查看员工加班状况相应予以相应奖金。(3).为新员工输入基本信息并预设基本工资。(4).打印输出工资报表功能。(5).退出功能用来实现退出本管理系统。工资管理
7、系统功能构造框架图如图2所示: 图2 功能构造框架图2.2数据库设计一种数据库包括许多表,表之间又关于联,设计数据库普通需要一下几种环节:(1).拟定所需表。通过研究前阶段所获得信息,可将工资管理系统使用2个数据表来表达,分别为员工基本状况工资表、加班状况奖金表、注册新员工表。(2).拟定各表字段。 一方面分析数据项,分析数据项目是找出真正需要放入数据表数据项,即拟定数据表中字段,然后取出多余字段或加入漏掉字段。通过度析,得出工资管理系统各数据表所需字段。a. 员工基本状况工资表:此表包括了员工姓名、性别、身份证号、工龄、基本工资。索引字段为身份证号,其为主索引。b. 加班状况奖金表:此表用来
8、储存员工加班状况和所相应奖金数目。c. 注册新员工表:用来储存新员工基本资料以及预设基本工资。(3).拟定各个表之间关联关系。a.员工基本状况工资表和加班状况奖金表通过姓名存在一对多关系。b.员工基本状况工资表和新员工注册表存在一对一关系。(4).表构造设计。员工基本状况工资表如图3所示:图3 员工基本状况工资表加班状况奖金表如图4所示: 图4 加班状况奖金表 3.系统详细设计详细设计阶段目的是拟定应当如何详细地实现系统各项规定。设计表单、菜单、报表和程序完毕所规定功能。 3.1系统主表单系统主表单是进入系统后顾客所见到第一界面,它将给顾客留下一种深刻印象,因此应尽量设计得简洁大方。本系统主表
9、单运营效果如图5所示:图5 欢迎界面Label1caption属性为工资管理系统,command1caption属性为欢迎进入,其click event代码为:thisform.release /*关闭当前表单*/do form 功能表.scx /*执行功能表表单*/3.2数据录入(新员工注册) 在此,数据录入涉及了姓名、身份证号、性别、工龄、基本工资预设等。运营新员工注册表单效果如图6所示:图6 新员工注册1.“添加”为command1,其click event代码为:sele 1append blankthisform.refreshthis.enabled = .F. /*在新注册员工.
10、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(姓名、身份证号、工龄和性别不能为空!) else sele 2 loca all for 身份证号=all
11、trim(thisform.身份证号.value) if not eof() =messagebox(身份证号不能为重复!) sele 1 else sele 1 /*选取工作区1*/ use sele 2 /*选取工作区2*/ appe form 注册新员工表 /*给注册新员工表导入数据*/ sele 1 use 注册新员工表 set safe off /*设立保护级防止数据被重写*/ zap this.enabled = .F. mand1.enabled = .T. mand3.enabled= .F. thisform.refresh endif endif3.“取消”为command
12、3,其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 查询
13、成果若查询员工不存在则如图9:图9 查询无成果Text1为输入身份证号空白处,其代码为:if len(alltrim(thisform.text1.value)=0 /*保证text2总长度不为空*/ mand1.enabled = .F.else sfzh=thisform.text1.value /*身份证号不为空*/ mand1.enabled= .T.endif“查询”为command1,其click event代码为:sele 1 /*选取工作区1*/set order to 身份证号loca all for 身份证号=alltrim(sfzh) /*查询身份证号相相应数据*/if
14、not eof() thisform.grid1.recordsource=人员资料 set filter to 身份证号=sfzh thisform.grid1.refresh else =messagebox(没有此员工工资记录!) endif“退出”为command2,其click event代码为:thisform.release /*关闭当前表单*/do form 功能表.scx /*执行功能表表单*/3.4生成应用程序系统 为一种项目创立应用程序最后一步就是连编它。此过程最后成果是将所有在项目中引用文献合成为一种应用程序文献。可以将应用程序文献和数据文献一起发布给顾客,顾客可以运营
15、该应用程序。如果顾客有一种完整Visual FoxPro副本,则可以运营一种.app文献。为了简朴起见,此系统生成了一种.app文献,如图10所示:图10 连编3.5参照资料:1. Visual FoxPro 程序设计及其应用系统开发 李作纬 等 中华人民共和国水利水电出版社4.设计心得体会工资管理系统开发和应用,可以提高工厂管理水平。工厂办公效率可以有很大提高,为工厂信息管理提供了良好工具,化简了繁琐工作模式,从而使得工厂管理更加合理化和科学化。良好管理信息系统节约了大量人力和物力,也避免了大量重复性工作。高效管理信息系统也为工作人员提高自身计算机水平提供了机会,每个人都应当适应社会高新技术
16、发展,努力追赶科技潮流。在教学事务管理系统设计和开发工作,也存在着几种问题。1.工资管理系统是一种复杂信息系统,功能模块应当更加细化。2.数据体现形式。年和学期表达不是很直观,最初考虑是为了容易实现,当前看来尚有改进。3.在系统设计过程中,一定会遇到大量公共变量,这些公共变量应在各个功能模块一开始就加以声明,以便于此后对公共变量管理。要熟悉VFP系统命令和函数。尽管VFP是可视化编程,要设计出具备完善功能系统,还必要大量应用命令。适时编译文献。在应用VFP系统进行设计时,每修改一次文献,VFP系统便会自动将文献生成一遍。如修改一种表单,便会重新生成同名文献并覆盖原有文献。但是,在修改了菜单时却
17、并非如此。若修改了菜单后直接运营,修改之处并不反映出来。此时,只有在菜单下生成选项,重新生成菜单文献,此后再运营菜单,修改之处才可以反映出来。设计过程及答辩回答问题记载:(至少三个问题)1.为什么要在需求分析过程中画出数据流图?答:数据流图是交流信息工具,在关于人员审查确认系统有关功能时能提高效率,系统设计者在设计数据流图之后也会有更加清晰思路。2.此工资管理系统通过各种表单构成不同模块实现,表单之间是如何连接构建成整体?答:在表单上添加各种命令按钮实现不同功能,为连接下一表单或退出当前表单命令按钮Click Event过程设计不同代码。详细代码见设计过程。3.在此程序查询表单中,以身份证作为查询索引,应当注意什么?答:由于身份证为18位,因此应当注意设立text1InputMask属性为999999。指引教师评语: 签名: 12 月 日