学生成绩管理系统(VFP)_第1页
学生成绩管理系统(VFP)_第2页
学生成绩管理系统(VFP)_第3页
学生成绩管理系统(VFP)_第4页
学生成绩管理系统(VFP)_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管理系统(VFP-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIIPAGEPAGE49摘要:学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本文简要介绍了本学校学生成绩管理的情况和系统的实现过程,阐述了课题来源,系统及需求分析,系统规划,设计及实现情况。关键字:控件、窗体、域。Abstract:Student’sachievementadministrativesystemisatypicalinformationmanagementsystem(knowasMIS),Itsdevelopmentincludebackstagesupporterthefoundationandmaintainandfrontthetwoesrespectsofdevelopmentofapplicationprogramsofdatamainly.Astotheformerrequiresetupdataconsistencyandintegralitystrong,datasecuritykindstorehouse.Requireapplicationprogramnottobecomplete,easytousecharacteristicofwaitingforfunctionthelatter.Thistexthasrecommendedasituationofstudent’sachievementmanagementofinstituteandsystematicrealizationcoursebriefly,Havingexplainedthesubjectsource,thesystemanddemandanalyse,thesystemisplanned,Designandrealizethesituation.Keyword:Accuseofone,windowbody,land.目录摘要 2—前言 3二课题来源 4三系统及需求分析 4(一)、系统需求 4(二)、可行性分析………… 4(三)、VFP5.0以上的中文版概述 5四系统规划 6(一)、项目规划 6(二)、功能框图 7(三)、规划数据库 7五系统设计和实现 9(一)、数据分析与项目的建立 9(二)、数据库设计 9(三)、模块设计 10(四)、系统性能测试 31六结束语……………31参考文献 32附录 33一前言VisualFoxPro(VFP)WindowsOLEVFP6.0、VFP7.0,它在VFP5.0OLE接、ActiveX集成、帮助系统制作、数据导入和导出等方面的功能。“学生成绩管理系统”就是在这样一个优秀的数据库管理系统下开发而成的,可VFP5.0.EXEWINDOWSVFP数据库管理就能使用该系统。VFP查询与视图,表单设计,报表,工作环境的设置方法与步骤等内容。“学生成绩管理系统”是目前学校应该普遍需要使用的学生管理系统之一,鉴于这种情况,提出问题、分析问题,也是我这次毕业论文设计的基本目的。二 课题来源计算机已经成为我们学习和工作的得力助手,今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。由于我校每个学期都要进行期终考试,每期的考试成绩又要进行登记入册,原来学校是由教务处的一位老师专门管理这件事,主要是进行手写登记,费时又费心,而且有时还出现很多错误登记。现在我校学生成绩管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。作为计算机应用的一部分,使用计算机对学生成绩进行管理,具有着手工管理所无法比拟的优点。例如:不易出错、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情。三系统及需求分析(一)、系统需求·尽量采用学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的。·系统应符合学校学生成绩管理的规定,满足对学校学生成绩管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。·系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。·系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。通过调查,要求系统需要有以下功能:1、由于操作人员的计算机知识普遍较差,要求有良好的人机界面,可以存储历届的学生成绩,安全、高效;2、原始数据修改简单方便;3、数据查询方便;4、删除数据方便简单,数据稳定性好;5、数据计算自动完成,尽量减少人工干预;6、强大的报表打印功能;7、退出系统。(二)、可行性分析由于本系统管理的对象单一,且每个班级的学生数据内容基本是一致的,涉及的计算中心过程不是很复杂。因此,比较适合于采用数据库管理。在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师和相关参考文献,特别是网上资料,以及学校给我提供的各种数据要求,完全可以实现。VFP5.0VFP5.0Windows(三)、VFP5.0以上的中文版概述1、概述VFP5.0Windows9X/2000WindowsNT323232Internet,WWWActiveX等。VFP5.0OOP(面向对象)使用了真正的类,包括继承性,封装性和多态性。用可视方式创建类、查看类及类代码;利用表单向导进行专业级界面设计;对表关系进行可视化查看;可OLE(Excel、Word)中的对象并使用这些软件。通过VisualFoxPro对象和事件模型,用户可以快速创建和实现无模式(modeless)的应用程序;利用生成器和工具栏,开发人员可以快速开发应用程序,而省去编写大量的代码、定义繁多的属性。总之,VFP5.0是一种适用于专业人员的开发工具。2、数据库概念的发展FoxPro2.X(.DBF)及视图的统,它很可能需要对不同的用户各自创建一个大型的文件系统,它包括许多FoxPro2.XVisualFoxPor非常的容易,设计人员只要为不同的用户创建不同的数据库,然后在这些数据库下建立用户自己的表就可以很容易对每个用户进行区别和维护了。而且,这样的数据库的关系能力更加强大,更加稳定可靠。3、其他新特性VisualFoxPor5.0gstextboxVisualFoxPor5.0WIASTYLE.VCXsearchclass),可以按照需要给自己的数据库定制相应的菜单样和工具栏。重新设计了项目管理器(ProjectManager),其最简单的用途是作为一种组织工具,保存属于特定应用程序所有文件的列表,而且根据文件类型将这些文件进行划分。它所提供的多页框界面,使对项目文件的添加、建立和编程更加容易。1998VFP6.0VFP5.0了项目的管理器、向导、生成器、查询与视图、OLEActiveXOFFICE四系统规划(一)、项目规划学生成绩管理系统是一个典型的数据库应用程序,由用户设置模块、数据处理模块、成绩输入模块、成绩管理模块、成绩查询模块、报表打印模块等部分组成,特规划功能模块如下:1、用户设置模块该模块主要包括添加用户、修改密码和删除用户。2、数据处理模块该模块的主要功能是建立登分册和负责录入学生数据。(1)建立登分册:是指建立考试的名称。(2)学生管理:主要负责录入学生的信息,如录入学生的学号、年级、班次、姓名和性别。由于数据量大,所以该模块的设计也发点应从方便用户操作的角度出发,如采用中英文自动切换。3、成绩输入模块该模块的主要功能是负责录入学生的成绩,并且可以选择要输入成绩的科目。4、成绩管理该模块的主要功能是对学生成绩自动核算,总分、排名。5、成绩查询模块查询模块是一个数据库系统中所必须的模块。方便学校对每个学生的学生成绩查询和对每个班全部学生成绩的查询。6、报表打印模块该模块包括打印成绩和打印设置两个子菜单。学生个人成绩,打印班级学生成绩和打印班级平均分的报表,以便学生对平时成绩的查询及毕业入档时学生成绩打印入册的原始凭证。安装打印机,此时应该点“否”并选“忽略”,否则系统将会产生错误。7、退出功能模块退出功能模块用于结束所有操作,退出学生成绩管理系统。根据以上分析,本系统将建立以下功能模块。用户设置学生成绩管理系统主界面添加用户修改密码删除用户数据处理学生管理成绩输入成绩管理成绩查询打印报表打印成绩页面设置学生成绩管理系统主界面用户设数据处成绩输用户设数据处成绩输成绩管成绩查报表打退建立登分册(二)、功能框图根据系统功能要求,可以将系统分解成几个功能模块来分别设计,功能模块如下图:添修添修删加改除用密用户码户学打页生印面管成设理绩置(三)、规划数据库1、分析数据需求种有价值的信息,为决策作依据。在学生成绩管理系统中建立的数据库为:成绩库2、确定数据库VFP5.0信息应存储在不同的表中,并遵循下列规则:同一信息只保存一次;防止删除有用信息;只有在同一信息只保存一次的前提下,才能减少数据冗余性和出错的可能性,而是为了防止删除有用的信息,最好的解决方法仍然是把不同主题的信息放在不同的表中。根据以上分析,学生成绩管理数据库中建立了以下几个表:学生表、考试库、课程表、用户。(1)学生表①学生表的结构。字段名类型宽度小数学号字符型11年级字符型4考号字符型8班次字符型10姓名字符型8性别字符型3②学生表的记录。假设在学生表中输入3条记录,则为:学号 年级 考号 班次 姓名性别20041928

