1、国家二级 VF 机试-试卷 73-1 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)创建一个名为“学生管理”的项目文件。 (2)将考生文件夹下的数据库“班级学生”添加到新建的项目文件中。 (3)打开数据库“班级学生”,将考生文件夹下的自由表“教师”添加到数据库“班级学生”中;为“教师”表创建一个索引名和索引表达式均为“教师编号”的主索引(升序)。 (4)通过“班级号”字段建立“班级”表和“学生”表间的永久联系。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数
2、:2.00)_4.在考生文件夹下的 selldb 数据库中包含“部门表”、“销售表”、“部门成本表”和“商品代码表”等。 (1)在考生文件夹下已有程序文件 threeprg,其功能如下:查询 2006 年各部门商品的年销售利润情况。查询内容为:“部门号”、“部门名”、“商品号”、“商品名”和“年销售利润”,其中“年销售利润”等于销售表中一季度利润、二季度利润、三季度利润和四季度利润的合计。查询结果按部门号升序,然后按年销售利润降序排序,并将查询结果输出到表 taba 中。表 taba 的字段名分别为:“部门号”、“部门名”、“商品号”、“商品名”和“年销售利润”。 请打开程序文件 threep
3、rg,修改其中的错误,然后运行该程序。 (2)请用 SQL 语句查询 2005 年度的各部门的“部门号”、“部门名”、“一季度利润合计”、“二季度利润合计”、“三季度利润合计”、“四季度利润合计”。查询结果按“部门号”升序排序存入表 account 中,并将 SQL 语句存入 fourprg 中。 注意:表 accountdbf 中的字段名依次为“部门号”、“部门名”、“一季度利润”、“二季度利润”、“三季度利润”和“四季度利润”。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.基于数据库 pdtmng 建立如图 1-31 所示顶层表单
4、应用,表单文件名为 myformscx,表单控件名为goods,表单标题为“商品”。 表单内含一表格控件 Crrid1(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示 productsdbf 中某一类商品数据,RecordSourceType 的属性为“4-SQL说明”。 建立菜单(菜单文件名为 mymenumnx),其条形菜单的菜单项为“商品分类”和“退出”,“商品分类”的下拉菜单为“小家电”、“饮料”和“酒类”;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load 事件中执行菜单程序 mymenumpr。 菜单项“退出”的功能是关闭表单并返回
5、到系统菜单(在过程中完成)。 (分数:2.00)_国家二级 VF 机试-试卷 73-1 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)创建一个名为“学生管理”的项目文件。 (2)将考生文件夹下的数据库“班级学生”添加到新建的项目文件中。 (3)打开数据库“班级学生”,将考生文件夹下的自由表“教师”添加到数据库“班级学生”中;为“教师”表创建一个索引名和索引表达式均为“教师编号”的主索引(升序)。 (4)通过“班级号”字段建立“班级”表和“学生”表间的永久联系。(分数:2.00)_正确答案:(正
6、确答案:(1)在命令窗口执行命令: CREATE PROJECT 学生管理 ,新建一个项目管理器。 (2)在项目管理器中选中“数据”选项卡内的“数据库”项,然后单击“添加”按钮,在弹出的“打开”对话框中双击“班级学生”数据库文件,将数据库添加到项目管理器中。 (3)在项目管理器中单击“数据库”前面的“+”号,依次展开“数据库”“班级学生”“表”。然后单击“添加”按钮,在弹出的“打开”对话框中双击“教师”表文件,将自由表添加到数据库中。 选中“教师”表单击“修改”按钮,弹出“教师”表设计器,在表设计器的“字段”选项卡中选中“教师编号”字段名,然后在“索引”列的下拉列表框选择“升序”排序方式,接着
7、在“索引”选项卡中将“类型”设置为“主索引”,单击“确定”按钮保存表结构修改。 (4)参照“教师”表的操作,为“班级”表建立“班级号”字段的主索引;为“学生”表建立“班级号”字段的普通索引。 在项目管理器中选中数据库“班级学生”,然后单击“修改”命令按钮,打开数据库设计器,拖动“班级”表“索引”下方的主索引“班级号”到“学生”表中“索引”下方的普通索引“班级号”上,为两个表建立联系。)解析:解析:本大题考查了项目管理器的建立及使用;为数据库表建立索引及两个表联系的基本操作,为数据库表建立索引可以在表设计器中操作,建立索引时,可以先在表设计器的“字段”选项卡中建立一个普通索引,然后在“索引”选项
8、卡中修改该索引的相关内容,例如索引名、索引类型等,也可以直接在“索引”选项卡中建立索引。 对两个表建立联系是在数据库设计器中进行操作的,建立联系前必须对两个表中进行联接的字段建立相关索引,并通过索引字段建立表间联系。对本题操作时,可在项目管理器中选中要进行操作的数据库或表对象,然后单击项目管理器中的“修改”按钮打开相关的库或表设计器进行操作。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.在考生文件夹下的 selldb 数据库中包含“部门表”、“销售表”、“部门成本表”和“商品代码表”等。 (1)在考生文件夹下已有程序文件 threeprg,其功能如
9、下:查询 2006 年各部门商品的年销售利润情况。查询内容为:“部门号”、“部门名”、“商品号”、“商品名”和“年销售利润”,其中“年销售利润”等于销售表中一季度利润、二季度利润、三季度利润和四季度利润的合计。查询结果按部门号升序,然后按年销售利润降序排序,并将查询结果输出到表 taba 中。表 taba 的字段名分别为:“部门号”、“部门名”、“商品号”、“商品名”和“年销售利润”。 请打开程序文件 threeprg,修改其中的错误,然后运行该程序。 (2)请用 SQL 语句查询 2005 年度的各部门的“部门号”、“部门名”、“一季度利润合计”、“二季度利润合计”、“三季度利润合计”、“四
10、季度利润合计”。查询结果按“部门号”升序排序存入表 account 中,并将 SQL 语句存入 fourprg 中。 注意:表 accountdbf 中的字段名依次为“部门号”、“部门名”、“一季度利润”、“二季度利润”、“三季度利润”和“四季度利润”。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: MODIFY COMMAND three ,打开程序文件,文件中的命令代码如下: *请改正以下语句代码中的错误,然后运行程序。SELECT 部门表部门号,部门表部门名,销售表商品号,商品代码表商品名,销售表一季度利润+销售表二季度利润+销售表三季度利润+销售表四季度
11、利润 AS 年销售利润; FRON 部门表,销售表,商品代码表; ON 销售表商品号=商品代码表商品号; ON 部门表部门号=销售表部门号; WHERE 销售表年度=“2006“; ORDER 1,5; TO TABLE TABA 修改程序中的错误行,修改后的程序如下: SELECT 部门表部门号,部门表部门名,销售表商品号,商品代码表商品名,销售表一季度利润+销售表二季度利润+销售表三季度利润+销售表四季度利润 AS 年销售利润; FRON selldb!商品代码表INNER JOIN selldb!销售表 TNNER JOIN selldb!部门表; ON 销售表商品号=商品代码表商品号;
12、 ON 部门表部门号=销售表部门号; WHERE 销售表年度=“2006“; ORDER BY 1,5 DESC; INTO TABLE TABA 步骤 2:保存文件修改,在命令窗口执行命令: DO three ,执行程序文件。 (2)步骤 1:在命令窗口执行命令: NODIFY COMMAND four ,打开程序文件,文件中的命令代码如下: SELECT 部门表部门号,部门名,SUN(一季度利润) 一季度利润,SUN(二季度利润)二季度利润,SUN(三季度利润)三季度利润,SUN(四季度利润)四季度利润; FRON 部门表,销售表; NHERE 部门表部门号=销售表部门号 AND 年度=“
13、2005“; GROUP BY 部门表部门号; ORDER BY 销售表部门号; INTO TABLE account 步骤 2:保存文件修改,在命令窗口执行命令: DO four ,执行程序文件。)解析:解析:(1)本题考查了 SQL 简单联接查询,语句比较简单。题目提供的程序中共有 3 处错误,第一处是多表联接的表示错误。当进行多表联接时,如果没有使用 JOTN 指定联接的表,而是将所有联接的表都放在 FROM 短语后,则表间的联接条件不能使用 ON 短语指定,只能将联接条件放在 WHERE 短语之后,各联接条件通过 AND 运算符联接。 第二处错误是排序短语的错误,排序短语关键字是 OR
14、DER BY。 第三处错误是查询输出短语错误,将结果保存到数据表中应使用 INTO TABLE 短语。 (2)本题主要考查的是 SQL分组计算查询。本题根据“部门号”字段分组,计算每个部门每个季度销售利润合计,利用 SUN()函数求合计值。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.基于数据库 pdtmng 建立如图 1-31 所示顶层表单应用,表单文件名为 myformscx,表单控件名为goods,表单标题为“商品”。 表单内含一表格控件 Crrid1(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示 productsdbf
15、 中某一类商品数据,RecordSourceType 的属性为“4-SQL说明”。 建立菜单(菜单文件名为 mymenumnx),其条形菜单的菜单项为“商品分类”和“退出”,“商品分类”的下拉菜单为“小家电”、“饮料”和“酒类”;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load 事件中执行菜单程序 mymenumpr。 菜单项“退出”的功能是关闭表单并返回到系统菜单(在过程中完成)。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令:CREATE FORMmyform,打开表单设计器新建表单。从“表单控件”工具栏中向表单添加一个表格控件。
16、步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值;表单及控件属性设置见表 2-30。 步骤 3:在命令窗口执行命令: CREATE MENU mymenu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。步骤 4:在菜单设计器“菜单名称”列的文本框中依次输入“商品分类”和“退出”两个主菜单名,“商品分类”菜单命令的“结果”下拉框中选择为“子菜单”,单击“创建”。按钮进入下级菜单设计,在“菜单名称”列的第 1、2、3 行文本框中依次输入子菜单名“小家电”、“饮料”和“酒类”,将 3 个子菜单的“结果”都设置为“过程”,分别单击 3 个过程后面的
17、“创建”按钮打开过程编辑器,编写过程代码。 步骤 5:三个过程代码如下; “小家电”菜单命令的过程代码: myformGrild1RecordSource=“SELECT products*FROM products,cateaory WHERE cateuorv分类编码=products分类编码 AND 分类名称=小家电 INTOCURSOR lsb“ 。 “饮料”菜单命令的过程代码: myformGrid1RecordSource=“SELECT products*FROM Productscateaorv WHERE cateaorv分类编码=products分类编码 AND 分类名称=
18、饮料 INTO CURSOR 1sb“ 。 “酒类”菜单命令的过程代码: myformGrild1RecordSource=“SELECT products* FROM Productscateaory WHERE cateaorv分类编码=products分类编码 AND 分类名称=酒类 INTOCURSOR 1sb“ 步骤 6:通过“菜单级”下拉框返回主菜单项设计界面,设置“退出”菜单项的“结果”列为“过程”,并通过单击“创建”按钮打开一个窗口来添加“退出”菜单项要执行的命令: myform:release 。 步骤 7:执行【显示】【常规选项】菜单命令,在弹出的“常规选项”对话框中勾选“
19、顶层表单”复选框,然后单击“确定”按钮,保存修改。如图 2-60 所示。 )解析:解析:本题的主要考核点是:表单控件的属性的修改、SQL 语句运用、菜单的建立、顶层表单的设置等知识点。 表单控件名用 Name 属性设置,标题用 Caption 设置。表格的 RecordsourceType 属性用来指明表格数据源的类型。 为顶层表单添加下拉式菜单,应先在“菜单设计器”中按要求设计下拉式菜单,然后做两个设置:一是在“显示”菜单下的“常规选项”对话框中选择“顶层表单”复选框,说明该菜单应用在项层菜单中,二是将表单的 ShowWindow 属性值设置成“2-作为顶层表单”,使其成为顶层表单。在菜单设
20、计时,“小家电”、“饮料”和“酒类”3 个菜单项对应的操作应该由过程实现,分别通过 SQL语句编写 3 个查询,并将查询赋值给表格 Grid1 的 Recordsource 属性。这里注意:查询的 select 语句要用引号引起来。 在顶层表单中运行菜单,格式为: DO 文件名WITH This, “菜单名” 其中文件名指定为被调用的菜单程序文件,扩展名mpr 不能省略。This 表示当前表单对象的引用。通过菜单名可以为被添加的下拉式菜单的条形菜单指定一个内部名字,也可以省略在项层表单的菜单中关闭表单,应该引用表单的名称(Name 值),并使用 Release 方法关闭表单:表单名称Release。