当前位置:文档之家› 基于VFP的学生成绩管理系统设计

基于VFP的学生成绩管理系统设计

《数据库应用》课程设计题目:学生成绩管理系统二零一一年十二月一.系统总体设计1. 系统功能简介录入:录入学号,给出学生姓名;录入课程号,给出课程名;录入成绩。

修改:按课程号修改成绩。

查询:按学号查询该同学的各科成绩;按课程号查询每名同学的成绩,排序查询结果。

打印:按课程号打印成绩单。

2. 系统功能结构图二.数据库设计1. 学生表(学号,姓名,性别,出生年月)主关键字:学号2. 课程表(课程名,课程号,学分,主讲教师)主关键字:课程号3. 选修表(学号,课程号,成绩)普通关键字:学号普通关键字:课程号,如图所示;实验数据1)学生表数据如图所示:2)课程表数据如图所示:3)选课表数据如图所示:三.程序界面设计1. 系统主界面设计1)控件属性设置图片Image1的路径属性Picture设置为VFP的默认路径。

标签label1的标题属性Caption设置为:学生成绩管理系统,并设置相应的字体、字号和颜色。

2)代码设计表单的Destroy事件代码:RELEASE MENU wh EXTENDED。

3)菜单设计按照系统功能结构图设计菜单。

在VFP系统主菜单的“显示”菜单下,选择“常规选项”命令,在弹出的对话框中,勾选顶层表单选项,将该菜单设置为顶层表单菜单,如图所示。

2. 学生成绩录入学生成绩录入表单设计,如图所示。

1)控件属性设置标签:lbl学号标题:Caption 设置为:学号Lbl课程号标题:Caption 设置为:课程号Lbl成绩标题:Caption 设置为:成绩Label1,label2标签无标题,程序运行时,根据文本框的内容显示标题信息。

文本框:txt学号数据源:ControlSource 设置为:选修.学号Txt课程号数据源:ControlSource 设置为:选修.课程号 Txt成绩数据源:ControlSource 设置为:选修.成绩命令按钮:command1 标题:caption 设置为:追加Command2 标题:caption 设置为:退出2)代码设计文本框txt学号的getFocus事件代码:select 选修append blankjlh=recno()文本框txt学号的LostFocus事件代码:select 选修replace 学号 with thisform.txt学号.valueselect 学生locate for 学号=thisform.txt学号.valuebel1.caption="姓名: "+学生.姓名select 选修文本框txt课程号的getFocus事件代码:select 选修thisform.txt课程号.value=' '文本框txt课程号的LostFocus事件代码:select 选修go jlhreplace 课程号 with thisform.txt课程号.valueselect 课程locate for 课程号=thisform.txt课程号.valuebel2.caption="课程名: "+课程.课程名 select 选修go jlhthisform.txt成绩.value=0文本框txt成绩的getFocus事件代码:select 选修go jlh文本框txt成绩的LostFocus事件代码:select 选修go jlhreplace 成绩 with thisform.txt成绩.value命令按钮command1的Click事件代码:bel1.caption=" "bel2.caption=" "select 选修append blankthisform.txt学号.setfocusthisform.refresh命令按钮command2的Click事件代码:select 选修useuse 选修delete for 学号=space(8).or.课程号=space(5)packclose databasethisform.release3. 学生成绩修改按课程号修改数据,用户由键盘输入课程号,当控制交点离开文本框时,在表格中显示要修改的数据记录。

用户用鼠标、键盘对数据记录进行修改,如图所示。

1)控件属性设置标签:label1 标题:caption 设置为:课程号文本框:text1 接收由键盘输入的数据命令按钮:command1 标题:caption 设置为:退出表格:显示要修改的记录2)代码设计文本框text1的LostFocus的事件代码:set filter to alltrim(课程号)=alltrim(thisform.text1.value)设置过滤器,修改满足条件的数据记录。

4. 学生成绩查询(1)标签:label1 标题:caption 设置为:学号文本框:text1 接收由键盘输入的数据命令按钮:command1 标题:caption 设置为:查询Command2 标题:caption 设置为:退出表格:显示查询结果2)代码设计命令按钮command1的Click事件代码:set safety offselect 选修.学号,学生.姓名,选修.课程号,课程.课程名,选修.成绩from 选修,学生,课程;where 选修.学号=学生.学号 and 选修.课程号=课程.课程号 and alltrim(选修.学号)=alltrim(thisform.text1.value);into table cxbthisform.grid1.recordsource='cxb'thisform.refreshset safety on命令按钮command2的Click事件代码:thisform.release5. 学生成绩查询(2)标签:label1 标题:caption 设置为:学号文本框:text1 接收由键盘输入的数据单选按钮组:OptionGroup1.option1 标题:Caption 设置为:升序 OptionGroup1.option2 标题:Caption 设置为:降序命令按钮:command1 标题:caption 设置为:查询Command2 标题:caption 设置为:退出表格:显示查询结果2)代码设计命令按钮command1的Click事件代码:set safety offif thisform.optiongroup1.option1.value=1select 选修.学号,学生.姓名,选修.课程号,课程.课程名,选修.成绩from 选修,学生,课程;where 选修.学号=学生.学号 and 选修.课程号=课程.课程号 and alltrim(选修.课程号)=alltrim(thisform.text1.value);order by 选修.成绩 asc into table cxb1elseselect 选修.学号,学生.姓名,选修.课程号,课程.课程名,选修.成绩from 选修,学生,课程;where 选修.学号=学生.学号 and 选修.课程号=课程.课程号 and alltrim(选修.课程号)=alltrim(thisform.text1.value);order by 选修.成绩 desc into table cxb1endifthisform.grid1.recordsource='cxb1'thisform.refreshset safety on6. 打印学生成绩单设计该功能的实现方法是,由键盘输入要打印的课程号,按课程号整理数据,然后调用报表文件输出报表,如图所示。

1)控件属性设置标签:label1 标题:caption 设置为:课程号命令按钮:command1 标题:caption 设置为:预览Command2 标题:caption 设置为:退出文本框:text1 接收由键盘输入的信息2)代码设计命令按钮command1的Click事件代码:select 课程locate for alltrim(课程号)=alltrim(thisform.text1.value)kcm=课程名select 选修select 选修.学号,学生.姓名,选修.课程号,课程.课程名,选修.成绩;from 选修,学生,课程;where 选修.学号=学生.学号 and 选修.课程号=课程.课程号;and alltrim(选修.课程号)=alltrim(thisform.text1.value);into table dybreport form 学生成绩报表.frx previewset safety on命令按钮command2的Click事件代码:thisform.release7. 报表文件设计如图所示。

数据源为:dyb.dbf用标签设计表头部分,用域控件设计输出数据,kcm变量为全程公共变量,是根据输入的课程号,检索出的相应课程名,运行结果如图所示。

相关主题