高一 12912 321 谭仲男20041086 高一 10207 321女20041553 高一 12607 321女(2)考试库①考试库的结构。字段名 类型 宽度名称 字符型 50时间 字符型 82

文淑华王俊敏小数名称时间2004年高一期末成绩200501122004年高二期末成绩20050112(3)课程表①课程表的结构。字段名 类型宽度小数科目 字符型最高分 数值型203②课程表的记录。假设在课程表中输入3条记录,则为科目 最高分语文 115数学 98历史(4)用户96①用户的结构。字段名类型宽度小数用户名密码字符型字符型1616②用户的记录。假设在用户中输入2条记录,则为:用户名adminyxl

密码1123456五系统设计和实现(一)、数据分析与项目的建立1、数据分析主要是分析各种数据的用途及相互之间的关联,分析数据的类型、数量发生频度和使用频度,并具体弄清楚每个数据所需的范围和位数及来源的时间性,为数据库、文件设计及输出、输入设计提供依据,也为制定合理的数据处理方法提供依据。编码是一项基础工作,编码必须唯一,编码设计的目的是为了便于数据的存储和检索,提高处理的效率和精度,节省处理时间和减少存储空间且方便使用。2、项目的建立项目管理器是“项目”二个字的含义指的就是我们想要编制的应用程序。成名思义,项目管理器就是用于建立应用程序的集成开发环境,它帮助我们设计、修改、运行一些应用程序级件。为了开发“学生成绩管理系统”,首先就要启动项目管理器,创建一个新项目。启动项目管理器,创建新项目——学生成绩管理系统的操作步骤是:1MicrosoftVisualFoxPro6.0“MicrosoftFoxPro”开发环境。第2步:单击“文件”,单击“新建”,弹出“新建”窗口。第3步:选中“项目”,单击“新建文件”按钮,弹出“创建”窗口。第4步:把所有要开发的“学生成绩管理系统”项目保存在一个文件中,本系统保存在E:\学生成绩管理系统目录下,在“项目文件”里输入“学生成绩管理系统”,作为该项目的文件名。在“存为类型”中选取“项目”,单击“保存”按钮,弹出“项目管理器”窗口。(二)、数据库设计1、怎样建立“学生成绩管理系统”中的数据库?VisualFoxPro6.0建一个新数据库的操作步骤如下:第1步:在项目管理器窗口中,选中“数据”选项卡,单击选中“数据库”图标。第2名”框中输入“成绩库”,作为学生成绩管理的数据库文件名,在“存为类型”栏E:学生成绩管理系统\data第3数据库设计窗口,并且“数据库设计器”变为有效。至此,我们创建了一个空的学生成绩管理数据库。2、怎样创建数据库中的表?下面我们在成绩库中创建学生表、考试库、课程表、用户。建立学生表建立学生表的操作步骤如下:第1步:在“数据库设计器”窗口的工作表中,单击鼠标右键,弱出一个“命令”菜单。第2步:单击“新建表”,弹出“新建表”窗口。第3步:单击“新建表”按钮,弹出“创建”窗口,在“保存在”框中,选中“data”文件夹,在“输入表中”中输入“学生表”,在“存为类型”框中,选中“表/DBF”。4.DBF”窗口,在“字段”选项卡中,输入学生表每个字段的字段名、类型、宽度、小数位数,完成表的结构。6至此,在“数据库设计器—成绩库”窗口中,可以看到创建了一个“学生表”。建立考试库、用户、课程表的操作方法跟建立学生表的操作方法相同。(三)、模块设计1、用户登录窗口功能模块显示登录界面(如右图),它对操作员进行口令验证,防止非法用户进入系统,任意增加、修改显示登录界面(如右图),它对操作员进行口令验证,防止非法用户进入系统,任意增加、修改和删除数据。在选择或输入用户并提供正确的密码后,点“确定”按钮即可进入系统,点“取消”放弃登录,退出系统。如果不能提供正确密码,在点“确定”按钮后会有相应提示,如果连续2、用户设置模块,在本模块中了建立三个子模块,即添加用户、修改密码、删除用户。添加用户功能模块。其程序代码如下:use用户exclpublicu1,pw1u1=allt(thisform.text1.value)pw1=allt(thisform.text2.value)ifempty(thisform.text1.value)use用户exclpublicu1,pw1u1=allt(thisform.text1.value)pw1=allt(thisform.text2.value)ifempty(thisform.text1.value)messagebox("用户名不能为空!",48+0,"添加新用户")thisform.text1.setfocuselselocateforallt(用户名)==u1iffound()messagebox("用户名已经存在,请输入其他用户名!",48+0,"添加新用户")thisform.text1.setfocuselseifthisform.text2.value==thisform.text3.valuetempstr=''fori=1tolen(trim(pw1))tempchr=bitxor(asc(subs(pw1,i,1)),123)tempstr=tempstr+chr(tempchr)endfordimensionb(1,2)b[1,1]=u1b[1,2]=tempstrappendfromarraybmessagebox("成功添加新用户!",64+0,"添加新用户")releasethisformelsemessagebox("请输入相同密码!",48+0,"添加新用户")thisform.text3.setfocusendifendifendifcommand2.clickreleasethisformtext3.KeyPressLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13&&mand1.clickendif修改密码功能模块。其程序代码如下:LPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13mand1.clickLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13mand1.clickendifCommand1.Clickpublicuu=allt(bo1.value)tempstr=''fori=1tolen(allt(trim(thisform.text1.value)))tempchr=bitxor(asc(subs(thisform.text1.value,i,1)),123)tempstr=tempstr+chr(tempchr)endforlocateforallt(用户名)==allt(bo1.value)and allt(密码)==tempstriffound()doformchangepw2elseendif

