二级VF复习题——上机2 |
|
www.nanhushi.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 ...
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: 二级VF复习题——上机题 下一篇文章: Vfp题库-----(数据与数据运算强化训练)1 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|