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

下载本文档

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

文档简介

1、摘 要:学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本文简要介绍了本学校学生成绩管理的情况和系统的实现过程,阐述了课题来源,系统及需求分析,系统规划,设计及实现情况。关键字:控件、窗体、域。Abstract:Students achievement administrative system is a typical information management system(know as MIS), Its dev

2、elopment include backstage supporter the foundation and maintain and front the twoes respects of development of application programs of data mainly. As to the former require set up data consistency and integrality strong, data security kind storehouse. Require application program not to be complete,

3、 easy to use characteristic of waiting for function the latter. This text has recommended a situation of students achievement management of institute and systematic realization course briefly, Having explained the subject source, the system and demand analyse, the system is planned, Design and reali

4、ze the situation.Key word: Accuse of one, window body, land.目 录摘 要 2一 前言 3二 课题来源 4三 系统及需求分析 4(一)、系统需求 4(二)、可行性分析 4(三)、VFP5.0以上的中文版概述 5四 系统规划 6 (一)、项目规划 6(二)、功能框图 7(三)、规划数据库 7五 系统设计和实现 9(一)、数据分析与项目的建立 9(二)、数据库设计 9(三)、模块设计 10(四)、系统性能测试 31六 结束语 31参考文献 32附 录33一 前 言Visual FoxPro(简称VFP)是Windows平台下的新一代数据库管

5、理系统,它具有优美的图形用户界面(GUI)、面向对象的开发方式、客户/服务品的数据连接以及通过OLE的数据访问工具等特点。最新推出了VFP6.0 、VFP7.0,它在 VFP5.0的基础上更加重了项目管理器、向导、生成器、查询与视图、OLE连接、Active X集成、帮助系统制作、数据导入和导出等方面的功能。“学生成绩管理系统”就是在这样一个优秀的数据库管理系统下开发而成的,可以在VFP5.0以上的版本上运行,也可以生成自身的.EXE文件运行。本系统的特点是:易用性、先进性和广泛性强,可用性和实用性高,良好的用户界面,几乎没有专业和业余的区别,普通用户只要懂得使用WINDOWS操作系统及VFP

6、数据库管理就能使用该系统。本书以怎样建立学生成绩管理系统为主线,全面而系统地介绍了系统的各种功能模块的建立和操作方法。全书分为六章,全面系统地介绍了在VFP数据库管理系统中建立学生成绩管理的项目管理器及其使用,数据表与数据库的建立,查询与视图,表单设计,报表,工作环境的设置方法与步骤等内容。“学生成绩管理系统”是目前学校应该普遍需要使用的学生管理系统之一,鉴于这种情况,提出问题、分析问题,也是我这次毕业论文设计的基本目的。二 课题来源计算机已经成为我们学习和工作的得力助手,今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面

7、:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。 由于我校每个学期都要进行期终考试,每期的考试成绩又要进行登记入册,原来学校是由教务处的一位老师专门管理这件事,主要是进行手写登记,费时又费心,而且有时还出现很多错误登记。现在我校学生成绩管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。作为计算机应用的一部分,使用计算机对学生成绩进行管理,具有着手工管理所无法比拟的优点。例如:不

8、易出错、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情。三 系统及需求分析 (一)、系统需求·尽量采用学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的。·系统应符合学校学生成绩管理的规定,满足对学校学生成绩管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。·系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员

9、补充、维护。·系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。通过调查,要求系统需要有以下功能:1、由于操作人员的计算机知识普遍较差,要求有良好的人机界面,可以存储历届的学生成绩,安全、高效;2、原始数据修改简单方便;3、数据查询方便;4、删除数据方便简单,数据稳定性好;5、数据计算自动完成,尽量减少人工干预;6、强大的报表打印功能;7、退出系统。 (二)、可行性分析 由于本系统管理的对象单一,且每个班级的学生数据内容基本是一致的,涉及的计算中心过程不是很复杂。因此,比较适合于采用数据库管理。在存储量、速度方面都能满足数据库运行的要求。在技术难度方面

10、,由于有指导老师和相关参考文献,特别是网上资料,以及学校给我提供的各种数据要求,完全可以实现。VFP5.0以上的中文版作为一个关系型数据库系统,它提供了面向对象的编程技术,可简化数据库管理,使开发应用程序这项艰辛的工作就象堆积木那样简单方便。另外,用VFP5.0以上的中文版开发的应用程序可以独立运行于Windows平台。 (三)、VFP5.0以上的中文版概述1、概述VFP5.0以上的中文版,它是运行于Windows 9X/2000及Windows NT平台的32位的数据库系统,充分发挥了32位微处理器强大的32位数据处理性能。它功能强大,直观易用,支持客户/服务器结构和面向对象编程,提供多种可

