vf
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考试盘中已建立项目test8,在该项目中已有自由表“学生.dbf”、“课程.dbf”和“学生成绩表.dbf”。
下面的程序设计与表单设计都应在项目中完成。
一、编写程序(文件名:a8.prg)
利用磁盘上给定的表文件编写程序(a8.prg),实现如下操作:
1、按下列格式查询输出学生的成绩表。
2、计算学生的平均成绩并显示学生的平均成绩。
根据学生的平均成绩,给出等级:
平均成绩>=90 等级为“优”
90>平均成绩<=75 等级为“良”
75>平均成绩<=60 等级为“及格”
平均成绩<60 等级为“不及格”
3、要求能反复查询。
clear
close all
set talk off
sele a
use 学生
index on 学号 to xh
sele b
use 课程
index on 课程号 to kch
sele c
use 学生成绩表
set rela to 学号 into a
set rela to 课程号 into b addi
an="Y"
do while .t.
clear
accept " 请输入学生姓名:" to xm
sele a
loca all for 姓名=xm
xh=学号
?" ",xm,"同学成绩表"
?" "
?" 课程名成绩 "
?" ***************************** "
sele c
loca all for 学号=xh
do while.not.eof()
?" ",b.课程名," ", 成绩
cont
enddo
average 成绩 for 学号=xh to 平均成绩
do case
case 平均成绩>=90
等级="优"
case 平均成绩>=75
等级="良"
case 平均成绩>=60
等级="及格"
otherwise
等级="不及格"
endcase
? " "
?" 平均成绩:",平均成绩," 等级:",等级
? " "
wait " 是否继续查找(Y/N)?" TO an
if upper(an)="Y"
loop
else
exit
endif
enddo
clear
close all
set talk on
retu
二、表单设计(文件名:表单8.scx)
利用“学生.dbf”、“课程.dbf”和“学生成绩表.dbf”三个表,设计如图所示的表单,要求:
1、在组合框选取学生姓名,在列表框显示该学生已选课程,见图1。
2、在列表框选取课程,在成绩所对应的文本框中显示学生所选课程的成绩,见图2。
3、点击“退出”按钮,退出查询。
二、表单设计(表单8.SCX)(50分)
(1)表单的Caption属性为“学生单科成绩查询”。
(2分)
(2)正确在数据环境中添加表(4分)
(3)正确建立表单上的各个控件(10分)
(4)编写“组合框”的“InteractiveChange”事件代码:(15分) THISFORM.LIST1.ROWSOURCE="SELECT 课程名FROM 学生,学生成绩表,课程;
WHERE 学生.学号=学生成绩表.学号AND 学生成绩表.课程号=课程.课程号;
AND 姓名=THIS.V ALUE INTO CURSOR TEM1"
THISFORM.TEXT1.V ALUE=""
(5)编写“列表框”的“InteractiveChange”事件代码:(15分) SELECT 成绩FROM 学生,学生成绩表,课程;
WHERE 学生.学号=学生成绩表.学号AND 学生成绩表.课程号=课程.课程号;
AND 姓名=BO1.V ALUE AND 课程名=THIS.V ALUE INTO ARRAY TEM2
THISFORM.TEXT1.V ALUE=TEM2
(6)命令按钮“退出”的Click事件代码为:(4分)release thisform。