当前位置:文档之家› Visual FoxPro学生信息管理系统课程设计实验报告(完美版)

Visual FoxPro学生信息管理系统课程设计实验报告(完美版)

学生信息管理系统课程设计实验报告(此文档为word格式,可任意修改编辑!)一.设计题目学生信息管理系统二.开发软件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周六.设计主要流程流程图:(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事件:do casecase this.value=0bo1.rowsource=""case this.value=1bo1.rowsource="password.用户名"case this.value=2bo1.rowsource="passwordm.管理员" endcase“确定”键command1.click事件:public guestprivate Password1do casecase thisform.optiongroup1.value=1select passwordpassword1=alltrim(thisform.text1.value)locate for alltrim(用户名)==alltrim(bo1.value)if found() and password1==alltrim(密码)guest=2thisform.releasedo form main.scxelse=messagebox("用户名或密码错误,请重新输入!")thisform.text1.setfocusendifcase thisform.optiongroup1.value=2select passwordmpassword1=alltrim(thisform.text1.value)locate for alltrim(管理员)==alltrim(bo1.value)if found() and password1==alltrim(密码)guest=1thisform.releasedo form main.scxelse=messagebox("用户名或密码错误,请重新输入!")thisform.text1.setfocusendifendcase在此代码中定义了公共变量guest,是为了判断用户类型以确定进入系统界面后“维护”键是否可用。

“重写”键command2.click事件:bo1.value=""thisform.text1.value=""thisform.text1.setfocus“退出”键command3.click事件:thisform.release2. 系统界面当使用者是普通用户时,系统界面中的“维护”键是不可用的。

当管理员登陆时则可以使用“维护”键。

“维护”键可否使用是通过form.activate来实现的:if guest=1mand2.enabled=.t.elsemand2.enabled=.f.endif“查询”、“维护”、“统计”、“退出”键的click代码分别为:do form chaxun.scxdo form weihu.scxdo form statistic.scxthisform.releasedo form logo3. 查询界面用户可以在此查询学生信息、课程信息和成绩信息。

查询学生信息时“确定”键的代码是:thisform.pageframe1.page1.grid1.recordsource=""XH=alltrim(thisform.pageframe1.page1.text1.value) thisform.pageframe1.page1.grid1.recordsource="select student.学号, student.姓名, student.性别, student.民族, student.出生日期, student.专业, student.籍贯from student where alltrim(学号)==XH or alltrim(姓名)==XH into cursor temp" thisform.pageframe1.page1.text1.value=""查询课程信息时的代码为:kcmc=alltrim(thisform.pageframe1.page2.text1.value) thisform.pageframe1.page2.grid1.recordsource="select course.课程编号, course.课程名称, course.学分, course.任课老师from course where alltrim(课程名称)=kcmc or alltrim(课程编号)=kcmc into cursor temp"thisform.pageframe1.page2.text1.value=""查询成绩信息时的代码为:xh=alltrim(thisform.pageframe1.page3.text1.value) thisform.pageframe1.page3.grid1.recordsource="select student.学号,student.姓名,course.课程名称,score.成绩from student,course,score where alltrim(score.学号)==xh and alltrim(student.学号)==alltrim(score.学号) and alltrim(course.课程编号)==alltrim(score.课程编号) into cursor temp" thisform.pageframe1.page3.text1.value=""4. 维护界面只有管理员才能进入此界面。

进入此界面后,选择组合框里的一项可以查询此项的数据,但不能修改,只有按下“进行修改”键后才能进行修改,修改后按“确定”键确认修改。

按“退出”键退出此界面。

此界面中optiongroup1的click事件代码为:do casecase thisform.optiongroup1.option1.value=1thisform.grid1.recordsource="student"thisform.grid1.refreshcase thisform.optiongroup1.option2.value=1thisform.grid1.recordsource="course"thisform.grid1.refreshcase thisform.optiongroup1.option3.value=1thisform.grid1.recordsource="score"thisform.grid1.refreshendcasemand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.“进行修改”键的click代码为:thisform.grid1.enabled=.t.thisform.grid1.readonly=.f.thisform.grid1.allowaddnew=.t.thisform.grid1.setfocusmand1.enabled=.f.“确定”键的click代码为:usethisform.grid1.enabled=.t.thisform.grid1.allowaddnew=.f.thisform.grid1.readonly=.t.&&thisform.grid1.recordsource=""thisform.grid1.refreshmand1.enabled=.t.mand2.enabled=.f.mand3.enabled=.f.5. 统计界面通过选择组合框中的选项,可以统计个人成绩或某一课程的成绩。

此界面中optiongroup1的click事件代码为:Do caseCase this.value=0bo1.rowsource=""Case this.value=1bo1.rowsource="student.学号" Case this.value=2bo1.rowsource="course.课程名称" Endcase“确定”键的click代码为:do casecase thisform.optiongroup1.value=1xh=alltrim(bo1.value)select scorecalculate max(成绩),min(成绩),avg(成绩),cnt();for 学号=xh to a1,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))Case thisform.optiongroup1.value=2Kcmc=alltrim(bo1.value)Select courseLocate for 课程名称=kcmcSelect scoreCalculate max(成绩),min(成绩),avg(成绩),cnt();For 课程名称=kcmc to a1,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))Endcase(3) 程序测试登陆系统,选择选项按钮组中的“普通用户”,在组合框中选择用户(如用“王仪”登陆,密码为111111),查看能否登陆。

相关主题