11、视化编程工具,支持最新Internet技术,WWW数据库的设计,最新流行的ActiveX等。VFP5.0以上的中文版完全支持OOP(面向对象)的应用程序设计方法,VFP使用了真正的类,包括继承性,封装性和多态性。用可视方式创建类、查看类及类代码;利用表单向导进行专业级界面设计;对表关系进行可视化查看;可利用OLE自动化来包含其他软件(如Excel、Word)中的对象并使用这些软件。通过VisualFoxPro对象和事件模型,用户可以快速创建和实现无模式(modeless)的应用程序;利用生成器和工具栏,开发人员可以快速开发应用程序,而省去编写大量的代码、定义繁多的属性。总之,VFP5.0以上的

12、中文版是一种适用于专业人员的开发工具。2、数据库概念的发展在FoxPro2.X中一个表就是数据库,实际上是真正的数据库中表的概念。在Visual FoxPro中,数据库指的是可以存储一个或者多个表(.DBF)及视图的关系数据库,这才是真正的关系型数据库的概念。对于一个大型的信息管理系统,它很可能需要对不同的用户各自创建一个大型的文件系统,它包括许多表,而属于一个用户的一套表与属于另一个用户的一套表实际上是相同的,只是名称有所不同,而在FoxPro2.X中,需要建立大量的代码来区别和维护属于不同用户的一套表,这套表的数量可能是非常庞大的,维护编码也是非常庞大的。然而VisualFoxPor中引入

13、的真正的数据库的概念,使这一问题的解决变得非常的容易,设计人员只要为不同的用户创建不同的数据库,然后在这些数据库下建立用户自己的表就可以很容易对每个用户进行区别和维护了。而且,这样的数据库的关系能力更加强大,更加稳定可靠。3、其他新特性VisualFoxPor5.0的面向对象编程,一个很重要的部分是通过使用类体现出来的,类具有对象的继承、封装的特性和一切使用对象编程的优点。可以大大简化编程,在本系统的设计中就充分利用了这种优点(如:自动转换中英文输入法的gstextbox的自定义,VisualFoxPor5.0自带的可视类库WIASTYLE.VCX中的searchclass类等等),可以按照需

14、要给自己的数据库定制相应的菜单样和工具栏。重新设计了项目管理器(ProjectManager),其最简单的用途是作为一种组织工具,保存属于特定应用程序所有文件的列表,而且根据文件类型将这些文件进行划分。它所提供的多页框界面,使对项目文件的添加、建立和编程更加容易。1998年最新推出了VFP6.0中文版,它在VFP5.0的基础上更加重了项目的管理器、向导、生成器、查询与视图、OLE连接、Active X集成、帮助系统制作、数据导入和导出等方面的功能。可以与OFFICE软件集成。四 系统规划 (一)、项目规划 学生成绩管理系统是一个典型的数据库应用程序,由用户设置模块、数据处理模块、成绩输入模块、

15、成绩管理模块、成绩查询模块、报表打印模块等部分组成,特规划功能模块如下: 1、用户设置模块 该模块主要包括添加用户、修改密码和删除用户。 2、数据处理模块 该模块的主要功能是建立登分册和负责录入学生数据。 (1)建立登分册:是指建立考试的名称。(2)学生管理:主要负责录入学生的信息,如录入学生的学号、年级、班次、姓名和性别。由于数据量大,所以该模块的设计也发点应从方便用户操作的角度出发,如采用中英文自动切换。3、成绩输入模块该模块的主要功能是负责录入学生的成绩,并且可以选择要输入成绩的科目。4、成绩管理该模块的主要功能是对学生成绩自动核算,总分、排名。5、成绩查询模块查询模块是一个数据库系统中

16、所必须的模块。方便学校对每个学生的学生成绩查询和对每个班全部学生成绩的查询。6、报表打印模块该模块包括打印成绩和打印设置两个子菜单。(1)打印成绩模块:打印学生平时及毕业要打印他们的数据,于是设置了打印学生个人成绩,打印班级学生成绩和打印班级平均分的报表,以便学生对平时成绩的查询及毕业入档时学生成绩打印入册的原始凭证。(2)页面设置模块:是对打印页面进行设置,如果没有安装打印机,将会提示安装打印机,此时应该点“否”并选“忽略”,否则系统将会产生错误。7、退出功能模块退出功能模块用于结束所有操作,退出学生成绩管理系统。根据以上分析,本系统将建立以下功能模块。学生成绩管理系统主界面用户设置添加用户

