vfp课程设计报告.docx
《vfp课程设计报告.docx》由会员分享,可在线阅读,更多相关《vfp课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
![vfp课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-12/16/d62cc2eb-e227-4a26-9d7f-e73823f9eada/d62cc2eb-e227-4a26-9d7f-e73823f9eada1.gif)
vfp课程设计报告
课程设计报告
卓越公司培训管理系统
卓越公司培训管理系统
一、系统总体规划
本系统是专门为卓越公司设计的一套培训管理系统,适用于公司内部的人力资源管理中的培训环节的资料查询与保存整理工作。
本系统采用面向对象的设计思想,以菜单和表单的形式进行各表单的调用,主要完成以下功能:
1、针对于公司员工,可以对所有培训课程的教课内容、时间、地点、教师等进行查询,全面掌握需要参加的课程信息。
2、针对于公司负责培训管理的管理人员,可以对所有的课程信息进行修改更新,及时录入新增添的信息,并用数据库对所有培训信息进行整理保存,便于留档。
3、系统提供打印预览及打印功能,便于资料的输出,方便用户的使用。
二、需求分析
培训环节是人力资源管理工作中的重要组成部分,公司中上至经理部长,下至员工都需要参加有计划的培训学习,由于参加培训的人员比较分散,上课的时间地点也有一定的随机性,特设计本套系统放置在公司的局域网上,便于参训人员及时获得培训信息,也便于人力资源管理部门对培训工作进行系统的管理,对信息进行维护以及及时发布最新信息。
三、系统框架
四、系统功能模块设计
1、登陆模块
系统设定两种登陆权限,分为员工登陆和管理员登陆。
员工可以直接进入到系统主菜单,但只可进行信息的查询与打印;管理员需要输入密码后方可进入系统主菜单,可以进行除了查询与打印之外的信息录入工作。
2、查询模块
(1)对培训课程进行查询:
下设两种查询方式——按培训地点查询与按课程名查询。
用户在输入需要查询的培训地点或课程名后,窗口下面的表格中会显示出课程的其他详细信息,如开课时间、主办部门、课时数等等具体信息。
(2)对培训教材进行查询:
每门课程会有相应的授课教材(户外授课除外)。
用户在查到自己所需参加的课程后,可以在此模块输入课程名,系统会在下面的表格中显示出本门课程的教材信息,如出版社、作者等信息。
(3)对培训教师进行查询:
公司从各类高校和培训机构请来讲师为员工授课,设计此模块便于培训学员对教师基本情况有所了解。
用户可以在用户在输入后点击查询,窗口下面的表格中显示教师的基本信息,如年龄、所在单位、职称、学历等等具体信息。
3、录入模块
此模块专门为管理员设计,只有通过管理员权限进入的用户方可使用此模块。
为便于管理员信息的录入,特分为两种录入方式——教师信息录入和课程信息录入。
管理员可以在录入界面对教师和课程的各项信息进行信息的添加与保存工作。
添加完毕后,员工即可在查询模块进行查询。
此外,针对于管理员权限,还设计了密码修改功能,对原有的管理员密码进行修改,保证了录入信息的安全性。
4、打印模块
打印模块提供对系统源表的打印及打印预览功能,可以对教师基本信息表、课程安排表、培训教材表进行输出,很大的方便了用户的操作。
5、日历模块
系统在主登陆界面上设计了日历查询及当前时刻显示功能,便于用户在查询课程时间时,核对当前时间,安排自己的行程。
6、其他模块
在其他模块中,设计了三项功能。
用户可以修改当前的登陆权限,如由员工登陆变为管理员登陆,会要求用户输入管理员密码,输入正确后,菜单上的录入模块即可使用。
其次,其他模块中包括关于本系统的版权所有者与制作者的介绍。
最后,有退出系统的按钮。
五、系统数据库设计及关键的程序代码
1、表结构设计
本系统建立数据库后,数据库中主要包括三个数据表:
课程安排表、教师基本信息表和培训教材表。
其字段属性如下:
课程安排表(kcset.dbf)
教师基本情况表(teacher.dbf)
培训教材表(book.dbf)
密码表(mm.dbf)
密码表中设有password字段,对密码进行保存。
2、表单结构设计及关键的程序代码
本系统共有14张表单,根据需要设定了其AutoCenter、Caption、Picture、
ShowWindow、WindowState等等属性,并对所有表单进行了界面美观工作。
主要表单结
构及关键程序代码如下:
欢迎表单
本表单包括一个标签、一个选项按钮、两个按钮。
用户通过选项按钮组可以选择通过员工权限或管理员权限进入系统,若选择员工进入可以直接进入主界面,若选择管理员登陆则出现下面的密码输入界面。
此外,在表单的initevent中定义了limit公共变量,且在进入按钮中设定limit=1。
密码登陆表单
用户选择管理员登陆后,应输入相应密码,按确定按钮进入。
系统初始密码为123,用户共有三次输入正确密码的机会,若三次都不正确,则系统会直接退出。
放弃登陆选择退出按钮,系统会询问是否确定退出,若选择是则直接退出,选择否则返回密码输入界面。
文本框的passwordchar设为*,确定按钮的主要代码如下:
login=login+1
messagebox('您还有'+str(3-login,1)+'次机会输入密码!
',5+48,"警告!
")
iflogin=3
messagebox('您不能使用本系统!
',16+0,'警告!
')
quit
此外,在确定按钮中还设定了limit=2。
课程查询表单
在菜单中选择课程查询选项,按照不同的查询方式,出现以上两个表单,在组合框中可以输入要查询的项目,也可在下拉列表中选择需要查询的项目,按查询按钮进行查询,查询结果会在界面下方的表格中显示。
如果所输入的名称在系统中没有记录时,将会出现输入错误的提示,要求重新输入。
在查询中,表格的readonly选项设为真,用户不可对表格内容进行改动。
查询按钮的主要代码如下:
selectkcset
setfilterto
locaforallt(kcset.课程名称)==allt(bo1.value)
iffound()
thisform.grid1.visible=.t.
setfiltertokcset.课程名称=allt(bo1.value)
else
=messagebox("记录中无此课程名!
",0+48,"错误!
")
bo1.setfocus
endif
thisform.refresh
教师查询表单及教材查询表单
这两张查询表单与之前的查询表单有许多类似之处,基于同一种设计思想,在此
不再赘述有所不同的是由于教材查询输出的条目较小,所以采用了文本框输出方式,
查询结果会在相应的文本框中显示。
录入表单
录入表单中提供了与源表相对应的字段,可以对源表进行添加记录的工作,课程信息表的数据环境中添加了kcset.dbf和book.dbf两个表,可以同时对两个表录入信息,新纪录添加后,选择保存按钮进行保存。
密码修改表单
用户需先输入原密码,再输入新修改的密码,为了保证输入的正确,系统要求进行两次重复输入,若两次输入不正确,则会跳出提醒框“两次输入不一致!
”要求重新输入。
opendatabases数据库
usemm
ifc=d
ifmessagebox("确定要修改密码吗?
",48+1,"警告!
")=1
updatemmsetpword=c
releasethisform
endif
else
messagebox("两次输入的密码不一致!
",32+3,"警告!
")
thisform.text2.value=""
thisform.text3.value=""
thisform.refresh
endif
打印与打印预览表单
打印表单可以实现对源表的打印与预览工作。
确定按钮的部分代码如下:
CASEthisform.optiongroup1.value=1
Ifthisform.optiongroup4.value=1
Reportformteacherpreviewnowait
Else
Reportformteachertoprinternoconsole
Endif
系统主界面与日历表单
此表单为本系统的顶层表单,菜单加于此表单之上。
基于本系统的特点,特在此表单之上增加了ActiveX控件中的日历控件,并在日历属性中对日历的外观进行了美化,此外,日历上设定了计时器控件,用来显示当前时间,设其interval属性为500,timerevent为:
ifthisform.label1.caption<>time()
thisform.label1.caption=time()
endif
3、菜单结构设计
设有查询、录入、打印、其他四项主菜单,并为其设置了快捷键。
查询下又设有两级菜单,分菜单下对应相应的doform命令。
录入下的子菜单设置了跳过limit=1命令,实现了在员工登陆权限下该菜单不可用,并且在菜单中加入了分行标志(\-)。
其他菜单中包含退出键,用户可由此退出系统,退出系统前会出现退出界面,界面中加入了一个计时器,5秒钟后自动退出系统。
4、报表结构设计
系统中设有teacher.frx、book.frx、kcset.frx三张报表对应于三张前面提到的数据库表,可以实现对表的打印预览与打印工作。
六、心得体会
看着即将完成的课程设计,心情分外激动,也有不少的心得体会,感慨颇深,特总结如下:
通过这次VFP课程设计,我深深地体会到了实践对于学习的重要性,只有通过亲手去实践,才能更好的掌握一门技术。
这套培训管理系统是我自己在不断摸索的过程中慢慢完善起来的,在制作的过程中,遇到了各种各样大大小小的问题,我也在不断地尝试各种解决办法,修改不同的属性方法事件,身边摆的好几本参考书,都让我翻了好几遍,就算是解决了一个像字体居中的这种小问题也会让我欣喜若狂。
我想,只要自己肯钻研,没有什么苦难是克服不了的。
在这种不断的探索中,我体会到了VFP功能的强大,只要方法得当,你所想到的设计方法他都可以实现,我在这套系统的美工、细节方面下了很大的功夫,所有的背景图片都经过了精心挑选处理,表单内文字的字体字号颜色也进行了相应的修改,达到了视觉美观的效果;细节方面,系统中的退出按钮都设有序文是否真要退出的询问对话框,对跳出的MASSAGEBOX也进行了美化,设计了不同的标题与图标,虽然只是在命令中增加几个数字,却让系统设计得更加人性化。
最后,感谢所有给我很大帮助的老师同学,感谢你们的帮助与悉心指导,让我在这次课程设计中收获颇丰!