(1)student是一个“学生”表,其中包含学号(C8)、姓名(C8)、性别(C2)、政治面目(C4)、班级(C5)等字段。考生文件夹下的modil.prg程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序

admin2016-12-05  54

问题 (1)student是一个“学生”表,其中包含学号(C8)、姓名(C8)、性别(C2)、政治面目(C4)、班级(C5)等字段。考生文件夹下的modil.prg程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。
    说明:程序中******ERROR FOUND******的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。
    (2)建立命令文件sprog.prg,该命令文件包含如下两条语句:
    第一条语句使用SQL UPDATE命令计算和更新student表的年龄字段值(计算年龄的表达式是year(dat()-year(出生日期))。
    第二条语句使用SQL SELECT命令查询各种“政治面目”的学生人数和平均年龄,并将结果存储于表sqlresults(字段名是政治面目、人数和平均年龄)。
    说明:以上命令文件必须执行,并产生所要求的结果。

选项

答案(1)【操作步骤】 步骤1:在命令窗口执行命令:MODIFY COMMAND modil,打开程序文件,文件中的命令代码如下: 1 SET IALK OEF 2 USE student 3 LOCATE FOR 政治面目="群众" 4 "************error************ DO WHILE .NOT.FOUND() 5 IF性别:="男" 6 CONTINUE 7 ************error************ BREAK 8 ENDIF 9 ?姓名,班级 10 ************error************ SKIP 11 ENDDO 12 USE 13 SET TALK ON 修改程序中的错误行,修改后的程序如下: 1 SET TALK OFF 2 USE student &&打开student表 3 LOCATE FOR 政治面目="群众" && 查找当前基录的“政治面目”为“群众” 4 DO WHILE FOUND() &&循环条件为找到"政治面目"为"群众"的记录时进入循环 5 IF 性别="男" && 如果性别为"女",继续执行下而的语句,否则执行ENDIF语句之后的语句 6 CONTINUE && 返回到循环体起始位置继续重新判断下一条记求“政治面目”值是否为“群众” 7 LOOP &&返回到循环体起始位置,即 DO WHILE处重新判断,不再执行后而的语句 8 ENDIF && 当IF处条件不成利时,直接执行该语句后而的命令 9 ?姓名,班级&& 当前面的IF条件语句不成立时,执行该语句,显示当前记录的“姓名”和“班级”值 10 CONINUE &&返回到循环体起始位置继续罩:新判断下一条记录"政治面目"值是否为"群众" 11 ENDDO && 当DO WHILE处条件不成立时,直接退出循环体,执行该语句后面的命令 12 USE && 关闭当前打开的表 13 SET TALK ON 步骤2:保存文件修改,在命令窗口执行命令:DO modil prg,执行程序文件。 (2)【操作步骤】 步骤1:在命令窗口执行命令:MODIFY COMMAND sprog,打开程序文件编辑器。 步骤2:在程序文件编辑器中输入如下代码(相关SQL查询语句是通过查询设计器生成): 1 UPDATE S tudent SET 年龄=YEAR (DATE())-YEAR(出生日期) 2 SELECT STUDENT.政治面目, COUNT (STUDENT.学号)AS人数,AVG(STUDENT. 年龄)AS平均年龄; 3 FROM student; 4 GROUP BY student.政治面目; 5 INTO TABLE sqlresults.dbf 步骤3:保存文件修改,在命令窗口执行命令:DO sprog.prg,执行程序文件。

解析
转载请注明原文地址:https://kaotiyun.com/show/vNIp777K
0

最新回复(0)