17、修改密码删除用户数据处理建立登分册学生管理成绩输入成绩管理成绩查询打印报表学生成绩管理系统主界面打印成绩页面设置退出(二)、功能框图根据系统功能要求,可以将系统分解成几个功能模块来分别设计,功能模块如下图:数据处理退 出报表打印成绩查询成绩管理成绩输入用户设置页面设置打印成绩学生管理建立登分册删除用户修改密码添加用户(三)、规划数据库1、分析数据需求数据库是管理系统的基础,只有建立了反映实际情况的数据库,才可能提供各种有价值的信息,为决策作出依据。在学生成绩管理系统中建立的数据库为:成绩库2、确定数据库由于VFP5.0的以上版本的数据库管理比较完善,在设计数据库时,不同主题的信息应存储在不同的

18、表中,并遵循下列规则:(1)同一信息只保存一次;(2)防止删除有用信息;只有在同一信息只保存一次的前提下,才能减少数据冗余性和出错的可能性,而是为了防止删除有用的信息,最好的解决方法仍然是把不同主题的信息放在不同的表中。根据以上分析,学生成绩管理数据库中建立了以下几个表:学生表、考试库、课程表、用户。(1)学生表学生表的结构。字段名类型宽度小数学号字符型11年级字符型4考号字符型8班次字符型10姓名字符型8性别字符型3学生表的记录。假设在学生表中输入3条记录,则为:学号年级考号班次姓名性别20041928高一12912321谭仲杰男20041086高一10207321文淑华女20041553高

19、一12607321王俊敏女(2)考试库考试库的结构。字段名类型宽度小数名称字符型50时间字符型8考试库的记录。假设在考试库中输入2条记录,则为:名称时间2004年高一期末成绩200501122004年高二期末成绩20050112(3)课程表课程表的结构。字段名类型宽度小数科目字符型20最高分数值型3课程表的记录。假设在课程表中输入3条记录,则为:科目最高分语文115数学98历史96(4)用户用户的结构。字段名类型宽度小数用户名字符型16密码字符型16用户的记录。假设在用户中输入2条记录,则为:用户名密码admin1yxl123456五 系统设计和实现 (一)、数据分析与项目的建立1、数据分析主

20、要是分析各种数据的用途及相互之间的关联,分析数据的类型、数量发生频度和使用频度,并具体弄清楚每个数据所需的范围和位数及来源的时间性,为数据库、文件设计及输出、输入设计提供依据,也为制定合理的数据处理方法提供依据。编码是一项基础工作,编码必须唯一,编码设计的目的是为了便于数据的存储和检索,提高处理的效率和精度,节省处理时间和减少存储空间且方便使用。2、项目的建立项目管理器是“项目”二个字的含义指的就是我们想要编制的应用程序。成名思义,项目管理器就是用于建立应用程序的集成开发环境,它帮助我们设计、修改、运行一些应用程序级件。为了开发“学生成绩管理系统”,首先就要启动项目管理器,创建一个新项目。启动

21、项目管理器,创建新项目学生成绩管理系统的操作步骤是:第1步:启动Microsoft Visual FoxPro6.0,进入 “Microsoft Visual FoxPro”开发环境。第2步:单击“文件”,单击“新建”,弹出“新建”窗口。第3步:选中“项目”,单击“新建文件”按钮,弹出“创建”窗口。第4步:把所有要开发的“学生成绩管理系统”项目保存在一个文件中,本系统保存在E:学生成绩管理系统目录下,在“项目文件”里输入“学生成绩管理系统”,作为该项目的文件名。在“存为类型”中选取“项目”,单击“保存”按钮,弹出“项目管理器”窗口。 (二)、数据库设计1、怎样建立“学生成绩管理系统”中的数据库

22、?在Visual FoxPro6.0中,数据库由表、视图以及它们之间的关系集合而成。创建一个新数据库的操作步骤如下:第1步:在项目管理器窗口中,选中“数据”选项卡,单击选中“数据库”图标。第2步:单击“新建”按钮,再单击“新建数据库”,弹出“创建”窗口,在“数据库名”框中输入“成绩库”,作为学生成绩管理的数据库文件名,在“存为类型”栏中,选中“数据库”,并将该文件保存在E:学生成绩管理系统data中。第3步:单击“保存”按钮,弹出“数据库设计器成绩库”窗口,显示出了一空的数据库设计窗口,并且“数据库设计器”变为有效。至此,我们创建了一个空的学生成绩管理数据库。2、怎样创建数据库中的表?下面我们

