VFP纸质报告.docx
《VFP纸质报告.docx》由会员分享,可在线阅读,更多相关《VFP纸质报告.docx(17页珍藏版)》请在冰豆网上搜索。
![VFP纸质报告.docx](https://file1.bdocx.com/fileroot1/2023-6/30/89faf73d-e8cd-488c-a7ad-59b4032c0170/89faf73d-e8cd-488c-a7ad-59b4032c01701.gif)
VFP纸质报告
VFP课程设计报告
姓名:
班级:
学号:
正文
1.VFP课程设计目的
《VFP》课程的学习,不仅需要理论上的深入探讨,而且需要通过实践上机,自己开发一个数据库管理信息系统,才能真正理解书本知识,牢记掌握课堂教学内容。
因此,本次课程设计的目的就是要通过一个实际的管理信息系统的开发,提高自身用所学知识分析问题,解决问题和实际动手能力,进一步掌握VFP这门课程的内容,熟悉用VFP开发一个简单系统的基本步骤。
2、VFP课程设计要求
要求学生针对上机操作任务书,进一步掌握有关表、数据库、项目、类的基本概念及基本操作,在此基础上进行查询设计、菜单设计、表单设计及报表设计,并掌握常用的属性、事件及方法的使用。
1)数据管理
主要是对学生基本信息、课程基本信息、学生成绩信息、教师基本信息的录入、删除、保存、定位等操作
注意:
这四个表单中用到的工具条要创建成自定义工具栏类,然后把它添加到表单中。
2)查询设计
学生选修课程信息:
创建一个一对多表单,当在一个组合框中选择学生后,在下面的GRID中反映该学生选修的课程名,课时数,任课教师及该门课程的成绩。
教师任课情况:
以一对多的形式,在表格一中选择教师后,表格二中显示该教师的
任课情况。
3)统计处理
学生成绩统计:
创建一个视图,该视图用来反映每个学考选修了几门课,总成绩是多少,并将该视图加到表单的数据环境中,创建一个学生总成绩查询表单。
要求用页框来实现,第一页反映学生的总成绩,第二页反映学生的明细成绩。
各教师的任课时数:
创建一个视图,该视图用来反映每个教师上了几门课,总学时是多少,并将该视图加到表单的数据环境中,创建一个教师情况查询表单。
4)打印输出
在报表设计器中设计一个学生总成绩报表,然后在学生总成绩查询表单上添加一个打印按钮,当按下该按钮时,调用上述创建的报表。
在报表设计器中设计一个教师任课信息报表,在菜单中调用该报表。
3、VFP课程设计内容
(1)系统功能设计
数据管理
数据查询
统计处理
打印输出
系统管理
学生基本信息
学生选修课程信息
学生成绩统计
学生总成绩
登录
课程基本信息
教师任课信息
教师任课课时
教师任课信息
用户管理
学生成绩信息
修改密码
教师基本信息
一.表结构:
成绩表
教师表
课程表
学生表
Sdi_menu
Sdi表单
dl
二.数据管理
(1)学生基本信息
(2)课程基本信息
(3)学生成绩信息
(4)教师基本信息
三.数据查询
(1)学生选修课程信息
(2)教师任课信息
四.统计处理
(1)学生成绩统计
视图
学生总成绩查询表单
(2)教师任课课时
视图
教师任课查询
五.打印输出
(1)学生总成绩
(2)教师任课信息
4、心得体会
终于把VFP做好了,我感觉如释重负。
我经历了无数次的失败,从纯粹的照着书往电脑里打程序到后来请教别人再到后来有自己的想法开始自己想程序,从对这个课程设计完全不了解到后来对其中的细节有充分的接触,我觉得这是人生最宝贵的。
一开始做VFP时我还在心里就在打退堂鼓,怎么这么难,现在我回想起来,其实还是自己上课时落下了学习。
现在回想,真是恨自己上课不用功,害的自己的能力不够,最终还是苦了自己其实我觉得VFP还是要注重实践操作,在当时做的开始我简直不知道怎么入手,做一个步骤问一下别人,导致自己信心全无,比如当时做的时候,类的创建和添加我就被难在那儿,还有组合框我也是纠结了很长时间,经过这几天的摸索和实践,我觉得比开始时有了很大的提高,并且对这个课程设计有了清晰的轮廓。
现代社会是竞争的社会,要想在竞争的社会中立足就要讲求工作效率。
在学生成绩的记录和管理上,传统的方法费时费力,不符合现代社会的要求,所以就必须有效地利用现代技术和信息结合的优势。
因此,第一时间处理好随时变化的学生成绩管理问题,建立一套符合学习实际的学生成绩管理系统就显得尤为重要。
由于我的知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据工作的具体要求不断的修改、完善,争取使系统慢慢趋于完美。
在这次实践中我们学习到了以前在课本上无法理解和没有见到过的知识,提高自身的知识面和实践能力,收获颇丰。
这样的项目对我们学过的数据结构,程序设计,数据库,软件工程,等课程是一个综合性很高的实践。
经历这一段时间的实践,我们对原来学习的知识有了更深刻的认识,也学习到了大量的新知识,提高了实际应用的能力。
另外我还充分体会了从事软件开发工作需要特别谨慎认真。
每个细微的细节都必须十分注意,如果考不认真思考决策,就会出现或大或小的错误。
如果早期的错误没有发现,对后面的工作影响就会很大,有时候会弄的整个系统不能运行的后果。
就我个人而言,我已经做过三遍了,纠结的很。
我们不得不对软件的每一步进行检查,给我们的信心带来了打击,非常劳累和痛苦,最终还是重新做。
由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,遇到了好多棘手的问题,不得不去翻阅课本和请教同学,最后自己无法解决的情况下向老师进行请教。
在课程设计的过程中,老师和同学们都给与了我很大的帮助,特别是同学,在宿舍一起完成课程设计,有什么不会的大家一起讨论,在我们遇到困难时给我们鼓励和帮助,在这里,我向这些无私帮助我的人表示由衷的谢意。
5、主要模块的设计说明和程序代码
登录:
USEdl.DBF
TEMP1=ALLTRIM(THISFORM.text1.VALUE)
TEMP2=ALLTRIM(THISFORM.text2.VALUE)
LOCATEFORALLTRIM(mc)==TEMP1.AND.ALLTRIM(mm)==TEMP2
IFFOUND()
doformdlcg.scx
publicp_mc,p_mm
p_mc=TEMP1
p_mm=TEMP2
THISFORM.RELEASE
ELSE
MESSAGEBOX("密码或用户名输入错误,重新输入!
")
THISFORM.TEXT1.VALUE=''
THISFORM.TEXT2.VALUE=''
THISFORM.text1.SETFOCUS
ENDIF
登录成功:
doformsdi.scx
THISFORM.RELEASE
修改密码:
ifalltrim(thisform.text1.value)==p_mm
ifthisform.text2.value==thisform.text3.value
temp=alltrim(thisform.text3.value)
UPDATEdlSETmm=tempWHEREdl.mc=p_mc
MessageBox('密码修改成功',48+0+0)
else
MessageBox('两次密码输入不相等',48+0+0)
endif
else
MessageBox('原密码不正确,请再次输入',48+0+0)
Endif
用户管理
//new
APPENBLAN
thisform.refresh
thisform.txtbh.setfocus
//delete
delete
pack
thisform.refresh
//reset
thisform.txtbh.value=''
thisform.txtmc.value=''
thisform.txtmm.value=''
//exit
thisform.release
//first
if!
bof()then
gototop
thisform.refresh
this.enabled=.f.
mand6.enabled=.F.
mand7.enabled=.T.
mand8.enabled=.T.
endif
//prior
if!
Bof()
skip-1
thisform.refresh
else
this.enabled=.f.
mand5.enabled=.F.
mand6.enabled=.t.
mand7.enabled=.t.
mand8.enabled=.t.
endif
//next
skip
//last
gotoBOTT
教师任课情况:
x=this.value
selectjs
setfiltertojs.kcdh=x
thisform.refresh
return
打印按钮:
reportformxszcj.frxpreview
自定义工具栏类
//退出
Thisform.release
//下一条
if!
eof()
skip
else
cmessagetitle='提示'
cmessagetext='当前记录为最后一条记录'
ndialogtype=0
nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
endif
thisformset.refresh
//录入
Appendblank
Thisformset.refresh
//删除
setdeleteon
delete
if!
eof()
skip
endif
thisformset.refresh
//上一条
if!
bof()
skip-1
else
cmessagetitle='提示'
cmessagetext='当前记录为第一条记录'
ndialogtype=0
nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
endif
thisformset.refresh
7、参考资料
Vfp教程,vfp实验指导书,其他系的同学的作品(主要的代码)