您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VFP课程设计指导书
VisualFoxPro课程设计指导书课程设计指导书样例班级学生成绩管理系统一、引言1、开发背景班级学生成绩管理,通常是使用人工方式,效率低且容易出现错误。通过班级学生成绩管理软件来进行成绩管理,高效、准确无误,查询、统计方便易行,给班级成员带来了很大的方便。2、实现目标根据实际需要,编写班级学生成绩管理系统,解决传统手工方式的成绩管理,达到减少工作量、方便进行成绩查询、实现自动的成绩统计,提高效率的目的。具体如下:(1)班级学生基本信息维护:包括班级学生基本信息的录入、修改、删除、查询等(2)班级学生成绩信息维护:包括班级学生成绩信息的录入、修改、删除等(3)成绩查询:包括按学号、姓名两种方式进行成绩查询(4)成绩统计:包括个人成绩、课程成绩、班级成绩统计二、需求分析1、功能需求根据上述的目标,我们确定系统应该有如下的功能:(1)学生成绩信息输入:输入(2)学生成绩信息维护:对成绩信息进行维护(3)学生信息维护:对学生基本信息进行维护(4)成绩查询:根据指定查询条件查找符合条件的信息(5)统计:进行个人成绩、课程成绩、班级成绩的统计2、性能需求系统运行对运行环境的一些要求:(1)硬件环境处理器:80486/50MHz及以上处理器内存:不低于16M硬盘空间:100M(2)软件环境操作系统:Windows9x、2000或XP数据库:VisualFoxPro开发平台:VisualFoxPro三、总体设计1、软件结构设计本系统设计了一个简单的数据库,学生基本信息、学生成绩信息,即能基本满足班级成绩管理的要求。系统主要分为五个模块:(1)学生基本信息维护模块:在此模块中,班级成绩管理员可以对学生基本信息如学号、姓名、性别等进行维护,可以新增、修改、删除或查询学生基本信息。(2)成绩录入模块:在此模块中,班级成绩管理员可以进行班级学生成绩的录入。(3)成绩查询模块:每个学生可以在此模块中通过学号或姓名来进行个人成绩的查询。(4)成绩修改模块:班级成绩管理员可以在此模块中进行学生成绩的修改。(5)成绩删除模块:班级成绩管理员在此模块中删除学生成绩信息。(6)成绩统计模块:每个学生可以在此模块中查看个人成绩、课程成绩、班级成绩的统计结果。2、系统模块设计系统总体结构如图所示:3、数据库结构设计按照系统不同的功能模块,需要不同的表来存储信息,数据库设计如下:(1)学生基本信息表STUINFO名称字段名称数据类型主键非空学号XHChar(3)YesYes姓名XMChar(8)NoYes性别XBrChar(2)No(2)学生成绩信息表SCORE名称字段名称数据类型主键非空学号XHChar(3)YesYes语文YUWENNumeric(3,0)NOYes数学SHUXUENumeric(3,0)NOYes英语YINGYUNumeric(3,0)NOYes班级学生成绩管理系统学生基本信息维护成绩录入成绩查询成绩修改成绩删除成绩统计按学号查询按姓名查询按学号修改按姓名修改按学号删除按姓名删除个人成绩统计课程成绩统计班级成绩统计平均分PINGJUNFENNumeric(5,1)NO四、详细设计1、主界面模块2、学生基本信息维护该模块实现学生基本信息的维护,包括增加、删除、修改等维护数据的操作。由于学生的基本信息仅仅是成绩管理系统中的辅助数据,信息内容简单,数据变动不大,维护操作较简单,故直接使用VFP中的表单向导生成该表单,运行界面如下:3、成绩录入该模块实现班级学生成绩的录入。一个学生一条成绩记录。已录入成绩的学生不能再进行成绩的录入,只能做修改等其它操作。所以在录入成绩时,只能在学号下拉框中进行未曾录入成绩的学生学号的选择,同时在姓名文本框中确认是否待录入成绩的学生。确认该生后,录入其成绩数据。运行界面如下:程序代码:Frmsr的Load事件代码:publicdimensionno(100)fori=1to100no(i)=.f.endforopendatastudentselect1usestuinfoselect2usescoreselect1i=1scanselect2locateforxh=a.xhifnotfound()no(i)=a.xhi=i+1endifselect1endscanFrmsr的Init事件代码:thisform.combo1.cleari=1dowhiletype('no(i)')!='L'thisform.combo1.additem(no(i))i=i+1enddoFrmsr的Release事件代码:select1useselect2useclosedatabaseCmdok的Click事件代码:select2appendblankreplacexhwiththisform.combo1.valueiflen(alltrim(thisform.text3.value))0replaceyuwenwithval(thisform.text3.value)elsereplaceyuwenwith0endififlen(alltrim(thisform.text4.value))0replaceshuxuewithval(thisform.text4.value)elsereplaceshuxuewith0endififlen(alltrim(thisform.text5.value))0replaceyingyuwithval(thisform.text5.value)elsereplaceyingyuwith0endifreplacepingjunfenwith(yuwen+shuxue+yingyu)/3thisform.releaseCmdcancel的Click事件代码:thisform.release4、成绩查询该模块实现班级学生各门课程成绩的查询。可以按学号、姓名两种方式来进行查询。查询结果是不允许修改的,所有显示查询结果的文本框的ReadOnly属性均为.T.。运行界面如下:程序代码:Frmxhcx1:Cmdok的Click事件代码:cxxh=alltrim(thisform.text1.value)opendatastudentselect1usescorelocaforalltrim(xh)==cxxhiffound()doformnewcx1thisform.releaseelsemessagebox(没有此学号!,0+48+0,错误)thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxhcx2:Text1到Text5的ControlSource属性要修改为相应数据表的字段名,将相应数据与文本框绑定在一起,可以在运行期间显示数据的值,修改文本框的值也会反应到数据表中。如:Text1.ControlSource=score.xh。Frmxhcx2的Load事件代码:select2usestuinfolocateforxh=a.xhCmdok的Click事件代码:select1useselect2useclosedatathisform.release程序代码:Frmxmcx1:Cmdok的Click事件代码:cxxm=alltrim(thisform.text1.value)opendatastudentselect1usestuinfolocaforalltrim(xm)==cxxmiffound()doformnewcx2thisform.releaseelsemessagebox(没有此姓名!,0+48+0,错误)thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxmcx2:Text1到Text5的ControlSource属性同样要修改为相应数据表的字段名。Frmxmcx2的Load事件代码:select2usescorelocateforxh=a.xhCmdok的Click事件代码:select1useselect2useclosedatathisform.release5、成绩修改该模块实现班级学生各门课程成绩数据的修改。可以按学号、姓名两种方式来进行修改,两种方式类似。以按学号进行修改为例,运行界面如下:Frmxhxg1:Cmdok的Click事件代码:cxxh=alltrim(thisform.text1.value)opendatastudentselect1usescorelocaforalltrim(xh)==cxxhiffound()doformnewxg1thisform.releaseelsemessagebox(没有此学号!,0+48+0,错误)thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxhxg2:Frmxmsc2的Load事件代码:由于进行了数据绑定,对文本框内容的修改会直接反应到数据表中。确认修改无需做特别工作,但是取消修改需要恢复修改前的原值。故在此使用了数组a来保存修改前的原始值。在恢复修改中,使用gatherfroma恢复原值。select2usestuinfolocateforxh=a.xhpublicdeclarea(4)select1scattertoaCmdok的Click事件代码:select1replacepingjunfenwith(yuwen+shuxue+yingyu)/3useselect2useclosedatathisform.releaseCmdcancel的Click事件代码:select1gatherfromauseselect2useclosedatathisform.release6、成绩删除该模块实现班级学生各门课程成绩数据的删除。可以按学号、姓名两种方式来进行删除,两种方式类似。以按姓名进行删除为例,运行界面如下:Frmxmsc1:Cmdok的Click事件代码:cxxm=alltrim(thisform.text1.value)opendatastudentselect1usestuinfolocaforalltrim(xm)==cxxmiffound()doformnewsc2thisform.releaseelsemessagebox(没有此姓名!,0+48+0,错误)thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxmsc2:Frmxmsc2的Load事件代码:select2usescorelocateforxh=a.xhCmdok的Click事件代码:select2delepackuseselect1useclosedatathisform.releaseCmdcancel的Click事件代码:select1useselect2useclosedatathisform.release7、成绩统计个人成绩统计中,使用了四个视图:YW、SX、YY、PJF,以取该生的语文、数学、英语及总分在班级中的排名次序。Frmgrtj1:Cmdok的Click事件代码:xhxm=alltrim(thisform.text1.value)opendatastudentselect2usestudscorelocaforalltrim(xh)==xhxmiffound()doformnewgrtj2thisform.releaseelselocaforalltrim(xm)==xhxmiffound()doformnewgrtj2thisform.releaseelsemessagebox(没有此学号或姓名!,0+48+0,错误)thisform.text1.setfocusendifendifCmdcancel的Click事件代码:thisform.releaseFrmgr
本文标题:VFP课程设计指导书
链接地址:https://www.777doc.com/doc-4010286 .html