23、在成绩库中创建学生表、考试库、课程表、用户。(1)建立学生表建立学生表的操作步骤如下:第1步:在“数据库设计器”窗口的工作表中,单击鼠标右键,弱出一个“命令”菜单。第2步:单击“新建表”,弹出“新建表”窗口。第3步:单击“新建表”按钮,弹出“创建”窗口,在“保存在”框中,选中“data”文件夹,在“输入表中”中输入“学生表”,在“存为类型”框中,选中“表/DBF”。第4步:单击“保存”按钮,弹出“表设计器学生表.DBF”窗口,在“字段”选项卡中,输入学生表每个字段的字段名、类型、宽度、小数位数,完成表的结构。第6步:单击“否”按钮,返回到“数据库设计器成绩库”窗口。至此,在“数据库设计器成绩库

24、”窗口中,可以看到创建了一个“学生表”。(2)建立考试库、用户、课程表的操作方法跟建立学生表的操作方法相同。 (三)、模块设计1、用户登录窗口功能模块如果没有进行特殊设置,每次进入系统都将显示登录界面(如右图),它对操作员进行口令验证,防止非法用户进入系统,任意增加、修改和删除数据。在选择或输入用户并提供正确的密码后,点“确定”按钮即可进入系统,点“取消”放弃登录,退出系统。如果不能提供正确密码,在点“确定”按钮后会有相应提示,如果连续三次都输入了错误的密码,系统将自行关闭。2、用户设置模块,在本模块中了建立三个子模块,即添加用户、修改密码、删除用户。(1)添加用户功能模块。其程序代码如下:C

25、ommand1.clickuse 用户 exclpublic u1,pw1u1=allt(thisform.text1.value)pw1=allt(thisform.text2.value)if empty(thisform.text1.value) messagebox ("用户名不能为空!",48+0,"添加新用户") thisform.text1.setfocus else locate for allt(用户名)=u1 if found() messagebox("用户名已经存在,请输入其他用户名!",48+0,"

26、添加新用户") thisform.text1.setfocus else if thisform.text2.value=thisform.text3.value tempstr='' for i=1 to len(trim(pw1) tempchr=bitxor(asc(subs(pw1,i,1),123) tempstr=tempstr+chr(tempchr) endfor dimension b(1,2) b1,1=u1 b1,2=tempstr append from array b messagebox("成功添加新用户!",64+0,

27、"添加新用户") release thisform else messagebox("请输入相同密码!", 48+0,"添加新用户") thisform.text3.setfocus endif endifendifcommand2.clickrelease thisformtext3.KeyPressLPARAMETERS nKeyCode, nShiftAltCtrlif nkeycode=13&&enter mand1.clickendif(2)修改密码功能模块。其程序代码如下:Combo1.Interactiv

