《VF程序设计》课程设计报告.doc_第1页
《VF程序设计》课程设计报告.doc_第2页
《VF程序设计》课程设计报告.doc_第3页
《VF程序设计》课程设计报告.doc_第4页
《VF程序设计》课程设计报告.doc_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

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

文档简介

重庆科技学院课程设计报告 院(系):_经济管理学院_专业班级: 市场营销普本08-01 学生姓名: 毛 杨 洋 学 号: 2008441637 设计地点(单位)_第一实验楼I305、I302_ 设计题目:_ 学籍管理系统 完成日期:2010年 1 月1日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院课程设计任务书设计题目:学籍管理系统学生姓名毛杨洋课程名称VFP程序设计实训专业班级营销普2008地 点I301、302起止时间2009.12.28-09.12.31设计内容及要求设计内容:学籍管理系统设计要求:按设计指导书要求,完成系统模块的设计及代码的编写,并将系统基本调试通过,最后写出设计报告。设计参数1、 各表中的记录不少于8条; 2、 与同组人员一起进行数据库的设计和模块的划分;3、 完成所选模块的设计、编码与调试。进度要求2009.12.28 系统需求分析、功能模块划分2009.12.29 数据库设计2009.12.30 完成表单的设计和代码的编写2009.12.31 完成程序的调试并完成设计报告的编写参考资料1 求实科技.Visual FoxPro 信息管理系统开发导航.北京:人民邮电出版社.2008;2 刘卫国著Visual FoxPro程序设计教程M.第二版.北京:北京邮电大学出版社.2007年12月。其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:袁柱 何敬宣 09年 12 月 25 日 重庆科技学院VF程序设计课程设计报告摘 要 Visual FoxPro是一个非常有用的软件,运用Visual FoxPro设计出来的学籍管理系统,对学校进行无纸化简洁操作,快速而准确的找出学生信息效用显著。学籍管理是每个学校都必须做的,为学生建立一个永久档案,管理一个学生从入学到毕业的所有信息。在学生入学的时候添加该生信息,作为学生档案,在学生在校学习期间,根据该生情况,随时做出修改,直至毕业。同时要设计的还有查询系统和管理功能,方便及时的找出学生对应的信息,作出修改。关键字: 表单 日常管理 毕业管理 查询模块 用户管理 目录摘 要I目录II1 需求分析11.1 问题描述11.2 基本要求12 概要设计22.1 数据库的设计22.1.1 学生记录表22.2系统用户表32.3结构框架图32.3.1日常管理32.3.2毕业管理42.3.3. 查询模块42.3.4用户管理模块42.3.5设计主程序43 详细设计53.1 设计登陆模块53.2.主界面设计63.3日常管理模块73.3.1.设计日常操作功能选择界面73.3.2记录管理表单的设计83.4毕业管理模块83.5设计查询模块93.6用户管理模块114功能模块的调试及测试145总 结176 致 谢187 参考文献198 附 录204.1设计主程序204.2设计登陆模块214.3主界面设计224.4日常管理模块234.5毕业管理模块284.6 设计查询模块294.7 用户管理模块31361 需求分析1.1 问题描述 学籍管理系统是每个学校都务必要做的一件事情,即为学生建立一个永久的档案,管理一个学生从入学到毕业期间所有的信息。在学生入学时添加该学生的具体信息,作为学生档案,学生在校学习期间根据学生情况,随时修改直至毕业。此外,本系统还包括学生信息的查询和系统管理功能。1.2 基本要求 掌握Visual ForPro6.0的基本操作方法,了解数据库的基本概念,并具备一定的VFP程序开发能力。 巩固和加深对Visual ForPro 语言基础知识的理解,提高综合运用所学课程知识的能力。 培养学生的实际动手操作能力。 通过实际的课程设计,初步掌握简单软件的分析方法和设计方法。 需要了解排序算法。 能熟练地错误程序进行调试,能正确解释和分析实验结果。 2 概要设计2.1 数据库的设计在本系统中,包括了学生信息记录表以及系统用户表,为了便于学习,都采用了自由表的设计。2.1.1 学生记录表在本系统中,所有学生的记录都放在一个自由表中,表格文件名为表格文件命名为STUDENT.DBF,其结构如表2.1所示。表2.1 学生记录表结构编号字段名字段类型字段长度小数位数作用1姓名字符型10无学生姓名2学号 字符型8无学生学号3班级字符型10无学生班级4性别字符型2无学生性别5名族字符型4无学生名族6出生年月字符型15无学生出生日期7政治面貌字符型10无学生的政治面貌8家庭地址字符型50无学生的家庭地址9家长姓名字符型8无学生父亲姓名10联系电话字符型20无学生父亲电话11个人简介 字符型254无学生的个人简介12备注备注型4无学生的其他情况说明 以上是学生记录的表说明,我们还可以根据本单位的实际情况来修改其中的部分字段,来适应开发的需要。2.2系统用户表学籍资料代表了一个学生的全部信息,是不允许随意修改的,所以本系统采用了一定的保密措施,主要是用户的管理,所有的用户信息保存在USER.DBF表中,结构如表2.2所示。表2.2 用户记录表结构编号字段名字段类型字段长度小数位数作用1NAME字符型10无用户名称2PASSWORD字符型10无用户密码 在程序运行时首先核实使用者的用户名和密码,只有合法的用户才能使用该系统。2.3结构框架图学籍管理系统日常管理添加新学生 删 除修 改 修 改 毕业管理 查 询用户管理添加新学生 删 除返 回 查 找 退出系统 返 回图2.1 学籍功能设计学籍管理系统包括了:日常管理、毕业管理、查询、用户管理、退出系统5大模块。其中,日常管理系统又分为:添加新学生、删除、修改、返回这4部分;用户管理系统又分为:添加新学生、删除、修改、查找、返回5部分。基本上满足了学籍管理的必需功能。2.3.1日常管理日常管理模块完成对学生信息日常操作,如新生报到时为该生建立信息档案,以及修改、删除的众多功能。在系统设计中,为了保持操作界面的一致性,所有的日常操作都使用统一的操作界面,根据用户的选择来显示操作的功能按钮。2.3.2毕业管理学生的在校时间都有一定的期限,超过这个期限,学生将离开学校,学校就完成了对该生的管理,称之毕业。在该系统中提供了毕业管理,将离开学校的学生信息从学生库中删除。2.3.3. 查询模块查询功能是一个信息系统中不可缺少的部分,本系统中设计的查询功能更为方便,使用者只需输入所要查询学生的学号,即可找到该生的全部信息。2.3.4用户管理模块该模块是对系统的使用者进行管理的场所,包括新建用户,修改、查询用户等的功能。 以上是对学籍管理系统的功能设计,读者开发时可进行必要的修改。2.3.5设计主程序程序在运行期间要使用部分的变量来传递数据,所有这些变量都是在程序中定义的。 打开Visual FoxPro程序,进入设计界面,然后新建一个项目文件,以“学籍管理”保存,打开该项目的管理器,在管理器的“代码”选项卡中添加一个名为“MAIN”的代码文件,并在“MAIN”代码文件窗口中添加代码3 详细设计3.1 设计登陆模块登录界面的作用是为了验证用户的合法性,只有合法的用户才能进入系统,并且要求使用者提供密码。通过上述措施就限制了非法用户的进入,确保了信息的安全性。在“成绩管理”工程中添加一个新的表单,显示图片,1个CommandGroup控件,分隔表单显示区域,3个Lable控件,显示提示信息:3个Text控件,接受用户的输入:2个Command控件,完成控制功能,上述控件的主要属性设置如表3.1所示。表3.1 登录界面控件属性设置编号名称类型属性名称属性值1CommandGroupCommandGroupButtonCount02Image1ImagePicture光盘:素材title.jpg3Lable1LableCaption用户名4Lable2LableCaption密码5Lable3LableCaption当前日期6Text1Text7Text2Text8Text3TextEnable.F.9Command1CommandCaption登录10Command2CommandCaption返回设计完成的登录界面如下图3.1所示:图3.1 学籍管理系统设计界面3.2.主界面设计 该系统提供的所有都放置在一个统一的界面中供用户选择,该界面称之为主界面。本系统的主界面采用了按钮交互方式。在“学籍管理”项目中添加一个新表单,命名为“MAIN”,并将caption属性设置为“学籍管理系统主菜单”。在该表单上添加一个image控件,显示背景图片,5个Command控件,执行系统的5项功能,上述控件的只要属性设置如表3.2所示。表3.2 登录界面控件属性设置编号名称类型属性名称属性值1Image1ImagePicture光盘:素材main_bp.jpg2Command1ComandCaption日常管理3Command2ComandCaption毕业管理4Command3ComandCaption查询5Command4ComandCaption用户管理6Command5ComandCaption退出系统设计完成的界面如图3.2所示。图3.2 学籍管理系统设计界面3.3日常管理模块3.3.1.设计日常操作功能选择界面在“学籍管理”项目添加一个新的表单,命名为“RCHCZ”,在该表单上放置3个COMMANDGROUP控件用来分隔表单显示界面,2个LABEL控件用来显示提示信息;一个TEXT控件接受用户的输入,一个COMMAND控件完成控制功能。上述控件的属性设置如表3.3所示。表3.3 日常操作界面控件属性设置编号名称类型属性名称属性值1CommandGroup1CommandGroupButtonCount02CommandGroup2CommandGroupButtonCount03CommandGroup3CommandGroupButtonCount44Lable1LableCaption日常操作5Lable2LableCaption学号6Text1TextEnabled.F.7Command1CommandCaptionEnabled确定 .F.在表单中应用了CommandGroup控件,其中CommandGroup4提供了4个控件来来执行相应的功能.用鼠标右键在控件上单击,选择弹出菜单元的”编辑命令”,即可对控件进行修改,如调整控件的位置,大小等.设计完成的界面如图3.3所示:图3.3 日常操作设计界面该界面为使用者提供了一个操作学籍信息库的统一方法,为了能够区分用户的操作目的,在表单的INIT行为中设置了两个全局变量,用来保存用户在此表单中选择的操作功能和输入的学生学号.3.3.2记录管理表单的设计用户在上面介绍的日常操作的功能表单中选择一项具体的功能后,系统将调用APPE表单,即记录管理表单来完成用户的操作。设计完成的表单如图3.4所示:图3.4 记录管理窗口设计界面3.4毕业管理模块学生完成一定年限的学习或者升入高一级的学校时称该学生毕业,毕业管理就是对这部分学生的管理,通用的方法是将毕业的学生从学籍信息库中删除,本系统设计的是以班级为单位进行删除。在“学籍管理”项目中添加一个新表单,命名为“BY”,并将Caption属性设置为“毕业管理”,然后添加一系列的控件,1个CommandGroup控件用来分隔表单显示区域;2个Lable控件显示提示信息;1个Text控件接受用户的输入;2个Command控件完成控制功能。这些控件的重要属性设置如表3.4所示。表3.4 控件属性设置编号名称类型属性名称属性值1CommandGroup1CommandGroupButtonCount02Lable1LableCaption毕业管理3Lable2LableCaption班级4TextText5Command1CommandCaption毕业6Command2CommandCaption返回设计完成的界面如图3.5所示。图3.5 毕业管理设计界面3.5设计查询模块在本系统中,使用者经常需要查询某个学生的学籍信息,为此设计查询模块。在“学籍管理”项目中添加一个新的表单,命名为为“CHX”,将Caption属性设置为“查询窗口”,添加3个CommandGroup控件分隔表单显示区域;2个Command控件执行查询功能和返回功能;12个Lable控件显示姓名等提示信息;7个Text控件,显示查询的姓名的信息;3个Combo控件显示民族等学籍信息;1个Edit控件显示个人简介信息;1个Line控件,美化界面。上述控件的主要属性设置如表3.5所示。表3.5 查询设计界面控件属性设置编号名称类型属性名称属性值1CommangGroup1CommangGroupButtonCount02CommangGroup2CommangGroupButtonCount03CommangGroup3CommangGroupButtonCount04Lable1LableCaption记录查询窗口5Lable2LableCaption姓名6Lable3LableCaption性别7Lable4LableCaption民族8Lable5LableCaption出生日期9Lable6LableCaption班级10Lable7LableCaption学号11Lable8LableCaption政治面貌12Lable9LableCaption家长姓名13Lable10LableCaption联系电话14Lable11LableCaption家庭地址15Lable12Lable Caption个人简介16Text1Text17Text2Text18Text3Text19Text4Text20Text5Text21Text6Text22Text7Text23Text8Text24Combo1ComboRowSourceTypeRowSource1- 值男,女25Combo2ComboRowSourceTypeRowSource1- 值汉族,其他26Combo3ComboRowSourceTypeRowSource1- 值团员,其他27Edit1Edit28Line1EditWidth50229Command1CommandCaption查询30Command2CommandCaption返回设计完成的界面如图3.6所示。图3.6 记录查询窗口设计界面3.6用户管理模块系统的使用者是有限制,只有允许的用户才能进入使用,浏览信息库中的内容。在该系统中设计用户管理模块,用来对系统的使用者进行管理,确保系统的安全。为“学籍管理”项目添加一个新表单,命名为“YHGL”,设置Caption属性为“用户管理”,添加3个commandgroup控件分割表单显示区域;3个lable控件显示提示信息;2个text控件接受用户的输入;4个command控件完成控制功能。控件属性如表3.7表示。表3.7 用户管理设计界面控件属性设置编号名称类型属性名称属性值1Commandgroup1CommandgroupButtonCount02Commandgroup2CommandgroupButtonCount03Commandgroup3CommandgroupButtonCount54Command1CommandCaption确定5Command2CommandCaption查找6Command3CommandCaption确定7Command4CommandCaption确定8Lable1LableCaption用户管理窗口9Lable2LableCaption用户名10Lable3LableCaption密码11Text1Text12Text2Text在上表中Commandgroup3控件的ButtonCount属性为5,包括5个按钮。在该控件上用鼠标右键单击,执行弹出菜单中的“编辑”命令,设置这5个按钮的属性如表3.8所示。表3.8 用户管理设计界面控件属性设置编号名称类型属性名称属性值1Command1CommandCaption增加新用户2Command2CommandCaption查找3Command3CommandCaption修改4Command4CommandCaption删除5Command5CommandCaption返回设计完成的界面如图3.7所示。 图3.7 用户管理设计界面到此用户管理模块已经全部设计完成了。这个系统的设计工作就完成了。4功能模块的调试及测试我们在编程时难免都会出错,出错以后怎样找出错误的地方就变得很重要了,只有正确找出错误的地方才可以将其改正。 一、如果程序中有语法性的错误,当程序运行到错误的语句时系统就会停下来,并提示我们程序有错,往往还会说出是什么错误,如“命令中含有不能识别的短语或关键字”,并给出选择“取消”、“挂起”、“忽略”、“帮助”四个选择,它们的意思分别是: 取消中止程序运行,回到命令窗口,相当于执行了cancel命令,在程序中创建的所有变量被释放(除公共变量),但数据库及数据表一般保持当时的状态,您可以用browse命令查看数据表的内容即记录指针所在的位置等等; 挂起暂停程序,相当于执行了suspend命令,这时程序中的所有变量都保持原值,您可以用?命令查看变量的值,当然也可以查看数据表的情况; 忽略忽略所出现的错误,即跳过出错的语句继续执行后面的语句; 帮助显示有关出错的帮助信息,对于错误做更详细的说明。不过很多时候都没什么帮助。 如果一眼就能看出问题出在哪,那么可以用取消,然后进到程序中找出错误所在,将其改正。在选择了取消后,可能这时有表单是打开的,那么用鼠标点一下该窗口,然后调菜单上的文件关闭。如果菜单是自己的自定义菜单,用set sysmenu to default回到系统菜单。改完后,再次运行程序前,最好将所有的数据库及表关闭,以免在程序打开一个数据表时出现表已打开的错误,比较好的办法是在程序开头先关闭所有的数据库及表。关闭所有数据库的命令是:close databases all,关闭所有表的命令是:close tables all。 如果不知道问题出在程序的哪个地方,那么就选择挂起,系统会弹出一个调试器窗口显示出错的语句,在跟踪窗口的黄色箭头所指的语句就是出错的语句。这时不要马上改程序,因为程序还没有结束运行,如要改程序应先终止程序运行,按调试中的终止按钮,然后退出调试器(菜单上的文件退出),接下来与上面选择取消后的处理方法相同。 一般不要选择忽略,因为程序中上下语句都有很紧密的关系,当一条语句出错后,如果继续运行,可能会出现很多错误,而后面出错的语句可能并没有错,是因为前面错了才导致后面的语句出错,如果前面正确,后面也会正确,因此对于初学者来说,选择忽略不利于找出错误所在。 二、有些时候,程序中的语句并没有出错,但是运行的结果却不是我们所要的结果,这往往是因为我们用错了语句,虽然语句本身是正确的,但用在了不该用的地方、或者该用的地方没有用、又或者语句的先后顺序错了等等,都可能导致这种情况。 一旦出现这种情况往往比上一种情况麻烦些,不容易一下看出问题出在哪里,那么需要我们仔细分析程序中的语句,看是否用的对,是否达到了我们的要求。 比如在我们前面的日常管理程序中,调出学籍资料表单,按了新增后,表单中的各控件的内容没有变,那么这就有两种可能,一是没有增加一条空记录,二是没有将控件刷新,这就要我们根据具体问题具体分析。 有时光看语句,怎么也看不出问题在哪,这就用采用一些辅助手段,最常用的辅助手段是在可能发生问题的地方将程序挂起,即在程序中加一句suspend,当程序运行到这里时将程序挂起,然后在命令窗口中查看各有关变量的值或数据表的情况。比如上面的错误,我们可以在新增按钮的click事件的结尾加一句suspend,当程序运行到这里时就会挂起,我们可以用browse查看数据表,如果发现里面没有一个空记录,那么说明漏了加空记录的语句。如找到错误了,记得在命令窗口中运行cancel,将程序终止再去修改程序。 另外在程序挂起时我们可以调出器,看程序执行到什么地方,调的方法是在菜单上的工具调试器,可以在其中的监视窗口查看各表达式的值,在局部窗口查看各变量的值,而且可以在窗口中长条文本框中输入一个表达式或变量,调试器会显示出它们的值。 如还不能找到问题,按可单步执行程序,即按一下运行一条语句,这样可以更有助于找到问题。至于调试器的其它功能,我们将在以后的课程中讲解。 常见错误 启动一个表单后,再用代表这个表单的变量去调用它时却不行。调用表单的变量与其它变量一样,如是在一个子程序中创建的,当这个程序运行结束后,这个变量也就释放了,即这个变量不再存在了,虽然表单还在,故不能用这个变量去调用该表单了。解决的方法是将其设为公共变量,或在更高层的程序中创建,还可以在调用表单命令中加上“linked”子句(do .linked)。 在表单中的一个事件中创建了一个变量,但在表单的其它地方却不能使用。一个事件程序相当于一个子程序,当子程序运行完后在其中创建的变量也就没不存在了。解决的方法是将其设为公共变量,或在更高层的程序(如调用表单的程序)中创建。 常常在表格中或其它地方看不到数据表中的记录。这往往是因为记录指针到尾部,即EOF()为真。 修改记录时却个修改了另一个记录。这往往是因为进入修改后又做了查询,查询后没有将记录指针返回到原记录。 进入一个循环后就死机了。这是因为没有设置跳出循环的条件,或者条件永远不能满足,比如一个循环的跳出条件是当一个变量的值达到某一数值,每循环一次应将该变量加1,但忘了加1的语句,就会造成死循环,因为变量的值永远达不到预定的数值。 查询英文时,明明有的记录查不到。这可能是大小写不一样造成的,比如:locate for name=crops,如果数据表中的是“CROPS”那么就查不到。解决的办法:locate for upper(name)=CROPS。 不管是英文还是中文,还是查不到所要的记录。这种情况很可能是输入的查询值后面有空格,比如还是上面那个查询语句,如果操作者不小心在文本框中输入了“crops_”(下划线代表有一个空格),而这个空格往往是不容易被发现的,那么查询时就可能找不到,除非数据表中的数据也刚好是这样,这里要注意一点一个字符字段的内容如小于字段的长度,系统会自动为该字符后面加上空格,比如上面那个例子,如果name的长度是8,则“crops”这个记录name的值就是“crops_”(后面有三个空格),那么有三个空格和有一个空格的就不相等。解决的办法是用trim()函数将输入的查询值后面的空格去掉,更进一步,为了防止不小心前面也加了空格,可用alltrim()将前后的空格都去掉。 用do form启动一个表单后,应等关闭表单后再执行do form后面的语句,但表单启动后却接着运行后面的语句。这是因为表单的windowtype属性没有设为“1-模式”,解决的办法不用我说了吧。 当在数据表中移动记录指针等操作时出现意想不到的错误。往往是因为没有记录。 5总 结VFP程序设计实训课程是对先前所学VF课程的深入发展与巩固。由于我们小组所进行的设计内容是:学籍管理系统。所以在进行程序设计时,对如何建DBF表格、项目文件、表单以及程序命令要非常的熟悉。在进行程序设计的时候,刚开始,由于对课本上一些知识点的生疏,因而有些时候会不知如何下手,也会看不懂命令所表达的意思。因此,对书本的依赖比较大。也让我知道了,每一门课程的学习都是需要下苦功夫的,学习的知识都是前后连接的,前面的没有学好的话,后面的学习就很困难。有时候,虽然很小心,还是会发生程序无法运行,却不知道如何改正的情况,而不得不去请教老师。在小组里,我主要是负责“设计查询模块”。在本系统中,使用者经常需要查询某个学生的学籍信息,为此设计查询模块。添加新表单的时候,对表单的查询设计界面控件属性逐个设置,而且表单的代码比较长,耗费了极大精力才弄清楚。因此,有时候会觉得在上课时,讲的似乎只是初步阶段,而程序设计,则是到了深入研究阶段,故而吃力。通过这次实训,对VFP课程里面的表单方面的知识,有了较深入的认知。只是,觉得学校在安排实训时间上面略显草率,致使我们的实际实训时间较短,在上VFP课的时候,时间也是很匆忙,以致老师在上课时有时不得不拉进度,在有些地方还是不是特别清晰,书本上面所写的却又似乎过于繁杂。为此,希望学校以后排课的时候,增加课程上课时间。 6 致 谢在这次VFP程序设计实训中,首先要感谢的是学校安排了袁柱和何敬宣这两位认真、积极负责的好老师来辅导我们进行实训,对我们的疑惑,总是细致地讲解,不论是多么的初级的错误,对此,我再次表示最最最真挚的感谢。同时,还要感谢我的父母能够让我有机会在这里,与这样好的两位老师以及各位同学在一起进行这富有意义的实训。觉得,只有好好的学习,认真的实训,才能予以回报。 感谢我们小组的组长徐新桃同学,以及组员陈明明、刘仁椒、王丹、吴亚鹏、薛飞龙、姚平、黄畛彬。没有他们的努力,我们小组也不会这么快的完成任务,在此,深表感谢。7 参考文献 1 刘卫国.Visual FoxPro课程设计教程(第二版). 北京.北京邮电大学出版社,2005.09.34-36;2 陈洛资. 数据库系统及应用基础M.北京:北京交通大学出版社,2003.08.55-56;3 黎明.计算机应用基础M.成都:电子科技大学出版社, 2004.03.45-474 崔巍.数据库系统及应用(第二版).北京:高等教育出版社,2003.05.35-36 8 附 录4.1设计主程序*系统初始化Clear allClose allSet sysmenu offSet sysmenu toSet date ansiSet talk offSet deleted on Set safety off*设置窗口状态_screen.windowstate=2*设置窗口名称_screen.caption=“学籍管理系统”*清理用户数据库中的无用信息Use user.dbfPack*清理用户数据库中的无用信息Use student.dbfPackClose all*调用登陆界面Do form dl上述代码中1-8行对系统的运行进行了一系列的设置,9-10行定义了窗口的名称和状态,12-15行清理了学生数据库和用户数据库中的无用信息,16行代码调用DL表单,即执行用户的登陆功能。4.2设计登陆模块*设置保存输入次数的变量PUBLICNN=1*设置当前的操作时间THISFORM.TEXT3.VALUE=DATEOTHISFORM.TEXT3.ENABLED=.F.对于用户输入的用户名和密码要与系统中的用户名信息库进行核对,完成此项功能的代码设计设置在Command1控件中的Click行为中,代码设计如下:*核对用户信息,只有合法的用户才能使用该系统IF(N2)*输入超过3次,系统拒绝进入系统MESSAGEBOX(“密码输入超过3次,不能使用本系统!)THISFORM.RELESASEELSE*打开用户信息库,把输入的信息进行核对USE USER.DBF*收集用户的输入信息TEMP1=ALLTRIM(THISFORM.TEXT1.VALUE)TEMP2=ALLTRIM(THISFORM.TEXT2.VALUE)LOCATE FOR ALLTRIM(NAME)=TEMP1.AND.ALLTRIM(PASSWORD)=TEMP2*如果是合法用户,允许进入系统,否则提示用户从新输入IF FOUND0THISFORM.RELEASE*进行系统DO FORM MAINELSE*提示用户从新输入MESSAGEBOX(“密码或用户名输入错误,重新输入!)THISFORM.TEXT1.VALUE=”THISFORM.TEXT2.VALUE=”N=N+1THISFORM.TEXT1/SETFOCUSENDIFENDIF上述代码将那些非法的用户拒绝在系统的外边,从而有效地保护了学生信息库的安全。此外,登录界面上还提供了退出系统的功能按钮,在Command2控件的Click行为中添加如下代码,用来退出登录界面。*退出系统THISFORM.RELEASE4.3主界面设计*调用日常管理操作界面DO FORM RCHCZCommand2 控件对应系统中的毕业管理功能,同样在该表单的Click行为0中添加如下代码,用来调用毕业管理的界面。*调用毕业管理模块DO FORM BY同样的设置方法在Command3控件的Click行为中添加代码,用来调用查询模块的操作界面。*调用查询操作界面DO FORM CHXCommand4 控件对应了系统的用户管理功能,在其Click行为中添加如下代码,调用用户管理的操作界面。DO FORMYHGL以下系统的4项功能,用鼠标单击某一按钮即可运行对应的模块,最后该界面还提供退该系统的按钮,在Command5控件的Click行为中添加如下代码,实现退出系统的功能。*退出系统THISFORM.RELEASE4.4日常管理模块4.4.1.设计日常操作功能选择界面*设置全局变量,用来传递数据PIBLIC XH,COM_BT*所要实现的按钮COM_BT=”*输入的学号XH=”在CommandGroup3控件中提供了4个按钮,分别用来完成相应的功能,进入该控件的可编辑状态.在该控件的Command1控件负责完成增加新学生的功能,即将新学生的信息添加到信息库存中,为了完成功能在其Click行为中添加如下代码:*在该表单中TEXT1控件设置为空THISFOORM.TEXT1.VALUE=”*设置在显示的按钮为增加按钮COM_BT=”APPEND_FORM”*调用APPE表单DO FORM APPE上述代码完成对该表单的清理工作后,调用APPE.CommandGroup3中的Command2完成删除制定学号的学籍信息.学生的学号要求用户在该表单中的TEXT1控件中输入,单击”确定”按钮后在子信息库中查找该生的信息,然后显示给用户,并显示”删除”功能按钮,为此在CommandGroup3中Command2的GotFocus行为中添加如下代码:*TEXT1控件允许用户输入THISFORM.TEXT1.ENABLED=.T.Command1控件变为可用THISFORM.COMMAND1.ENABLED=.T.*提示用户输入学生的学号MESSAGEBOX(“请输入学生的学号!”)*设置显示的按钮COM_BT=”DELETE_FORM”同CommandGroup3中Command2的GotFocus行为中的代码相似,在CommandGroup3中的Command3中的GotFocus行为中添加如下代码,用户对修改功能进行初始化.*设置TEXT1和Command1为有效THISFORM.TEXT1.ENABLED=.T.THISFORM.COMMAND1.ENABLED=.T.MESSAGEBOX(“请输入学生的学号!”)*设置显示的按钮为修改按钮COM_BT=”MODIFY_FORM” 在CommandGroup3中Command4提供了退出该表单的功能,在其Click行为中添加如下代码,完成退出功能.*退出系统THISFORM.RELEASE为了完成上述功能在Command1控件的Click行为中添加如下代码:*设置Text1和Command1状态为不可以用THISFORM.TEXT1.ENABLED=.F.THISFORM.COMMAND1.ENABLED=.F.*保存输入的学号XH=ALLTRIM(THISFORM.COMMAND1.ENABLED)=.T.*调用APPE表单DO FORM APPE通过以上这日常操作功能选择表单的设计.4.4.2记录管理表单的设计*如果输入的学籍为空,则表示增加新的学籍IF EMPTY(XH) *该表单设置成为增加新记录的表单 THISFORM.TEXT1.VALUE=” THISFORM.TEXT2.VALUE=” THISFORM.TEXT3.VALUE=” THISFORM.TEXT4.VALUE=” THISFORM.TEXT5.VALUE=” THISFORM.TEXT6.VALUE=” THISFORM.TEXT7.VALUE=” THISFORM.TEXT8.VALUE=” THISFORM.TEXT9.VALUE=” THISFORM.TEXT10.VALUE=”ELSE *查找输入学号的记录 USE STUDENT.DBF LOCATE FOR ALLTRIM(学号)=ALLTRIM(XH) IF FOUND() *如是找到将信息在表单中显示 THISFORM.TEXT1VALUE=ALLTRIM(姓名) THISFORM.TEXT1.ENABLED=.F. THISFORM.COMBO1.VALUE=ALLTRIM(性别) THISFORM. COMBO1.ENABLED=.F. THISFORM. COMBO2VALUE=ALLTRIM(民族) THISFORM. COMBO2.ENABLED=.F. THISFORM. TEXT2.VALUE=出生日期THISFORM.TEXT2.ENABLED=.F.THISFORM. TEXT3.VALUE=ALLTRIM(班级) THISFORM.TEXT3.ENABLED=.F. THISFORM. TEXT4.VALUE=ALLTRIM(学号) THISFORM. TEXT4.ENABLED=.F. THISFORM. COMBO3.VALUE=ALLTRIM(政治面貌) THISFORM. COMBO3.ENABLED=.F. THISFORM. TEXT5.VALUE=ALLTRIM(家长姓名) THISFORM. TEXT5.ENABLED=.F.THISFORM. TEXT6.VALUE=ALLTRIM(联系电话) THISFORM. TEXT6.ENABLED=.F. THISFORM. TEXT7.VALUE=家庭住址 THISFORM. TEXT7.ENABLED=.F. THISFORM. EDIT1.VALUE=个人简介 THISFORM. EDIT.ENABLED=.F. ELSE *没有找到,提示没有此人 MESSAGRBOX(“没有找到此人”)ENDIFTHISFORM.COMMAND1.ENABLED=.F.*将功能按钮状态设置为不可用Tmand1.visible=.f.Tmand2.visible=.f.Tmand3.visible=.f.Tmand4.visible=.f.*根据用户的选择来显示相应的按钮Do caseCase com_bt=”append_form”*增加功能 Tmand1.visible=.t.Case com_bt=”delete_form”*删除功能 Tmand3.visible=.t.Case com_bt=”modify_form”*修改功能 Tmand2.visible=.t.Tmand4.visi

温馨提示

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

评论

0/150

提交评论