1、国家二级 VF 机试-试卷 90 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.打开数据库 prod m 及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系。 2设置 category 表中“种类名称”字段的默认值为“食品”。 3为 products.表增加字段:优惠价格 N(9,2)。 4如果所有商品的优惠价格是在进货价格基础上减少 10%,计算所有商品的优惠价格。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)用
2、 SQL 语句查询至少有三门的课程成绩在 70 分以上(包括 70 分)的学生姓名,并将结果按升序存入表文件 resultsdbf,然后将该 SQL 语句粘贴在 SQLTXT 文件的第二行(只占一行)。 (2)modiprg 程序的功能是:先为“学生”表增加一个“平均成绩”字段,数据类型为 N(6,2):然后根据“选课”表统计每个学生的平均成绩,并写入新添加的字段。 该程序有三处错误,请改正,使程序能正确运行(在指定处修改,不允许增加或删除程序行)。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹下,打开 Ecommerce
3、 数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置): 首先利用报表向导生成报表文件 myreport,包含客户表 customer 中的全部字段,报表标题为“客户信息”,其他各项均取默认值。然后设计一个文件名和表单名均为 myform 的表单,表单标题为“客户基本信息”。要求该表单上有“女客户信息”(Command1)、“客户购买商品情况”(Command2)、“输出客户信息”(Command3)和“退出”(Command4)四个命令按钮,如图 1-24 所示。 (分数:2.00)_国家二级 VF 机试-试卷 90 答案解析(总分:12.00,做题时间:90 分钟)一
4、、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.打开数据库 prod m 及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系。 2设置 category 表中“种类名称”字段的默认值为“食品”。 3为 products.表增加字段:优惠价格 N(9,2)。 4如果所有商品的优惠价格是在进货价格基础上减少 10%,计算所有商品的优惠价格。(分数:2.00)_正确答案:(正确答案:1启动 Visual FoxPro 后,在命令窗口输入命令:MODIFY DATABASE prod m 命令,打开 prod m 数据库设计器,将 ca
5、tegory 表中“索引”下面的“分类编号”主索引字段拖到products 表中“索引”下面的“分类编号”索引字段上,建立两个表之间的永久性联系。 2在数据库设计器中,右击 category 数据表选择“修改”快捷菜单命令,打开表设计器,在“字段”选项卡中选中“种类名称”字段,在“字段有效性”的“默认值”文本框中输入“食品”,为该字段设置默认值。 3在数据库设计器中,右击 product 数据表选择“修改”快捷菜单命令,打开表设计器,在“字段”选项卡列表框内的“进货价格”字段后插入一个新的字段。输入新的字段名“优惠价格”,选择“类型”为“数值型”,“宽度”为 9,“小数位数”为 2。 4在 p
6、roducts 表设计器中选中“优惠价格”字段,接着在下面的“默认值”文本框中输入“进货价格*0.9”,由系统自动计算每种商品的“优惠价格”字段值。)解析:解析:本大题考查的主要是数据库中数据的完整性,包括实体完整性、域完整性和参照完整性,例如为表设置默认值,这属于域完整性范畴。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)用 SQL 语句查询至少有三门的课程成绩在 70 分以上(包括 70 分)的学生姓名,并将结果按升序存入表文件 resultsdbf,然后将该 SQL 语句粘贴在 SQLTXT 文件的第二行(只占一行)。 (2)modip
7、rg 程序的功能是:先为“学生”表增加一个“平均成绩”字段,数据类型为 N(6,2):然后根据“选课”表统计每个学生的平均成绩,并写入新添加的字段。 该程序有三处错误,请改正,使程序能正确运行(在指定处修改,不允许增加或删除程序行)。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口输入如下 SQL 查询代码(以下 SQL 查询语句是通过查询设计器生成): SELECT 学生姓名; FROM 成绩管理!学生 INNER JOIN 成绩管理!选课; ON 学生学号=选课学号; WHERE 选课成绩=70; ORDER BY 学生姓名; GROUP BY 学生学号; HAVING COUN
8、T(选课课程号)=3; INTO TABLE resultsdbf 在命令窗口执行命令: MODIFY FILE SQL ,打开文本文件编辑器。将命令窗口的查询语句复制到 SQL 文本文件中。 (2)步骤 1:在命令窗口执行命令:MODIFY COMMAND modi ,打开程序文件,文件中的命令代码如下: CLOSE ALL OPEN DATABASE 成绩管理 USE 选课 IN 0 USE 学生 EXCL IN 0 *Error* DO WHILE EOF() SELECT AVG(成绩)FROM 选课WHERE 学号=学生学号 INTO ARRAY cj *Error* REPLACE
9、 平均成绩=cj1 cj1=0 SKIP ENDDO CLOSE DATABASE 修改程序中的错误行,修改后的程序如下: CLOSE ALL OPEN DATABASE 成绩管理 USE 选课 IN 0 USE 学生 EXCL IN 0 ALTER TABLE 学生 ADD 平均成绩 N(6,2) SELECT 学生 DO WHILE NOT EOF() SELECT AVG(成绩)FROM 选课 WHERE 学号=学生学号 INTO ARRAY cj REPLACE 平均成绩 WITH cj1 cj1=0 SKIP ENDDO CLOSE DATABASE 步骤 2:保存文件修改,在命令窗
10、口执行命令: DO MODI ,执行程序文件。)解析:解析:(1)本题主要考查的是 SQL 分组计算的查询。根据题目要求,SQL 语句主要设计思路如下: 首先对“学生”和“选课”表进行联接,联接条件为两个表中“学号”相同的记录;接着筛选表中成绩大于 70 的所有记录(通过 WHERE 短语指出),对筛选后的记录接“学号”字段分组(通过 GROUP BY 短语分组),然后通过 HAVING 语句进一步限定分组条件,要求统计每组学号中“课程号”记录总数大于等于 3,这样便可得出至少有三门课程成绩在 70 分以上的学生记录;查询结果最终保存在 results 表中,输出字段只包括学生的“姓名”字段。
11、 (2)【本题主要考查了 SQL 定义功能;SQL 简单计算查询;DO WHILE 循环;Visual FoxPro 修改记录命令。题目所提供的源程序功能大致如下: 首先打开“成绩管理”数据库,并打开库中的数据表“选课”和“学生”;接着利用 SQL 定义功能修改表结构;然后利用 DO WHILE 循环,依次计算“选课”表中每个学生的平均成绩,计算条件为“选课”表中的“学号”字段值等于“学生”表中当前记录的“学号”字段值,荆将均成绩保存到数组中;最后利用 Visual FoxPro 修改记录命令REPLACE 将数组中的值赋给“学生”表的“平均成绩”字段。 本题第一处错误是表结构修改语句的错误,
12、为表增加字段的关键字是 ADD 而不是 ALTER,ALTER 只能用来修改已存在的字段;第二处错误是 DO WHILE 循环格式错误,缺少 WHILE 短语;第三处错误是修陡记录命令格式错误,指定修改值的短语为 WITH而不是 SET。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹下,打开 Ecommerce 数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置): 首先利用报表向导生成报表文件 myreport,包含客户表 customer 中的全部字段,报表标题为“客户信息”,其他各项均取默认值。然后设计一个文
13、件名和表单名均为 myform 的表单,表单标题为“客户基本信息”。要求该表单上有“女客户信息”(Command1)、“客户购买商品情况”(Command2)、“输出客户信息”(Command3)和“退出”(Command4)四个命令按钮,如图 1-24 所示。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: OPEN DATABASE ecomrnerce ,打开 ecommerce数据库环境。 步骤 2:执行【文件】【新建】菜单命令,在弹出的“新建”对话框中选中“报表”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“报表向导”项,单击“确定”按钮
14、,启动报表向导。 步骤 3:在报表向导的“步骤 1-字段选取”界面的“数据库和表”下选中“customer”表,将“可用字段”中全部字段添加到“选定字段”中,直接单击“完成”按钮进入向导最后一个界面。 步骤 4:在报表向导的“步骤 6-完成”界面的“报表标题”文本框中输入“客户信息”,单击“完成”按钮,在“另存为”对话框的“保存报表为:”框中输入报表文件名 myreport,单击“保存”按钮。 步骤 5:在命令窗口执行命令: CREATE FORM myform ,打开表单设计器新建表单。从“表单控件”工具栏中依次向表单添加四个命令按钮。 步骤 6:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 2-27。 )解析:解析:本大题考查了报表向导的使用;表单及控件的常用属性和方法的设置;SQL 查询。 在使用报表向导创建报表前可以将数据库环境打开,这样在报表向导的“步骤 1-字段选取”界面中可直接看到作为报表数据源的表,之后按照向导提示完成题目所要求的设置即可。 预览报表的命令是:REPORT FORM报表名PREVIEW。