28、eChangethisform.refreshText1.KeyPressLPARAMETERS nKeyCode, nShiftAltCtrlif nkeycode=13 mand1.clickendifCommand1.Clickpublic uu=allt(bo1.value)tempstr=''for i=1 to len(allt(trim(thisform.text1.value)tempchr=bitxor(asc(subs(thisform.text1.value,i,1),123)tempstr=tempstr+chr(tempchr)endfor locat

29、e for allt(用户名)=allt(bo1.value) and allt(密码)=tempstrif found()do form changepw2elsemessagebox("密码有误,请重新输入!",48+0,"修改密码")thisform.text1.setfocusendifCommand2.Clickrelease thisformForm1.Init*main.ole1.simpletext=this.captionuse 用户 exclText2.KeyPressLPARAMETERS nKeyCode, nShiftAltCt

30、rlif nkeycode=13&&enter mand1.clickendifCommand1.Clickuse 用户 exclpublic pwpw=allt(thisform.text1.value)if pw=allt(thisform.text2.value)tempstr=''for i=1 to len(trim(pw)tempchr=bitxor(asc(subs(pw,i,1),123)tempstr=tempstr+chr(tempchr)endforloca for allt(用户名)=allt(u)if found() thenrepl

31、密码 with tempstrrelease thisformmessagebox ("密码修改成功!",64+0,"修改密码")endifelsemessagebox ("密码未被确认,请输入相同密码!", 48+0,"修改密码")thisform.text2.setfocusendifCommand2.Clickrelease thisformForm1.Initmain.ole1.simpletext=this.captionForm1.Unloadmain.ole1.simpletext="修改密

32、码"release pwreturn(3)删除用户功能模块。其程序代码如下:Form1.Initmain.ole1.simpletext=this.captionCombo1.InteractiveChangethisform.refreshCommand1.Clickif reccount()<=1 messagebox("无法删除最后一个用户!",48+0,"删除用户")else tempstr='' for i=1 to len(trim(thisform.text1.value) tempchr=bitxor(as

33、c(subs(thisform.text1.value,i,1),123) tempstr=tempstr+chr(tempchr) endfor locate for allt(用户名)=allt(bo1.value) if found() and allt(密码)=tempstr a=messagebox("确实要删除此用户吗?",32+1,"删除用户") if a=1 delete pack messagebox("成功删除用户!",64+0,"删除") bo1.value="" this

34、form.text1.value="" endif else messagebox("密码有误,请重新输入!",48+0,"删除用户") thisform.text1.setfocus endifendifCommand1.GotFocusthis.picture=mypath+"picture删除focus.bmp"Command1.LostFocusthis.picture=mypath+"picture删除but.bmp"Command2.Clickrelease thisformComm

35、and2.LostFocusthis.picture=mypath+"picture取消.bmp"Command2.GotFocusthis.picture=mypath+"picture取消focus.bmp"Text1.KeyPressLPARAMETERS nKeyCode, nShiftAltCtrlif nkeycode=13 mand1.clickendif3、数据处理模块数据处理菜单下面的子菜单有:建立登分册和学生管理。(1)建立登分册,是指建立考试的名称。其程序代码如下:Form1.Initthisform.text1.setfocust

36、his.autocenter=.t.Command1.Clicksjk=allt(thisform.text1.value)if empty(sjk)MESSAGEBOX("请输入考试名称")thisform.text1.setfocusreturnendifsjk="data"+sjkclearset path to dataclose data alluse 学生表 in acopy to &sjkuse &sjkuse 课程表jls=recc()for i=1 to jlsuse 课程表 go ikemu=科目ALTER TABLE

37、 (sjk) ADD &kemu n(3)close data allendforALTER TABLE (sjk) ADD 总分 n(4)ALTER TABLE (sjk) ADD 班名 n(5)ALTER TABLE (sjk) ADD 校名 n(5)close data allmessagebox(sjk+"已建立",0,"成绩管理")Command2.Clickuse data考试库filedbf=allt(thisform.text1.value)+".dbf"if file(filedbf) thenloca fo

38、r allt(名称)=filedbfif found()messagebox("此考试库己存在!",0,"成绩管理")elseappe blankrepl 名称 with filedbfmessagebox(filedbf+"也成功添加到考试库!",0,"成绩管理")endifelsemessagebox("请先建立成绩表!",0,"成绩管理")thisform.text1.setfocusendifCommand3.Clickthisform.releaseCommand4

39、.Clickdaan=messagebox("此操作将清空考试库里的成绩项目!",4+32,"成绩管理")if daan=6 thenuse data考试库zapendif(2)学生管理。主要负责录入学生的信息,如录入学生的学号、年级、班次、姓名和性别。其程序代码如下:Command1.Clickmand3.enabled=.t.mand4.enabled=.t.go topthisform.refreshthis.enabled=.f.mand2.enabled=.f.thisform.grid1.setfocusCommand1.Refreshif

40、reccount()=0 this.enabled=.f.endifCommand2.Clickmand3.enabled=.t.mand4.enabled=.t.skip -1if recno()=1 go top this.enabled=.f. mand1.enabled=.f.endifthisform.refreshthisform.grid1.setfocusCommand2.Refreshif reccount()=0 this.enabled=.f.endifCommand3.Refreshif reccount()=0 this.enabled=.f.endifCommand

41、3.Clickmand1.enabled=.t.mand2.enabled=.t.skip +1if eof() go bottom this.enabled=.f. mand4.enabled=.f.endifthisform.refreshthisform.grid1.setfocusCommand4.Refreshif reccount()=0 this.enabled=.f.endifCommand4.Clickmand1.enabled=.t.mand2.enabled=.t.go bottomthisform.refreshthis.enabled=.f.mand3.enabled

42、=.f.thisform.grid1.setfocusCommand5.Clickdel=messagebox("清空此学生表中所有数据吗?",32+4,"修改记录")if del=6 thenuse in 学生表use data学生表 exclzapuse data学生表 shareendifCommand6.ClickThisform.closable=.F.del=messagebox("添加学生吗?",32+4,"添加记录")if del=6xingm=allt(thisform.text1.value)x

43、ingb=bo1.valuenianj=bo2.valuebanc=allt(thisform.text3.value)if not empty(xingm) and not empty(xingb) and not empty(nianj) thencalc max(学号) to xiaohappe blankrepl 姓名 with xingmrepl 性别 with xingbrepl 年级 with nianjrepl 班次 with bancrepl 学号 with allt(str(val(xiaoh)+1)elsemessagebox("任何一项不能为空!",

44、0,"添加记录")thisform.text1.setfocusreturnendifthisform.grid1.recordsource=""thisform.grid1.recordsource="学生表"thisform.refreshendifthisform.grid1.setfocusCommand9.Clickdel=messagebox("删除当前记录吗?",32+4,"删除记录")if del=6 nrec=recn() thisform.grid1.recordsource

45、="" use in 学生表 use data学生表 excl thisform.text1.value=recn() go nrec delete pack if nrec>recn() go nrec-1 else go nrec endif thisform.refresh thisform.grid1.recordsource="学生表" thisform.grid1.recordsourcetype=1 thisform.grid1.setfocusendifCommand9.Refreshif reccount()=0 this.ena

46、bled=.f.endifCommand7.Refreshif reccount()=0 this.enabled=.f.endifCommand7.ClickThisform.closable=.F.del=messagebox("修改此学生信息吗?",32+4,"修改记录")if del=6xingm=allt(thisform.text1.value)xingb=bo1.valuenianj=bo2.valuebanc=allt(thisform.text3.value)xiaoh=allt(thisform.text2.value)if not

47、empty(xingm) and not empty(xingb) and not empty(nianj) thenrepl 姓名 with xingmrepl 性别 with xingbrepl 年级 with nianjrepl 班次 with bancrepl 学号 with allt(str(val(xiaoh)+1)elsemessagebox("任何一项不能为空!",0,"修改记录")thisform.text1.setfocusreturnendifthisform.refreshendifthisform.grid1.setfocusT

48、hisform.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.

49、text3.value=班次thisform.text2.value=学号Text1.GotFocusthisform.text1.value=姓名bo1.value=性别bo2.value=年级thisform.text3.value=班次thisform.text2.value=学号Command10.Clickdel=messagebox("此操作将更新原来所有的学号?",32+4,"批量添加学号")if not del=6returnendifxiaoh=allt(thisform.text4.value)numt=.t.if len(xiaoh

50、)<>8 thenmessagebox("现在学号的长度为"+allt(str(len(xiaoh)+"位长度必须为8位",0)returnendifif subs(xiaoh,1,1)="0"messagebox("学号第一位不能为0",0)returnendiffor i=1 to len(xiaoh)if not ISDIGIT(subs(xiaoh,i,1)numt=.f.exitendifendforif not numt thenmessagebox("学号必须为数字!"

51、,0)returnendifrepl all 学号 with allt(str(val(xiaoh)+recn()-1)Text4.Initthis.value=allt(str(year(date()+"0001"Command8.Clickrelease thisform4、成绩输入。该模块的主要功能是负责录入学生的成绩,并且可以选择要输入成绩的科目。其程序代码如下:Form1.Initthis.autocenter=.t.Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.if empty(thisform.list1.va

52、lue)messagebox("请选择成绩表!",0,thisform.list1.value)returnendifsjk=mypath+"data"+thisform.list1.valueuse &sjkthisform.releasedo form shuru1 shuru1.showCommand2.Clickthisform.releaseList1.Initclose data allif used("考试库") thenuse in 考试库endifuse "data考试库.dbf"for

53、i=1 to recc()go ithis.additem (名称) endforthis.value=this.list(1)use in 考试库Form1.Initthisform.cont.setall("value",1)thisform.width=750this.autocenter=.t.*this.showwindow=2Command1.Clickmypath=sys(5)+sys(2003)zaigrid=.f.*close data all*sele bFOR EACH oProj IN thisform.objects if upper(oProj.Name)=upper("grid1") then thisform.removeobject("grid1") endifENDFORt

温馨提示

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

评论

0/150

提交评论