VFP程序设计工资管理系统.docx
《VFP程序设计工资管理系统.docx》由会员分享,可在线阅读,更多相关《VFP程序设计工资管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
VFP程序设计工资管理系统
课程设计
课程名称《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).设计题目:
工资管理系统
(2).设计目的:
工资管理目前是所有单位、企业中的一个最重要也是最为频繁的任务,由于数据庞大,靠手工完成工资的管理工作会大大降低工作效率,为了节约资源,利用电脑进行信息处理成为最佳选择。
开发有使用功能的工资管理系统可以大大提高企业单位的办事效率,也能让员工节省更多的时间来获取工资发放的相关信息。
系统功能
本系统应能方便地实现员工基本信息与工资的浏览、注册新员工资料、根据某一关键字查询员工工资、打印工资报表的功能,系统各主要功能的要求如下;
(1).浏览所有员工工资情况:
包括此员工的一些基本信息,基本工资,加班奖金等。
(2).注册新员工:
为企业单位新进的员工输入基本资料和工资情况并保存。
(3).查询功能:
按照员工的身份证号或者其它唯一性信息来查询此员工的工资情况。
(4).打印功能:
打印员工的资料表、工资单。
数据流图
数据流图是交流信息的工具,它能将对现有系统的认识或目标系统的构想描绘出来,它通常作为分析和设计的工具,能帮助我们完成更详细的设计步骤。
数据流图是描绘系统的逻辑模型,以图形的形式表示出来,一下是工资管理系统的数据流图,如图1所示:
图1工资管理系统的数据流图
2.系统结构设计
系统结构设计的基本目的就是用概括的方式确定系统如何完成预定的任务。
具体的说,就是要确定系统由那些功能模块组成,以及这些模块之间的关系。
通常,设计出初步的结构后还要进行多次修改,才能使其合理,接着进行数据库的设计。
系统的主要结构
系统的运行是从欢迎界面表单开始,然后出现功能表单,接受用户的操作,操作完毕后用户可以从功能表单退出系统。
系统的功能主要分成个模块:
员工基本信息以及工资情况浏览、新员工报道注册新账户、根据身份证号查询员工工资、打印工资表和退出系统。
每个功能模块又可细化为如下的子功能:
(1).浏览每个员工的一些基本情况和工资详细情况,包括基本工资和奖金。
(2).查看员工加班情况对应给予相应的奖金。
(3).为新的员工输入基本信息并预设基本工资。
(4).打印输出工资报表功能。
(5).退出功能用来实现退出本管理系统。
工资管理系统的功能结构框架图如图2所示:
图2功能结构框架图
数据库设计
一个数据库包含许多表,表之间又有关联,设计数据库一般需要一下几个步骤:
(1).确定所需的表。
通过研究前阶段所获得的信息,可将工资管理系统使用2个数据表来表示,分别为员工基本情况工资表、加班情况奖金表、注册新员工表。
(2).确定各表的字段。
首先分析数据项,分析数据项的目的是找出真正需要放入数据表的数据项,即确定数据表中的字段,然后取出多余的字段或加入遗漏的字段。
经过分析,得出工资管理系统的各数据表所需的字段。
a.员工基本情况工资表:
此表包含了员工的姓名、性别、身份证号、工龄、基本工资。
索引字段为身份证号,其为主索引。
b.加班情况奖金表:
此表用来储存员工的加班情况和所对应的奖金数目。
c.注册新员工表:
用来储存新员工的基本资料以及预设的基本工资。
(3).确定各个表之间的关联关系。
a.员工基本情况工资表和加班情况奖金表通过姓名存在一对多的关系。
b.员工基本情况工资表和新员工注册表存在一对一的关系。
(4).表结构设计。
员工基本情况工资表如图3所示:
图3员工基本情况工资表
加班情况奖金表如图4所示:
图4加班情况奖金表
3.系统详细设计
详细设计阶段的目标是确定应该怎样具体地实现系统的各项要求。
设计表单、菜单、报表和程序完成所要求的功能。
系统主表单
系统的主表单是进入系统后用户所见到的第一界面,它将给用户留下一个深刻的印象,所以应尽可能设计得简洁大方。
本系统的主表单运行效果如图5所示:
图5欢迎界面
Label1的caption属性为工资管理系统,command1的caption属性为欢迎进入,其clickevent代码为:
/*关闭当前表单*/
doform功能表.scx/*执行功能表表单*/
数据录入(新员工注册)
在此,数据录入包括了姓名、身份证号、性别、工龄、基本工资预设等。
运行新员工注册表单的效果如图6所示:
图6新员工注册
1.“添加”为command1,其clickevent代码为:
sele1
appendblank
=.F./*在新注册员工.dbf中追加
=.T.一条空白记录*/
=.T.
2.“保存”为command2,其clickevent代码为:
iflen(alltrim(thisform.姓名.value))=0orlen(alltrim(thisform.身份证号.value))=0orlen(alltrim(thisform.工龄.value))=0;
orlen(alltrim(thisform.性别.value))=0then
=messagebox("姓名、身份证号、工龄和性别不能为空!
")
else
sele2
locaallfor身份证号=alltrim(thisform.身份证号.value)
ifnoteof()
=messagebox("身份证号不能为重复!
")
sele1
else
sele1/*选择工作区1*/
use
sele2/*选择工作区2*/
appeform注册新员工表/*给注册新员工表导入数据*/
sele1
use注册新员工表
setsafeoff/*设置保护级防止数据被重写*/
zap
=.F.
=.T.
.F.
endif
endif
3.“取消”为command3,其clickevent代码为:
sele1/*选择工作区1*/
setsafeoff/*设置保护级防止数据被重写*/
zap
=.F.
=.F.
=.T.
/*关闭当前表单*/
4.“返回”为command4,其clickevent代码为:
/*关闭当前表单*/
doform功能表.scx/*执行功能表表单*/
数据查询
在此,数据查询包括按身份证号查询员工工资情况。
图7为查询表单的运行效果:
图7查询
输入身份证号之后如图8:
图8查询结果
若查询的员工不存在则如图9:
图9查询无结果
Text1为输入身份证号的空白处,其代码为:
iflen(alltrim/*确保text2总长度不为空*/
=.F.
else
sfzh=/*身份证号不为空*/
.T.
endif
“查询”为command1,其clickevent代码为:
sele1/*选择工作区1*/
setorderto身份证号
locaallfor身份证号=alltrim(sfzh)/*查询身份证号相对应的数据*/
ifnoteof()
"人员资料"
setfilterto身份证号=sfzh
else
=messagebox("没有此员工的工资记录!
")
endif
“退出”为command2,其clickevent代码为:
/*关闭当前表单*/
doform功能表.scx/*执行功能表表单*/
生成应用程序系统
为一个项目创建应用程序的最后一步就是连编它。
此过程的最终结果是将所有在项目中引用的文件合成为一个应用程序文件。
可以将应用程序文件和数据文件一起发布给用户,用户可以运行该应用程序。
如果用户有一个完整的VisualFoxPro副本,则可以运行一个.app文件。
为了简单起见,此系统生成了一个.app文件,如图10所示:
图10连编
参考资料:
1.VisualFoxPro程序设计及其应用系统开发李作纬等中国水利水电出版社
4.设计心得体会
工资管理系统的开发和应用,可以提高工厂的管理水平。
工厂办公效率可以有很大的提高,为工厂的信息管理提供了良好的工具,化简了繁琐的工作模式,从而使得工厂的管理更加合理化和科学化。
良好的管理信息系统节省了大量的人力和物力,也避免了大量重复性的工作。
高效的管理信息系统也为工作人员提高自身的计算机水平提供了机会,每个人都应该适应社会高新技术的发展,努力追赶科技潮流。
在教学事务管理系统的设计和开发工作,也存在着几个问题。
1.工资管理系统是一个复杂的信息系统,功能模块应该更加细化。
2.数据的表现形式。
学年和学期的表示不是很直观,最初考虑是为了容易实现,现在看来还有改进。
3.在系统设计过程中,一定会遇到大量的公共变量,这些公共变量应在各个功能模块的一开始就加以声明,以便于今后对公共变量的管理。
要熟悉VFP系统的命令和函数。
尽管VFP是可视化编程,要设计出具有完善功能的系统,还必须大量的应用命令。
适时编译文件。
在应用VFP系统进行设计时,每修改一次文件,VFP系统便会自动将文件生成一遍。
如修改一个表单,便会重新生成同名的文件并覆盖原有的文件。
但是,在修改了菜单时却并非如此。
若修改了菜单后直接运行,修改之处并不反应出来。
此时,只有在菜单下的生成选项,重新生成菜单文件,此后再运行菜单,修改之处才能够反应出来。
设计过程及答辩回答问题记载:
(至少三个问题)
1.为什么要在需求分析过程中画出数据流图
答:
数据流图是交流信息的工具,在有关人员审查确认系统相关功能时能提高效率,系统设计者在设计数据流图之后也会有更加清晰的思路。
2.此工资管理系统通过多个表单构成不同的模块实现,表单之间是如何连接构建成整体的
答:
在表单上添加多个命令按钮实现不同的功能,为连接下一表单或退出当前表单的命令按钮的ClickEvent过程设计不同的代码。
具体代码见设计过程。
3.在此程序的查询表单中,以身份证作为查询的索引,应该注意什么
答:
因为身份证为18位,所以应该注意设置text1的InputMask属性为99。
指导教师评语:
签名:
08年12月日