1、国家二级 VF 机试(操作题)-试卷 72 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)打开数据库 SCORE MANAGER,该数据库中含三个有联系的表 STUDENT、SCORE1 和 COURSE,根据已经建立好的索引,建立表之间的联系。 (2)为 COURSE 表增加字段:开课学期(N,2,0)。 (3)为 SCOR_El 表“成绩”字段设置字段有效。降规则: 成绩=0,出错提示信息足: “成绩必须大 r 或等于零”。 (4)将 SCORE1 表“成绩”字段的默认值设置为空值(NULL)。(分数:2.00)_二、简单应用题(总
2、题数:1,分数:2.00)2.(1)student 是一个“学生”表,其中包含学号(C8)、姓名(C 8)、性别(C 2)、政治面目(C 4)、班级(C 5)等字段。考生文件夹下的 modilprg 程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。 说明:程序中*ERROR FOUND*的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。 (2)建立命令文件 sprogprg,该命令文件包含如下两条语句: . 第一条语句使用 SQL UPDATE 命令计算和更新 student 表的年龄
3、字段值(计算年龄的表达式是 year(dat()-year(出生日期)。 . 第二条语句使用 SQLSELECT 命令查询各种“政治面目”的学生人数和平均年龄,并将结果存储于表sqlresults(字段名是政治面目、人数和平均年龄)。 说明:以上命令文件必须执行,并产生所要求的结果。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下,打开名称为 CDB 的商品销售数据库,完成如下综合应用: 创建一个标题名为“顾客购买商品查询”、文件名为 GK 的表单,如图 212 所示。 (分数:2.00)_国家二级 VF 机试(操作题)-试卷 72 答案解析(总分:6.00,
4、做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)打开数据库 SCORE MANAGER,该数据库中含三个有联系的表 STUDENT、SCORE1 和 COURSE,根据已经建立好的索引,建立表之间的联系。 (2)为 COURSE 表增加字段:开课学期(N,2,0)。 (3)为 SCOR_El 表“成绩”字段设置字段有效。降规则: 成绩=0,出错提示信息足: “成绩必须大 r 或等于零”。 (4)将 SCORE1 表“成绩”字段的默认值设置为空值(NULL)。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令:MODIFY DATABASE score
5、_manaqer,打开 salary 数据库设计器。 在数据库设计器中,拖动 student 表“索引”下方的主索引“学号”到 score1 表中“索引”下方的普通索引“学号”上,为两个表建立联系;拖动 course 表“索引”下方的主索引“课程号”到score1 表中“索引”下方的普通索引“课程号”上,为两个表建立联系; (2)右击数据库设计器中的“course”表,选择【修改】快捷菜单命令,打开 course 表设计器,在表设计器“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“开课学期”,在“类型”下拉框中选择“数值型”,在“宽度”文本框中输入“2”,保存表结构修改。 (3)
6、在数据库设计器中,右击 score1 表,选择【修改】快捷菜单命令,打开 score1 表设计器,在“字段”选项卡中选中“成绩”,在“字段有效性”的“规则”文本框中输入:成绩=0,在“信息”文本框中输入:”成绩必须大于或等于零”。 (4)接上小题操作,单击“成绩”行中“NULL”列的无符号按钮,使其按钮被选中(被选中的按钮上会出现一个“”符号),在“默认值”文本框中输入:NULL。保存表结构修改。)解析:解析:本大题考查了表结构的修改;有效性规则的建立;永久联系的建立。 对表中字段建立有效性规则和设置默认值是在表设计器中操作的,在操作时要注意先选中需要建立有效性规则的字段。二、简单应用题(总题
7、数:1,分数:2.00)2.(1)student 是一个“学生”表,其中包含学号(C8)、姓名(C 8)、性别(C 2)、政治面目(C 4)、班级(C 5)等字段。考生文件夹下的 modilprg 程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。 说明:程序中*ERROR FOUND*的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。 (2)建立命令文件 sprogprg,该命令文件包含如下两条语句: . 第一条语句使用 SQL UPDATE 命令计算和更新 student 表的年龄字
8、段值(计算年龄的表达式是 year(dat()-year(出生日期)。 . 第二条语句使用 SQLSELECT 命令查询各种“政治面目”的学生人数和平均年龄,并将结果存储于表sqlresults(字段名是政治面目、人数和平均年龄)。 说明:以上命令文件必须执行,并产生所要求的结果。(分数:2.00)_正确答案:(正确答案:(1) 步骤 1:在命令窗口执行命令:MODIFY COMMAND modil,打开程序文件,文件中的命令代码如下: 1 SET TALK OFF 2 USE student 3 LOCATE FOR 政治面目=“群众“ 4 “*error* DO WHILENOTFOUND
9、() 5 IF 性别=“男“ 6 CONTINUE 7 *error* BREAK 8 ENDIF 9 7 姓名,班级 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 性别=“男“ &如果性别为“女”,继续执行下面的语句,否则执行 END
10、IF 语句之后的语句 6 CONTINUE &返回到循环体起始位置继续重新判断下一条记录“政治面目”值是否为“群众” 7 LOOP &返旧到循环体起始位置,即 DO WHILE 处重新判断,不再执行后面的语句 8 ENDIF &当 IF 处条件不成立时,直接执行该语句后面的命令 9 ?姓名,班级&当前面的 IF 条件语句不成立时,执行该语句,显示当前记录的“姓名”和“班级”值 10 CONTINUE &返回到循环体起始位置继续重新判断下一条记录“政治面目“值是行为“群众“ 11 ENDDO &当 DO WHILE 处条件不成立时,直接退出循环体,执行该语句后面的命令 12 USE &关闭当前打
11、开的表 13 SET TALK ON 步骤 2:保存文件修改,在命令窗口执行命令:DO modilprg,执行程序文件。(2) 步骤 1:在命令窗口执行命令: MODIFY COMMAND sprog ,打开程序文件编辑器。 步骤 2:在程序文件编辑器中输入如下代码(相关 SQL 查询语句是通过查询设计器生成): 1 UPDATE student SET 年龄=YEAR (DATE() - YEAR(出生日期) 2 SELECT STUDENT政治面目,COUNT (STUDENT学号)AS 人数,AVG(STUDENT年龄)AS 平均年龄; FROM student; 4 GROUP BY
12、student政治面目; 5 INTO TABLE sqlresultsdbf 步骤 3:保存文件修改,在命令窗口执行命令: DO sprogprg ,执行程序文件。)解析:解析:(1)本题主要考查的是利用 Visual FoxPro 命令查询定位数据表中的记录。此类型的题主要通过一个 DO WHILE 循环语句对表中的记录逐条比较,对满足条件的记录进行相关的操作。 本题中第一处错误是循环条件的错误,进入循环体的条件是逻辑值为真,第二处错误中属于命令短语错误,visual FoxPro 中没有 BREAK 命令,第三处错误是 SKIP 命令错误,该命令虽然可以将当前记录指针指向下一条记录,但不
13、再执行 LOCATE FOR 处的条件判断,如果要包含判断功能,则要使用 CONTINUE 短语。本题程段中各语句的功能可参考“操作步骤”中对各条语句的注释说明,这里不再细说。 (2)本题考查了 SQL 数据更新功能和分组计算查询功能。本题数据更新语句可直接套用 SQL 更新语句的命令格式;对数据进行分组计算查询时,用来计数的函数为 COUNT(),用来求平均值的函数为 AVG(),通过 AS 短语可以指定新的字段名,另外,对记录进行分组时,分组字段要设置正确,根据题意,本题的分组字段应为“学生”表中的“政治面目”字段。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下,打开名称为
14、 CDB 的商品销售数据库,完成如下综合应用: 创建一个标题名为“顾客购买商品查询”、文件名为 GK 的表单,如图 212 所示。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORM GK ,打开表单设计器新建表单。 步骤 2:从“表单工具栏”中依次向表单添加两个标签、两个文本框、一个表格控件和两个命令按钮控件。在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值。见表 312。 )解析:解析:本题主要考查了表单及控件的常用属性的设置;SQL 的简单查询和联接查询。 对本题操作时,首先根据题意新建表单,添加控件并修改其相关属性。 本题中的 SQL 程序设计部分考查的是 SQL 联接查询,属于比较简单的查询语句,注意正确引用文本框中的值即可;本题的“应付款”可以通过数组保存,然后再赋给第二个文本框用来显示。