课程设计实验报告[在此处键入文档的摘要。摘要通常是对文档内容的简短总结。在此处键入文档的摘要。摘要通常是对文档内容的简短总结。][请输入公司名称][请输入公司地址][请输入电话号码][请输入传真号码]2023年1月6日VisualFoxPro课程设计实验报告——“学生信息管理系统”国贸2班200204074224佘楷一.设计题目学生信息管理系统二.开发软件VFP6.0三.课题要求(1)掌握课堂讲授的基本数据库知识和VFP的基本技巧:1.数据库管理系统合数据库应用系统;2.VFP的界面组成与操作;3.VFP的工作方式;4.标的基本操作(表的建立与修改、表达式、维护命令);5.表的查询与统计(排序与索引,SELECT-SQL查询,数据库于视图);6.程序设计初步(程序文件,程序的控制,多模块程序)。(2)自学部分书本关于VFP的内容:1.菜单设计;2.表单设计;3.表单控件设计;4.实例:汽车修理管理系统的开发。(3)要求能够独立设计。完成一个简单的学生信息管理系统,此系统必须有如下基本功能:1.数据的查询;2.记录的增加,删除,修改等功能;3.系统界面良好;4.操作方便,运行稳定。四.目的掌握基本的数据库知识,熟悉VFP的使用。学习VFP数据库应用系统开发的一般步骤:1.需求分析2.数据库设计3.应用程序设计4.软件的运行测试通过简单的系统设计、开发,激发学生的学习兴趣和动手能力。五.设计时间第12周——第19周六.设计主要流程流程图:用户登陆logo.scx选择用户类型普通用户登陆管理员登陆查询统计退出退出查询统计维护个人统计课程统计个人统计课程统计学生信息课程信息成绩信息学生信息课程信息成绩信息学生信息课程信息成绩信息(1)数据库设计根据此系统需要建立数据库sexxdb.dbc,数据库中有如下几个数据表:student.dbf、course.dbf、score.dbf、password.dbf、passwordm.dbf。student..dbf记录的是学生的个人信息,如:学号、姓名、性别、民族、出生日期、所在专业、籍贯。Course.dbf记录的是有关课程的信息,如:课程编号、课程名称、学分、任课老师。Score.dbf记录的是每个同学不同科目的考试成绩,有以下这些内容:课程编号、课程名称、学号、成绩。Password.dbf记录系统普通用户的用户名和密码。Passwordm.dbf记录系统管理员的用户名和密码。(2)应用程序设计由于本系统是多用户登陆,当是管理员登陆时此系统的所有功能都可能用,当是普通用户登陆时此系统时将无法使用系统的维护功能。下面就各个表单功能和使用作如下简述:1.用户登录先选择用户类型:普通用户、管理员,输入密码,按确定键进入(按重写键重新填写;按退出键退出系统)。主要代码如下:optiongroup1.click事件:docasecasethis.value=0thisform.combo1.rowsource=casethis.value=1thisform.combo1.rowsource=password.用户名casethis.value=2thisform.combo1.rowsource=passwordm.管理员endcase“确定”键command1.click事件:publicguestprivatePassword1docasecasethisform.optiongroup1.value=1selectpasswordpassword1=alltrim(thisform.text1.value)locateforalltrim(用户名)==alltrim(thisform.combo1.value)iffound()andpassword1==alltrim(密码)guest=2thisform.releasedoformmain.scxelse=messagebox(用户名或密码错误,请重新输入!)thisform.text1.setfocusendifcasethisform.optiongroup1.value=2selectpasswordmpassword1=alltrim(thisform.text1.value)locateforalltrim(管理员)==alltrim(thisform.combo1.value)iffound()andpassword1==alltrim(密码)guest=1thisform.releasedoformmain.scxelse=messagebox(用户名或密码错误,请重新输入!)thisform.text1.setfocusendifendcase在此代码中定义了公共变量guest,是为了判断用户类型以确定进入系统界面后“维护”键是否可用。“重写”键command2.click事件:thisform.combo1.value=thisform.text1.value=thisform.text1.setfocus“退出”键command3.click事件:thisform.release2.系统界面当使用者是普通用户时,系统界面中的“维护”键是不可用的。当管理员登陆时则可以使用“维护”键。“维护”键可否使用是通过form.activate来实现的:ifguest=1thisform.Command2.enabled=.t.elsethisform.Command2.enabled=.f.endif“查询”、“维护”、“统计”、“退出”键的click代码分别为:doformchaxun.scxdoformweihu.scxdoformstatistic.scxthisform.releasedoformlogo3.查询界面用户可以在此查询学生信息、课程信息和成绩信息。查询学生信息时“确定”键的代码是:thisform.pageframe1.page1.grid1.recordsource=XH=alltrim(thisform.pageframe1.page1.text1.value)thisform.pageframe1.page1.grid1.recordsource=selectstudent.学号,student.姓名,student.性别,student.民族,student.出生日期,student.专业,student.籍贯fromstudentwherealltrim(学号)==XHoralltrim(姓名)==XHintocursortempthisform.pageframe1.page1.text1.value=查询课程信息时的代码为:kcmc=alltrim(thisform.pageframe1.page2.text1.value)thisform.pageframe1.page2.grid1.recordsource=selectcourse.课程编号,course.课程名称,course.学分,course.任课老师fromcoursewherealltrim(课程名称)=kcmcoralltrim(课程编号)=kcmcintocursortempthisform.pageframe1.page2.text1.value=查询成绩信息时的代码为:xh=alltrim(thisform.pageframe1.page3.text1.value)thisform.pageframe1.page3.grid1.recordsource=selectstudent.学号,student.姓名,course.课程名称,score.成绩fromstudent,course,scorewherealltrim(score.学号)==xhandalltrim(student.学号)==alltrim(score.学号)andalltrim(course.课程编号)==alltrim(score.课程编号)intocursortempthisform.pageframe1.page3.text1.value=4.维护界面只有管理员才能进入此界面。进入此界面后,选择组合框里的一项可以查询此项的数据,但不能修改,只有按下“进行修改”键后才能进行修改,修改后按“确定”键确认修改。按“退出”键退出此界面。此界面中optiongroup1的click事件代码为:docasecasethisform.optiongroup1.option1.value=1thisform.grid1.recordsource=studentthisform.grid1.refreshcasethisform.optiongroup1.option2.value=1thisform.grid1.recordsource=coursethisform.grid1.refreshcasethisform.optiongroup1.option3.value=1thisform.grid1.recordsource=scorethisform.grid1.refreshendcasethisform.command1.enabled=.t.thisform.command2.enabled=.t.thisform.command3.enabled=.t.“进行修改”键的click代码为:thisform.grid1.enabled=.t.thisform.grid1.readonly=.f.thisform.grid1.allowaddnew=.t.thisform.grid1.setfocusthisform.command1.enabled=.f.“确定”键的click代码为:usethisform.grid1.enabled=.t.thisform.grid1.allowaddnew=.f.thisform.grid1.readonly=.t.&&thisform.grid1.recordsource=thisform.grid1.refreshthisform.command1.enabled=.t.thisform.command2.enabled=.f.thisform.command3.enabled=.f.5.统计界面通过选择组合框中的选项,可以统计个人成绩或某一课程的成绩。此界面中optiongroup1的click事件代码为:DocaseCasethis.value=0Thisform.combo1.rowsource=Casethis.value=1Thisform.combo1.rowsource=student.学号Casethis.value=2Thisform.combo1.rowsource=course.课程名称Endcase“确定”键的click代码为:docasecasethisform.optiongroup1.value=1xh=alltrim(thisform.combo1.value)selectscorecalculatemax(成绩),min(成绩),avg(成绩),cnt();for学号=xhtoa1,a2,a3,a4&&显示统计结果Thisform.text1.value=alltrim(str(a1))Thisform.text2.value=alltrim(str(a2))Thisform.text3.value=alltrim(str(a3))Thisform.text4.value=alltrim(str(a4))Casethisform.optiongroup1.value=2Kcmc=alltrim(thisform.combo1.value)SelectcourseLocatefor课程名称=kcmcSelectscoreCalculatemax(成绩),min(成绩),avg(成绩),cnt();For课程名称=kcmctoa1,a2,a3,a4&&显示统计结果T