二级VF复习题——上机2

文章作者 100test 发表时间 2007:03:10 17:53:07
来源 100Test.Com百考试题网



二.简单应用(2小题,每题20分,计40分)
1.用SQL语句查询至少有三门的课程成绩在70分以上(包括70分)的学生姓名,并将结果按升序存入表文件results.dbf,然后将该SQL语句粘贴在SQL.TXT文件的第二行(只占一行)。
2.modi.prg程序的功能是:先为"学生"表增加一个"平均成绩"字段,数据类型为N(6,2);然后根据"选课"表统计每个学生的平均成绩,并写入新添加的字段。
该程序有三处错误,请改正之,使程序能正确运行(在指定处修改,不允许增加或删除程序行)。

参考答案及考点:
1.该题的考点是SQL语句的使用和向文本文件中保存命令,参考程序是:
方法1:嵌套方式
SELE 姓名 FROM 学生 WHERE 学号 IN.
(SELE 学号 FROM 选课 WHERE 成绩>=70 GROUP BY 学号
HAVING COUNT(*)>=3) ORDER BY 1 INTO DBF RESULTS
方法2:连接方式
SELE 姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 成绩>=70.
GROUP BY 学生.学号 HAVING COUNT(*)>=3 ORDER BY 姓名 INTO DBF RESULTS
然后在命令窗口中选中命令,单击常用工具栏"打开"按钮,打开SQL.TXT文件,光标定位在第二行,单击"粘贴"。注意因为命令行比较长,要将在命令窗口中添加的换行符";"删除,并将文本调整到同一行。
解释:
(1)首先确定需要使用表,"姓名"在学生表中,"成绩"及需要统计的选课门数要使用选课表,因此需要使用学生和选课这两个表,两表联系的字段是"学号"。
(2)成绩高于70分修饰的是元组,即低于70分的记录不参加统计,不能将该条件用在HAVING子句中。
(3)因为要统计在高于70分的成绩中每个学生选修课程的门数,因此必须要按学号分组,并且只有在选修门数大于等于3门时才是我们需要的,因此要用此做为条件使用HAVING子句限制分组。
2.第一行错误:MODIFY TABLE 学生 ADD 平均成绩 N(6,2)
改为:ALTER TABLE 学生 ADD 平均成绩 N(6,2)
第二行错误 O WHILE EOF()
改为 O WHILE NOT EOF()
第三行错误:REPLACE 平均成绩 = cj[1]
改为:REPLACE 平均成绩 WITH cj[1]
解释:
第一行,在SQL中,修改表结构的语句是ALTER,而不是MODIFY,在VF命令中用MODIFY STRUCTURE 可以打开表设计器表结构
第二行,EOF()是判断记录指针是否已到表尾,而只有在未到表尾时才循环
第三行,REPLACE 命令结构应该是
REPLACE 字段名1 WITH 表达式1,字段名2 WITH 表达式2 ...

相关文章


2005年9月计算机等级考试二级VB考前密卷[2]6
2005年9月计算机等级考试二级VB考前密卷[2]7
二级VF复习题——上机2
二级VF复习题——上机题
2005年9月计算机等级考试二级VB考前密卷[2]8
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