messagebox("密码有误,请重新输入!",48+0,"修改密码")thisform.text1.setfocusCommand2.ClickreleasethisformForm1.Init*main.ole1.simpletext=this.captionuse用户exclLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13&&mand1.clickendifLPARAMETERSnKeyCode,nShiftAltCtrlifnkeycode=13&&mand1.clickendifCommand1.Clickuse用户exclpublicpwpw=allt(thisform.text1.value)ifpw==allt(thisform.text2.value)tempstr=''fori=1tolen(trim(pw))tempchr=bitxor(asc(subs(pw,i,1)),123)tempstr=tempstr+chr(tempchr)endforlocaforallt(用户名)==allt(u)iffound() thenrepl密码withtempstrreleasethisformmessagebox("密码修改成功!",64+0,"修改密码")elseendif

endifmessagebox("密码未被确认,请输入相同密码!",48+0,"修改密码")thisform.text2.setfocusCommand2.ClickreleasethisformForm1.Initmain.ole1.simpletext=this.captionForm1.Unloadmain.ole1.simpletext="修改密码"releasepwreturn删除用户功能模块。其程序代码如下:main.ole1.simpletext=this.captionCombo1.InteractiveChangethisform.refreshCommand1.Clickifmain.ole1.simpletext=this.captionCombo1.InteractiveChangethisform.refreshCommand1.Clickifmessagebox("无法删除最后一个用户!",48+0,"删除用户")elsetempstr=''fori=1tolen(trim(thisform.text1.value))tempchr=bitxor(asc(subs(thisform.text1.value,i,1)),123)tempstr=tempstr+chr(tempchr)endforlocateforallt(用户名)==allt(bo1.value)iffound()andallt(密码)==tempstra=messagebox("确实要删除此用户吗",32+1,"删除用户")ifa=1deletepackmessagebox("成功删除用户!",64+0,"删除")bo1.value=""thisform.text1.value=""endifelsemessagebox("密码有误,请重新输入!",48+0,"删除用户")thisform.text1.setfocusendifendifCommand1.GotFocusthis.picture=mypath+"picture\focus.bmp"Command1.LostFocusthis.picture=mypath+"picture\but.bmp"Command2.ClickreleasethisformCommand2.LostFocusthis.picture=mypath+"picture\取消.bmp"Command2.GotFocusthis.picture=mypath+"picture\focus.bmp"Text1.KeyPressLPARAMETERSnKeyCode,ifnkeycode=13mand1.clickendif3、数据处理模块数据处理菜单下面的子菜单有:建立登分册和学生管理。建立登分册,是指建立考试的名称。其程序代码如下:this.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)ifempty(sjk)MESSAGEBOX("请输入考试名称")this.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)ifempty(sjk)MESSAGEBOX("请输入考试名称")thisform.text1.setfocusreturnendifsjk="data\"+sjkclearsetpathtoclosedataalluseinacopy touse&sjkusejls=recc()fori=1tousegoikemu=科目ALTERTABLE(sjk)closedataallendforADD&kemun(3)ALTERTABLE(sjk)ADD总分n(4)ALTERTABLE(sjk)ADD班名n(5)ALTERTABLE(sjk)ADD校名n(5)closedataallmessagebox(sjk+"已建立",0,"成绩管理")Command2.Clickusedata\考试库filedbf=allt(thisform.text1.value)+".dbf"iffile(filedbf)thenlocaforallt(名称)==filedbfiffound()messagebox("此考试库己存在!",0,"成绩管理")elseappeblankrepl名称 withfiledbfelse

