1、国家二级 VF 机试(操作题)-试卷 105 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开“宾馆”数据库,完成如下操作: (1)打开“客户”表,给“性别”字段增加约束:性别只能为“男”或“女”,默认值为:”女”,表达式为:性别$“男女“。 (2)为“入住”表创建一个主索引,主索引的索引名为 fkkey,索引表达式为:客房号+客户号。 (3)根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与建索引的字段名相同,升序排序。 (4)使用 SQL 的 SELECT 语句查询“客户
2、”表中性别为“男”的“客户号”、“身份证”、“姓名”和“工作单位”字段及相应的记录值,并将结果存储到名为 taba 的表(注意,该表不需要排序)。清将该语句存储到名为 oneprg 的文件中。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下有 stutdent(学生)、course(课程)和 score(选课成绩)3 个表,用 SQL 语句完成如下操作: (1)查询每门课程的最高分,要求得到的信息包括课程名称和分数,将结果存储到 maxdbf 表文件(字段名是课程名称和分数),并将相应的 SQL 语句存储到命令文件 oneprg。 (2)查询哪些课程有不及格的
3、成绩,将查询到的课程名称存入文本文件 newtxt,并将相应的 SQL 语句存储到命令文件twoprg。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.基于数据库 pdtmng 建立如图 3-7 所示顶层表单应用,表单文件名为 myformscx,表单控件名为goods,表单标题为“商品”。 表单内含一表格控件 Gridl(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示 productsdbf 中某一类商品数据,RecordSourceType 的属性为“4-SQL 说明”。 建立菜单(菜单文件名为 mymenumnx),其条形菜单的菜单项为“商品分类”
4、和“退出”,“商品分类”的下拉菜单为“小家电”、“饮料”和“酒类”;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load 事件中执行菜单程序 mymenumpr。 菜单项“退出”的功能是关闭表单并返回到系统菜单(在过程中完成)。 (分数:2.00)_国家二级 VF 机试(操作题)-试卷 105 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开“宾馆”数据库,完成如下操作: (1)打开“客户”表,给“性别”字段增加约束:性别只能为“男”或“女”,默认值为:”女”,表达式为:性别$“男女“。 (2)为“
5、入住”表创建一个主索引,主索引的索引名为 fkkey,索引表达式为:客房号+客户号。 (3)根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与建索引的字段名相同,升序排序。 (4)使用 SQL 的 SELECT 语句查询“客户”表中性别为“男”的“客户号”、“身份证”、“姓名”和“工作单位”字段及相应的记录值,并将结果存储到名为 taba 的表(注意,该表不需要排序)。清将该语句存储到名为 oneprg 的文件中。(分数:2.00)_正确答案:(正确答案:命令窗 U 执行:MODIFY DATABASE 宾馆,打开数据库设计器。 右击数据库设计
6、器中的“客户”表,选择【修改】,打开“客户”表设计器,选中“字段”选项卡中的“性别”字段,在“字段有效性”的“规则”文本框中输入:“性别$“男女”,在“默认值”文本框中输入:“女“,保存表修改。 (2)右击数据库设计器中的“入住”表,选择【修改】,打开“入住”表设计器,选中“索引”选项卡,在“索引名”下方的文小框中输入“fkkey”,“索引”选项卡中将“类型”选择“主索引”,在表达式下方的文本框中输入“客房号+客户号”,建立主索引。 (3)选中“入住”表单击“修改”按钮,在表设计器的“字段”选项卡中选中“客户号”,在“索引”列的下拉框选择“升序”为表建立普通索引,选中“客房号”字段名,在“索引
7、”列的下拉框选择“升序”排序方式,单击“确定”按钮保存表结构修改。 参照“入住”表的操作,为“客房”表建立“类型号”字段的普通索引。 数据库设计器中,拖动“客户”表“索引”卜方的主索引“客户号”到“入住”表中“索引”下方的普通索引“客户号”上,为两个表建立联系。 以同样的方法建立其他三个表之间的联系,拖动过程中是由下索引字段向普通索引字段进行拖动,且一定要拖到市 H 应的普通索引字段上才可以松开鼠标。 (4)命令窗口执行: MODIFY COMMAND one ,打开程序文件编辑器编写视图定义代码如下: 1 SELECT 客户号,身份证,姓名,工作单位 FROM 客户; 2 WHERE 性别=
8、“男“ INTO TABLE taba 命令窗口执行:DO one,执行文件。)解析:解析:本题考查字段有效性规则的设置;索引的建立;表间联系;SQL 简单查询。 建立表字段有效性规则和字段索引都需要在表设计器中完成。“默认值”和“规则”的设置均属于字段有效性规则范围,“默认值”为字符型数据;根据多个字段建立索引表达式时,需要在表设计器“索引”选项卡的“表达式”中进行设置,该索引表达式可以直接输入,也可以打开“表达式生成器”建立。 本题的关键是要找出每两个表之间的相同字段,并分别设置主索引和普通索引,再进行联接,打开数据库设计器可以看到数据库中所包含的数据表及各数据表中的字段。 SQL 简单查
9、询可利用 INTO TABLE 短语将查询结果输出到指定的数据表中。二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下有 stutdent(学生)、course(课程)和 score(选课成绩)3 个表,用 SQL 语句完成如下操作: (1)查询每门课程的最高分,要求得到的信息包括课程名称和分数,将结果存储到 maxdbf 表文件(字段名是课程名称和分数),并将相应的 SQL 语句存储到命令文件 oneprg。 (2)查询哪些课程有不及格的成绩,将查询到的课程名称存入文本文件 newtxt,并将相应的 SQL 语句存储到命令文件twoprg。(分数:2.00)_正确答案:(正确答案
10、:(1)步骤 1:在命令窗口执行命令: MODIFY COMMAND ONE ,打开程序文件编辑器。步骤 2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成): 1 SELECT COURSE课程名称,MAX(SCORE成绩)AS 分数; 2 FROM COURSE INNER JOIN SCORE ; 3 ON COURSE课程编号=SCORE课程编号; 4 GROUP BY COURSE课程名称; 5 INTO TABLE MAXdbf 步骤 3:在命令窗口执行命令:DO ONEPRG,执行程序文件。 (2)步骤 1:在命令窗口执行命令: MODIFY COMMAND TWO ,
11、打开程序文件编辑器。 步骤 2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成): 1 SElECT COURSE课程名称; 2 FROM COURSE INNER JOIN SCORE ; 3 ON COURSE课程编号=SCORE课程编号; 4 WHERE SCORE成绩解析:解析:(1)本题考查了 SQL 分组与计算查询。根据题意,需要对 course 和 score 表进行连接,连接字段为“课程编号”,利用 MAX()函数对“成绩”字段计算可以得到最高分,新字段名通过 AS 短语指定;由于是求每门课程的最高分,因此,分组字段为“课程名称”或“课程编号”,最后将查询结果输出到指
12、定的数据表中。对于 SQL 语句不太熟悉的考生,可借助查询设计器生成 SQL 语句。 (2)本题考查了 SQL 分组查询。与上小题不同的地方是本题中查询条件是通过 WHERE 短语指出,查询条件是“SCORE成绩60”,不涉及计算查询,语句比较简单。本题 SQL 语句同样可以借助查询设计器生成。三、综合应用题(总题数:1,分数:2.00)3.基于数据库 pdtmng 建立如图 3-7 所示顶层表单应用,表单文件名为 myformscx,表单控件名为goods,表单标题为“商品”。 表单内含一表格控件 Gridl(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示 product
13、sdbf 中某一类商品数据,RecordSourceType 的属性为“4-SQL 说明”。 建立菜单(菜单文件名为 mymenumnx),其条形菜单的菜单项为“商品分类”和“退出”,“商品分类”的下拉菜单为“小家电”、“饮料”和“酒类”;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load 事件中执行菜单程序 mymenumpr。 菜单项“退出”的功能是关闭表单并返回到系统菜单(在过程中完成)。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORM mvform ,打开表单设计器新建表单。从“表单控件”工具栏中向表单添加
14、一个表格控件。 步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值;表单及控件属性设置见表 4 一 11。 步骤 3:在命令窗口执行命令: CREATE MENU mymenu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 4:在菜单设计器“菜单名称”列的文本框中依次输入“商品分类”和“退出”两个主菜单名,“商品分类”菜单命令的“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第 1、2、3 行文本框中依次输入子菜单名“小家电”、“饮料”和“酒类”,将 3 个子菜单的“结果”都设置为“过程”,分别单
15、击 3 个过程后面的“创建”按钮打开过程编辑器,编写过程代码。 步骤 5:三个过程代码如下: “小家电”菜单命令的过程代码: myform.Gridl.RecordSource=“SELECT products.* FROM products,cateqory WHERE category分类编码=Droducts分类编码 AND 类名称=小家电 INTO CURSOR lsb”。 “饮料”菜单命令的过程代码: myform.Gridl.RecordSource=“SELECT products.*FROM products,cateqory WHERE category分类编码=produc
16、ts分类编码 AND 分类名称=饮料 INTO CURSOR lsb”。 “酒类”菜单命令的过程代码: myform.Gridl.RecordSource=“SELECT products.* FROM products,cateqory WHERE category分类编码=products分类编码 AND 分类名称=酒类 INTO CURSOR lsb”。 步骤 6:通过“菜单级”下拉框返回主菜单项设计界面,设置“退出”菜单项的“结果”列为“过程”,并通过单击“创建”按钮打开一个窗口来添加“退出”菜单项要执行的命令:myform:release。 步骤 7:执行【显示】【常规选项】菜单命令
17、,在弹出的“常规选项”对话框中勾选“顶层表单”复选框,然后单击“确定”按钮,保存修改。如图 4-27 所示。 )解析:解析:本题的主要考核点是:表单控件的属性的修改、SQL 语句运用、菜单的建立、顶层表单的设置等知识点。 表单控件名用 Name 属性设置,标题用 caption 设置。表格的 RecordsourceTvpe 属性用来指明表格数据源的类型。 为顶层表单添加下拉式菜单,应先在“菜单设计器”中按要求设计下拉式菜单,然后做两个设置:一是在“显示”菜单下的“常规选项”对话框中选择“顶层表单”复选框,说明该菜单应用在顶层菜单中,二是将表单的 showwindow 属性值设置成“2-作为顶
18、层表单”,使其成为顶层表单。在菜单设计时,“小家电”、“饮料”和“酒类”3 个菜单项对应的操作应该由过程实现,分别通过 SQL语句编写 3 个查询,并将查询赋值给表格 Gridl 的 Recordsource 属性。这里注意:查询的 select 语句要用引号引起来。 在顶层表单中运行菜单,格式为: DOWITH This, “” 其中文件名指定为被调用的菜单程序文件,扩展名_mpr 不能省略。This 表示当前表单对象的引用。通过可以为被添加的下拉式菜单的条形菜单指定一个内部名字,也可以省略。 在顸层表单的菜单中关闭表单,应该引用表单的名称(Name值),并使用 Release 方法关闭表单:Release。