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

admin2013-03-31  59

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

选项

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

解析 (1)本题主要考查的是利用VisualFoxPro命令查询定位数据表中的记录。此类型的题主要通过一个DO WHILE循环语句对表中的记录逐条比较,对满足条件的记录进行相关的操作。
    本题中第一处错误是循环条件的错误,进入循环体的条件是逻辑值为真,第二处错误中属于命令短语错误,visual FoxPro中没有BREAK命令,第三处错误是SKIP命令错误,该命令虽然可以将当前记录指针指向下一条记录,但不再执行LOCATE FOR处的条件判断,如果要包含判断功能,则要使用 CONTINUE 短语。本题程段中各语句的功能可参考“操作步骤”中对各条语句的注释说明,这里不再细说。
    (2)本题考查了SQL数据更新功能和分组计算查询功能。本题数据更新语句可直接套用SQL更新语句的命令格式;对数据进行分组计算查询时,用来计数的函数为COUNT(),用来求平均值的函数为AVG(),通过AS短语可以指定新的字段名,另外,对记录进行分组时,分组字段要设置正确,根据题意,本题的分组字段应为“学生”表中的“政治面目”字段。
转载请注明原文地址:https://jikaoti.com/ti/vVZ0FFFM
0

最新回复(0)