VFP学生成绩管理系统课程设计指导书.doc
《VFP学生成绩管理系统课程设计指导书.doc》由会员分享,可在线阅读,更多相关《VFP学生成绩管理系统课程设计指导书.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库技术与应用B课程设计指导书班级:2011英语(本)指导教师:韩宇贞2012年9月班级学生成绩管理系统一、 引言1、开发背景班级学生成绩管理,通常是使用人工方式,效率低且容易出现错误。通过班级学生成绩管理软件来进行成绩管理,高效、准确无误,查询、统计方便易行,给班级成员带来了很大的方便。2、实现目标根据实际需要,编写班级学生成绩管理系统,解决传统手工方式的成绩管理,达到减少工作量、方便进行成绩查询、实现自动的成绩统计,提高效率的目的。具体如下:(1) 班级学生基本信息维护:包括班级学生基本信息的录入、修改、删除、查询等(2) 班级学生成绩信息维护:包括班级学生成绩信息的录入、修改、删除等(
2、3) 成绩查询:包括按学号、姓名两种方式进行成绩查询(4) 成绩统计:包括个人成绩、课程成绩、班级成绩统计二、 需求分析1、 功能需求根据上述的目标,我们确定系统应该有如下的功能:(1) 学生成绩信息输入:输入(2) 学生成绩信息维护:对成绩信息进行维护(3) 学生信息维护:对学生基本信息进行维护(4) 成绩查询:根据指定查询条件查找符合条件的信息(5) 统计:进行个人成绩、课程成绩、班级成绩的统计2、 性能需求系统运行对运行环境的一些要求:(1) 硬件环境 处理器:80486/50MHz及以上处理器内存:不低于16M硬盘空间:100M(2) 软件环境操作系统:Windows 9x、2000或
3、XP数据库:Visual FoxPro开发平台:Visual FoxPro三、 总体设计1、软件结构设计 本系统设计了一个简单的数据库,学生基本信息、学生成绩信息,即能基本满足班级成绩管理的要求。系统主要分为五个模块:(1) 学生基本信息维护模块:在此模块中,班级成绩管理员可以对学生基本信息如学号、姓名、性别等进行维护,可以新增、修改、删除或查询学生基本信息。(2) 成绩录入模块:在此模块中,班级成绩管理员可以进行班级学生成绩的录入。(3) 成绩查询模块:每个学生可以在此模块中通过学号或姓名来进行个人成绩的查询。(4) 成绩修改模块:班级成绩管理员可以在此模块中进行学生成绩的修改。(5) 成绩
4、删除模块:班级成绩管理员在此模块中删除学生成绩信息。(6) 成绩统计模块:每个学生可以在此模块中查看个人成绩、课程成绩、班级成绩的统计结果。2、系统模块设计系统总体结构如图所示:班级学生成绩管理系统学生基本信息维护成绩录入成绩查询成绩修改成绩删除成绩统计按学号查询按姓名查询按学号修改按姓名修改按学号删除按姓名删除个人成绩统计课程成绩统计班级成绩统计3、 数据库结构设计按照系统不同的功能模块,需要不同的表来存储信息,数据库设计如下:(1) 学生基本信息表STUINFO名称字段名称数据类型主键非空学号XHChar(3)YesYes姓名XMChar(8)NoYes性别XBrChar(2)No(2)
5、学生成绩信息表SCORE名称字段名称数据类型主键非空学号XHChar(3)YesYes语文YUWENNumeric(3,0)NOYes数学SHUXUENumeric(3,0)NOYes英语YINGYUNumeric(3,0)NOYes平均分PINGJUNFENNumeric(5,1)NO四、 详细设计1、 主界面模块 2、 学生基本信息维护该模块实现学生基本信息的维护,包括增加、删除、修改等维护数据的操作。由于学生的基本信息仅仅是成绩管理系统中的辅助数据,信息内容简单,数据变动不大,维护操作较简单,故直接使用VFP中的表单向导生成该表单,运行界面如下:3、 成绩录入该模块实现班级学生成绩的录入
6、。一个学生一条成绩记录。已录入成绩的学生不能再进行成绩的录入,只能做修改等其它操作。所以在录入成绩时,只能在学号下拉框中进行未曾录入成绩的学生学号的选择,同时在姓名文本框中确认是否待录入成绩的学生。确认该生后,录入其成绩数据。运行界面如下:程序代码:Frmsr的Load事件代码:public dimension no(100)for i=1 to 100 no(i)=.f.endforopen data studentselect 1use stuinfoselect 2use scoreselect 1i=1scan select 2 locate for xh=a.xh if not fo
7、und() no(i)=a.xh i=i+1 endif select 1endscanFrmsr的Init事件代码:bo1.cleari=1do while type(no(i)!=L bo1.additem(no(i) i=i+1enddoFrmsr的Release事件代码:select 1useselect 2useclose databaseCmdok的Click事件代码:select 2append blankreplace xh with bo1.valueif len(alltrim(thisform.text3.value)0 replace yuwen with val(th
8、isform.text3.value)else replace yuwen with 0endifif len(alltrim(thisform.text4.value)0 replace shuxue with val(thisform.text4.value)else replace shuxue with 0endifif len(alltrim(thisform.text5.value)0 replace yingyu with val(thisform.text5.value)else replace yingyu with 0endifreplace pingjunfen with
9、 (yuwen+shuxue+yingyu)/3thisform.releaseCmdcancel的Click事件代码:thisform.release4、 成绩查询 该模块实现班级学生各门课程成绩的查询。可以按学号、姓名两种方式来进行查询。查询结果是不允许修改的,所有显示查询结果的文本框的ReadOnly属性均为.T.。运行界面如下:程序代码:Frmxhcx1:Cmdok的Click事件代码:cxxh=alltrim(thisform.text1.value)open data studentselect 1 use scoreloca for alltrim(xh)=cxxhif foun
10、d() do form newcx1 thisform.releaseelse messagebox(没有此学号!,0+48+0,错误) thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxhcx2:Text1到Text5的ControlSource属性要修改为相应数据表的字段名,将相应数据与文本框绑定在一起,可以在运行期间显示数据的值,修改文本框的值也会反应到数据表中。如:Text1.ControlSource=score.xh。Frmxhcx2的Load事件代码:select 2use stuinfoloc
11、ate for xh=a.xhCmdok的Click事件代码:select 1useselect 2useclose datathisform.release程序代码:Frmxmcx1:Cmdok的Click事件代码:cxxm=alltrim(thisform.text1.value)open data studentselect 1 use stuinfoloca for alltrim(xm)=cxxmif found() do form newcx2 thisform.releaseelse messagebox(没有此姓名!,0+48+0,错误) thisform.text1.setf
12、ocusendifCmdcancel的Click事件代码:thisform.releaseFrmxmcx2:Text1到Text5的ControlSource属性同样要修改为相应数据表的字段名。Frmxmcx2的Load事件代码:select 2use scorelocate for xh=a.xhCmdok的Click事件代码:select 1useselect 2useclose datathisform.release5、 成绩修改该模块实现班级学生各门课程成绩数据的修改。可以按学号、姓名两种方式来进行修改,两种方式类似。以按学号进行修改为例,运行界面如下:Frmxhxg1:Cmdok的
13、Click事件代码:cxxh=alltrim(thisform.text1.value)open data studentselect 1 use scoreloca for alltrim(xh)=cxxhif found() do form newxg1 thisform.releaseelse messagebox(没有此学号!,0+48+0,错误) thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxhxg2:Frmxmsc2的Load事件代码:由于进行了数据绑定,对文本框内容的修改会直接反应到数据表中
14、。确认修改无需做特别工作,但是取消修改需要恢复修改前的原值。故在此使用了数组a来保存修改前的原始值。在恢复修改中,使用gather from a恢复原值。select 2use stuinfolocate for xh=a.xhpublic declare a(4)select 1scatter to aCmdok的Click事件代码:select 1replace pingjunfen with (yuwen+shuxue+yingyu)/3useselect 2useclose datathisform.releaseCmdcancel的Click事件代码:select 1gather f
15、rom auseselect 2useclose datathisform.release6、 成绩删除该模块实现班级学生各门课程成绩数据的删除。可以按学号、姓名两种方式来进行删除,两种方式类似。以按姓名进行删除为例,运行界面如下:Frmxmsc1:Cmdok的Click事件代码:cxxm=alltrim(thisform.text1.value)open data studentselect 1 use stuinfoloca for alltrim(xm)=cxxmif found() do form newsc2 thisform.releaseelse messagebox(没有此姓名
16、!,0+48+0,错误) thisform.text1.setfocusendifCmdcancel的Click事件代码:thisform.releaseFrmxmsc2:Frmxmsc2的Load事件代码:select 2use scorelocate for xh=a.xhCmdok的Click事件代码:select 2delepackuseselect 1useclose datathisform.releaseCmdcancel的Click事件代码:select 1useselect 2useclose datathisform.release7、 成绩统计个人成绩统计中,使用了四个视
17、图:YW、SX、YY、PJF,以取该生的语文、数学、英语及总分在班级中的排名次序。Frmgrtj1:Cmdok的Click事件代码:xhxm=alltrim(thisform.text1.value)open data studentselect 2use studscoreloca for alltrim(xh)=xhxmif found() do form newgrtj2 thisform.releaseelse loca for alltrim(xm)=xhxm if found() do form newgrtj2 thisform.release else messagebox(没
18、有此学号或姓名!,0+48+0,错误) thisform.text1.setfocus endifendifCmdcancel的Click事件代码:thisform.releaseFrmgrtj2:Frmgrtj2的Activate事件代码:set talk offselect 2xuehao=studscore.xhthisform.text6.value=alltrim(studscore.xh)thisform.text7.value=alltrim(studscore.xm)thisform.text8.value=alltrim(str(studscore.yuwen)thisfor
19、m.text9.value=alltrim(str(studscore.shuxue)thisform.text10.value=alltrim(str(studscore.yingyu)thisform.text4.value=alltrim(str(studscore.pingjunfen)select 3use ywloca for xh=xuehaomc1=recno()thisform.text1.value=mc1select 4use sxloca for xh=xuehaomc2=recno()thisform.text2.value=mc2select 5use yyloca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 学生 成绩管理系统 课程设计 指导书
限制150内