endif

messagebox(filedbf+"也成功添加到考试库!",0,"成绩管理")endif

messagebox("请先建立成绩表!",0,"成绩管理")thisform.text1.setfocusCommand3.Clickthisform.releaseCommand4.Clickdaan=messagebox("此操作将清空考试库里的成绩项目!",4+32,"ifdaan=6thenusedata\考试库zapendif姓名和性别。其程序代码如下:mand4.enabled=.t.gotopthisform.refreshthis.enabled=.f.mand2.enabled=.f.thisform.grid1.setfocusCommand1.Rmand4.enabled=.t.gotopthisform.refreshthis.enabled=.f.mand2.enabled=.f.thisform.grid1.setfocusCommand1.Refreshifreccount()=0this.enabled=.f.endifCommand2.Clickmand3.enabled=.t.mand4.enabled=.t.skip-1ifrecno()=1gotopthis.enabled=.f.mand1.enabled=.f.endifthisform.refreshthisform.grid1.setfocusCommand2.Refreshifreccount()=0this.enabled=.f.endifCommand3.Refreshifreccount()=0this.enabled=.f.endifCommand3.Cmand1.enabled=.t.mand2.enabled=.t.skip+1ifeof()gobottomthis.enabled=.f.mand4.enabled=.f.endifthisform.refreshthisform.grid1.setfocusCommand4.Refreshifreccount()=0this.enabled=.f.endifCommand4.Cmand1.enabled=.t.mand2.enabled=.t.gobottomthisform.refreshthis.enabled=.f.mand3.enabled=.f.thisform.grid1.setfocusCommand5.Clickdel=messagebox("清空此学生表中所有数据吗",32+4,"修改记录")ifdel=6thenusein学生表endif

usedata\学生表exclzapusedata\学生表shareCommand6.ClickThisform.closable=.F.del=messagebox("添加学生吗",32+4,"添加记录")ifdel=6xingm=allt(thisform.text1.value)xingb=bo1.valuenianj=bo2.valuebanc=allt(thisform.text3.value)if notempty(xingm)andnotempty(xingb)andnotempty(nianj)calcmax(学号)toxiaohappeblankrepl姓名 withrepl性别withxingbrepl年级 withrepl班次withbancrepl学号withallt(str(val(xiaoh)+1))elsemessagebox("任何一项不能为空!",0,"添加记录")thisform.text1.setfocusreturnendifthisform.grid1.recordsource=""thisform.grid1.recordsource="学生表"thisform.refreshendifthisform.grid1.setfocusCommand9.Clickdel=messagebox("删除当前记录吗",32+4,"删除记录")ifdel=6nrec=recn()thisform.grid1.recordsource=""usein学生表usedata\学生表exclthisform.text1.value=recn()gonrecdeletepackifnrec>recn()gonrec-1elsegoendifthisform.refreshthisform.grid1.recordsource="学生表"thisform.grid1.recordsourcetype=1thisform.grid1.setfocusendifCommand9.Refreshifreccount()=0this.enabled=.f.endifCommand7.Refreshifreccount()=0this.enabled=.f.endifCommand7.ClickThisform.closable=.F.del=messagebox("修改此学生信息吗",32+4,"修改记录")ifdel=6xingm=allt(thisform.text1.value)xingb=bo1.valuenianj=bo2.valuebanc=allt(thisform.text3.value)xiaoh=allt(thisform.text2.value)if notempty(xingm)andnotempty(xingb)andnotempty(nianj)repl姓名 withxingmrepl性别withxingbrepl年级 withrepl班次withbancrepl学号withallt(str(val(xiaoh)+1))elsemessagebox("任何一项不能为空!",0,"修改记录")thisform.text1.setfocusreturnendifthisform.refreshendifthisform.grid1.setfocusThisform.refreshCombo1.Initthis.value=this.list(1)Combo2.Clickthisform.text2.value=this.valueCombo2.Initthis.value=this.list(1)Text1.GotFocusthisform.text1.value=姓名bo1.value=bo2.value=thisform.text3.value=班次thisform.text2.value=Text1.Clickthisform.text1.value=bo1.value=bo2.value=thisform.text3.value=班次thisform.text2.value=Text1.GotFocusthisform.text1.value=bo1.value=bo2.value=thisform.text3.value=班次thisform.text2.value=学号Command10.Clickdel=messagebox("此操作将更新原来所有的学号",32+4,"批量添加学号")ifnot returnendifxiaoh=allt(thisform.text4.value)numt=.t.iflen(xiaoh)<>8thenmessagebox("现在学号的长度为"+allt(str(len(xiaoh)))+"位长度必须为8位",0)returnendififsubs(xiaoh,1,1)="0"messagebox(returnendiffori=1tolen(xiaoh)ifnotISDIGIT(subs(xiaoh,i,1))numt=.f.exitendifendforifnotnumtthenmessagebox("学号必须为数字!",0)returnendifrepl allwithallt(str(val(xiaoh)+recn()-1))Text4.Initthis.value=allt(str(year(date())))+"0001"Command8.Clickreleasethisform4、成绩输入。该模块的主要功能是负责录入学生的成绩,并且可以选择要输入成绩的科目。其程序代码如下:Form1.Initthis.autocenter=.t.Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.ifempty(thisform.list1.value)Form1.Initthis.autocenter=.t.Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.ifempty(thisform.list1.value)",0,thisform.list1.value)returnendifsjk=mypath+"\data\"+thisform.list1.valueuse&sjkthisform.releasedoformshuru1shuru1.showCommand2.Clickthisform.releaseList1.Initclosedataallif used(thenusein考试库endifuse"data\考试库.dbf"fori=1torecc()goithis.additem(名称)endforthis.value=this.list(1)usein考试库thisform.cont.setall("value",1)thisform.width=750this.autocenter=.t.*this.showwindow=2Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.thisform.cont.setall("value",1)thisform.width=750this.autocenter=.t.*this.showwindow=2Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.*closedataall*selebFOREACHoProjINthisform.objectsif upper(oProj.Name)=upper("grid1")thisform.removeobject("grid1")endifENDFORthisform.addobject("grid1","grid")thisform.grid1.visible=.f.withthisform.grid1*.recordsource=JUSTFNAME(sjk)*RecordSourceType=2.top=100.left=10.width=thisform.width-40.height=250*.column1.enabled=.f.check=""FORI=1TOTHISFORM.cont.ControlCountif check=check+""+THISFORM.cont.Controls(i).captionendifendforfori=1to.ColumnCountif.columns(i).header1.caption$check.columns(i).enabled=.t.else.columns(i).enabled=.f.endifendforendwiththisform.grid1.visible=.t.thisform.grid1.setfocusthisform.refreshmand3.enabled=.t.mand4.enabled=.t.Command2.Clickusethisform.releaseCommand3.Clickdaan=messagebox("此操作将要清空已输入成绩中的所有数据!",32+4,"清空数据")ifdaan=7 returnendifcheck="语文数学英语物理化学生物地理政治历史"fori=1tofcount()iffiel(i)$checkthenkemu=fiel(i)replall&kemuwith0endifendforCommand4.Clickdaan=messagebox("此操作将要清空已输入成绩中的所有数据,并产生测试数据!",32+4,"测试")ifdaan=7 returnendifcheck="语文数学英语物理化学生物地理政治历史"fori=1tofcount()iffiel(i)$checkthenkemu=fiel(i)replall&kemuwithrand()*100endifendforCommand1.ClickCLOSEdataCommand1.ClickCLOSEdatamypath=sys(5)+sys(2003)sjk=mypath+"\data\"+thisform.list1.valueIF file(sjk)IFDATE()-FDATE(sjk)>=0tianshu=allt(str(date()-FDATE(sjk)))Message="此表修改的日期离今天有"+tianshu+"天"MESSAGEBOX(message,0)daan=MESSAGEBOX("数据库表正确吗(y/n)",4+32,"hao")ELSEENDIF* ENDIF

daan=6IFdaan=6ELSEENDIF

MESSAGEBOX("",0,"数据库表不对,请重新打开")returnCLOSEalldataELSEENDIF

MESSAGEBOX("",0,"数据库表不存在,请打开数据库!")returnSETexclon*closedataSETsafeoffSETtalkoffUSE&sjk &&zonghe=""fori=1tofcount()iffiel(i)$"语文数学英语物理化学生物地理历史政治"zonghe=zonghe+"+"+fiel(i)endifendforifempty(zonghe)messagebox("没有找到单科成绩字段,请重新打开数据库!",0,"成绩管elseendif

returnzonghe=allt(zonghe)zonghe=subs(zonghe,2)waitzongheREPLall总分with&zongheUSE&sjk &&下面这段程序排班名SORTon班次,总分/dtoabcdexyz_.dbfUSEabcdexyz_.dbfCOPYto&sjkUSE&sjkreplall班名with0ERASabcdexyz_.dbfGO1qsb=班次dowhile.t.N=1DOwhile.t.REPL班名withskipN=n+1IF班次<>qsbqsb=班次EXITENDIFENDDOIFeof()EXITENDIFenddo&&结束排班名&&下面排校名USE&sjkSORTon总分/dtoabcdexyz_.dbfUSEabcdexyz_.dbfREPLall校名withrecn()SORTon班次,校名to&sjkUSE&sjk&&结束排校名*wait"名次已排好!" timeout0.5messagebox("总分及名次已排好!")use&sjksharethisform.release*setdefatoc:\List1.Initclosedataallif used(thenusein考试库endifuse"data\考试库.dbf"fori=1torecc()goithis.additem(名称)endforthis.value=this.list(1)usein考试库Command2.Clickthisform.release6、成绩查询。该模块的功能是对每个学生的学生成绩查询和对每个班全部学生成绩的查询。其代码如下:closedataallif used(closedataallif used(thenusein考试库endifuse"data\考试库.dbf"fori=1torecc()goithis.additem(名称)endforthis.value=this.list(1)usein考试库Form1.Initthisform.width=750mand3.enabled=.f.Command2.Clickthisform.releaseCommand3.Clickwiththisformsql=allt(.text1.value)ifempty(sql)thenmessagebox("查询值不能为空",0,"查询")returnthen

endififallt(.combo2.value)="班次"orallt(.combo2.value)="姓名"sql="'"+sql+"'"elsefori=1tolen(sql)shuzi=.t.ifnotisdigit(subs(sql,i,1))thenshuzi=.f.exitendifendforifnotshuzithenmessagebox("如果科目等查询,查询值一定为数值",0,"查询")

endif

endif

returnsql=.combo2.value+.combo3.value+sqlsqlch="setfilterto"+sqlsqlch1="locafor"+sqlendwithsetfilter&sqlch1ifnotfound()thenmessagebox("没有找到,请重新查询",0,setfiltertothisform.refreshreturnendif&sqlchthisform.refreshthisform.grid1.setfocusCommand4.Clickmypath=sys(5)+sys(2003)zaigrid=.f.ifempty(bo1.value)",0,bo1.value)returnendifsjk=mypath+"\data\"+bo1.valueuse&mand3.enabled=.t.mypath=sys(5)+sys(2003)zaigrid=.f.*closedataall*selebFOREACHoProjINthisform.objectsif upper(oProj.Name)=upper("grid1")thisform.removeobject("grid1")endifENDFORthisform.addobject("grid1","grid")thisform.grid1.visible=.f.withthisform.grid1*.recordsource=JUSTFNAME(sjk)*RecordSourceType=2.top=160.left=10.width=thisform.width-40.height=220*.column1.enabled=.f.check="姓名班次总分班名校名语文数学英语物理化学生物地理政治历史"fori=1tofcount()iffiel(i)$checkbo2.additem(fiel(i))bo2.value=bo2.list(1)bo3.displayvalue=bo3.list(1)bo2.enabled=.t.bo3.enabled=.t.endforendwiththisform.grid1.visible=.t.thisform.grid1.setfocusthisform.refresh7、报表打印,包括打印成绩和页面设置两个子菜单。Form1.Initpublicbaobiaopublictiaojianpublicksmcbaobiao="gerencj"ksmc=""fori=1tothis.controlcountForm1.Initpublicbaobiaopublictiaojianpublicksmcbaobiao="gerencj"ksmc=""fori=1tothis.controlcountthis.controls(i).enabled=.f.endforbo1.enabled=.t.mand1.enabled=.t.mand4.enabled=.t.this.autocenter=.t.Command1.ClickCLOSEdatamypath=sys(5)+sys(2003)sjk=mypath+"\data\"+bo1.valueIF file(sjk)use&sjksharesorton班次,总分/dtouseabcdexyz_ELSEENDIF

MESSAGEBOX("",0,"数据库表不存在,请打开数据库!")returnfori=1tothisform.controlcountthisform.controls(i).enabled=.t.endforbo2.enabled=.f.ksmc=JUSTstem(sjk)Command2.Clickdayin=thisform.optiongroup1.valuedocasecasedayin=1ifempty(thisform.text1.value)messagebox("姓名不能为空",0)returnelseendif

tiaojian="姓名='"+allt(thisform.text1.value)+"'"casedayin=2ifbo2.value="全部"tiaojian="1=1"elseendif

tiaojian="班次='"+bo2.value+"'"casedayin=3tiaojian="1=1"endcaselocafor&tiaojianiffound()thensql="REPORTFORM"+baobiao+"for"+tiaojian+"PREVIEW"&sqlelseendif

messagebox("没找到相关记录",0,"打印")*REPORTFORM(baobiao) PREVIEWNOCONSOLECommand3.ClickIfupper(sys(102))="OFF"Messagebox("未连接打印机!",16+0,"打印")else

dayin=thisform.optiongroup1.valuedocasecasedayin=1ifempty(thisform.text1.value)messagebox("姓名不能为空",0)returnelseendifcasedayin=2

tiaojian="姓名='"+allt(thisform.text1.value)+"'"ifbo2.value="全部"tiaojian="1=1"elseendifcasedayin=3

tiaojian="班次='"+bo2.value+"'"tiaojian="1=1"endcaselocafor&tiaojianiffound()thensql="REPORTFORM"+baobiao+"for"+tiaojian+"toprintNOCONSOLE"elseendif

&sqlmessagebox("没找到相关记录",0,"打印")*REPORTFORM(baobiao) PREVIEWNOCONSOLEendifCombo1.Initclosedataallif used(thenusein考试库endifuse"data\考试库.dbf"fori=1torecc()goithis.additem(名称)endforusein考试库this.value=this.list(1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论