1、国家二级 VF机试模拟试卷 213及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下完成如下操作: (1)创建一个新的项目 “客户管理 ”。 (2)在新建立的项目 “客户管理 ”中创建数据库 “订货管理 ”。 (3)在 “订货管理 ”数据库中建立表 order_list,表结构如下: 客户号 字符型 (6) 订单号 字符型 (6) 订购日期 日期型 总金额 浮动型 (15, 2) (4)为 order_list表创建一个主索引,索引名 和索引表达式均是 “订单号 ”。 二、简单应用题( 40分) 2 在考生文件夹下,打开学生数据库 SDB,完成如下简单应用: (1)使用查询设计器设计
2、一个名称为 two的查询,查询每个同学的学号 (来自student表 )、姓名、课程名和成绩。查询结果先按课程名升序、再按成绩降序排序,查询去向是表,表名是 two。设计完成后,运行该查询。 (2)修改一个名称为 three prg的命令文件。该命令文件用来查询平均成绩太子等于 75分以上的每个 “女 ”同学的学号、姓名、平均成绩和选课门数,结果按选课门数降序排 序输出到表 three中。该命令文件在第 2行、第 3行、第 4行、第 5行有错误 (每行只有一处必须修改的错误,不出错的地方不要做任何修改 ),打开该命令文件,直接在错误处修改并保存。 注意:修改时,不可改变 sq1语句的结构和短语
3、的顺序,不允许增加或合并行。 三、综合应用题( 30分) 3 基于数据库 pdtmng建立如图 1-31所示顶层表单应用,表单文件名为myform scx,表单控件名为 goods,表单标题为 “商品 ”。 表单内含一表格控件Crrid1(默认控件名 ),当表单运行时,该控件将按用户的选择 (单 击菜单 )来显示products dbf中某一类商品数据, RecordSourceType的属性为 “4-SQL说明 ”。 建立菜单 (菜单文件名为 mymenu mnx),其条形菜单的菜单项为 “商品分类 ”和 “退出 ”, “商品分类 ”的下拉菜单为 “小家电 ”、 “饮料 ”和 “酒类 ”;单
4、击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load事件中执行菜单程序 mymenu mpr。 菜单项 “退出 ”的功能是关闭表单并返回到系统菜单 (在过程中完成 )。 国家二级 VF机试模拟试卷 213答案与解析 一、基本 操作题( 30分) 1 【正确答案】 (1)在命令窗口执行命令: CREATE PROJECT客户管理,新建一个项目管理器。 (2)在项目管理器中,选中 “数据 ”选项卡内的 “数据库 ”项,然后单击“新建 ”按钮,在弹出的 “新建数据库 ”对话框中单击 “新建数据库 ”图标按钮,然后在弹出的 “创建 ”对话框的 “数据库名 ”框中输入 “订货管
5、理 ”,单击 “保存 ”按钮新建一个数据库并打开数据设计器。 (3) 在数据库设计器中右击鼠标,选择【新建表】快捷菜单命令,在弹出的 “新建表 ”对话框中单击 “新建表 ”图标按钮,然后在弹出的“创建 ”对话框 的 “输入表名 ”框中输入 “order_list”,单击 “保存 ”按钮打开表设计器。 根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,如图 2-41所示,然后单击 “确定 ”按钮,此时系统会弹出一个对话框询问 “现在输入数据记录吗 ?”,由于本题没有要求输入数据,单击 “否 ”按钮。(4)右击数据库设计器中的 order_list表,选择【修改】快捷菜单命令,
6、打开 order_list表设计器,在“字段 ”选项卡中选中 “订单号 ”,在 “索引 ”列中选择 “升序 ”,然后在 “索引 ”选项卡中修改 “索引类型 ”为主索引, 建立 “订单号 ”字段的主索引,单击 “确定 ”按钮保存表结构修改。 【试题解析】 本大题考查了项目管理器的建立及使用、数据库表的建立和索引的建立。 为项目添加数据库可以在项目设计器中进行。在表设计器的 “字段 ”选项卡中,可以通过选择 “排序 ”下拉框中的的 “升序 ”或 “降序 ”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在 “索引 ”选项卡中进行修改。 二、简单应用题( 40
7、分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb,打开数据库环境。 步骤 2:在命令窗口执行命令: CREATE QUERY two,打开查询设计器,在 “添加表或视图 ”对话框中,分别双击 student表、 sc表和 coursc表,将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为 3个表在查询设计器中建立联系。 步骤 3:根据题目要求,在 “字段 ”选项卡的 “可用字段 ”中,依次双击 “student学号 ”、 “student姓名 ”、 “course课程名 ”、 “sc成绩 ”,将它们添加到 “选定字段 ”列
8、表 中。 步骤 4:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “course课程名 ”,将其添加到 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序 ”;再双击 “选定字段 ”列表框中的 “sc成绩 ”,将其添加到 “排序条件 ”中,在 “排序选项 ”中选择 “降序 ”。 步骤 5:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 two,单击 “确定 ”按钮。 步骤 6:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 (2)步骤 1:在命令窗口执行命令:
9、MODIFY COMMAND three,打开three prg程序,命令代码如下: OPEN DATABASE sdb SELECT学号,姓名, AVG(成绩 ) AS 平均成绩, COUNT (成绩 ) AS选课门数; FROM student JOIN sc OF student学号 =sc学号; WHERE 性别 =“女 “AND AVG(成绩 ) =75; GROUP BY学号; ORDER BY 4 desc; INTO TABLE three 修 改程序中的错误行,修改后的程序如下: OPEN DATABASE sdb SELECT student学号,姓名, AVG(成绩 )平
10、均成绩, COUNT(成绩 ) 选课门数;&在 “学号 ”字段前加前缀 “student”,指明 “学号 ”来自 student表 FROM student JOIN sc ON student学号 =sc学号; &内联接查询中联接条件使用 ON短语 WHERE 性别 =“女 “; GROUP BY student学号 HAVING AVG(成绩 ) =75; &having短 语用来指定分组的条件 ORDER BY 4 desc; INTO TABLE three 步骤 2:单击 “常用 ”工具栏中的 “保存 ”按钮,将程序文件保存到考生文件夹下。 【试题解析】 (1)本题主要考查的是查询设
11、计器的使用,首先要判断查询数据源包括哪些数据表,将数据表添加到查询设计器后,再根据题目要求从每个表中选取字段,设置查询条件等完成查询。本题操作时要注意 3个表的添加顺序,要按照 stud表、 scor表和 cour表的顺序进行添加,否则会导致两个表之间无法建立联系,或是导致查询出错。 (2)本题主要考查的是 SQL的联接查询和分组计算查询。进行联接查询时主要是判断查询输出字段来自哪个表,再正确设置联接条件。在使用内联接时,联接条件应使用 ON短语。当 FROM之后的多个关系中含有相同的属性名时,必须用关系前缀指明属性所属的关系,如本查询中用到 student表和 sc表中都含有 “学号 ”字段
12、,故当用到 “学号 ”字段时,应写为 “stud学号 ”。 “平均成绩大于等于 75”是分组条件,应使用 HAVING短语。 三、综合应用题( 30分) 3 【正确答案】 步骤 1:在命令窗口执行命令: CREATE FORMmyform,打开表单设计器新建表单。从 “表单控件 ”工具栏中向表单添加一个表格控件。 步骤 2:在“属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值;表单及控件属性设置见表 2-30。 步骤 3:在命令窗口执行命令: CREATE MENU mymenu,在弹出的 “新建菜单 ”对话框中单击 “菜单 ”图标按钮,打开菜单设计器。 步骤 4:在菜
13、单设计器 “菜单名称 ”列的文本框中依次输入 “商品分类 ”和 “退出 ”两个主菜单名, “商品分类 ”菜单命令的“结果 ”下拉框中选择为 “子菜单 ”,单击 “创建 ”。按钮进入下级菜单设计, 在 “菜单名称 ”列的第 1、 2、 3行文本框中依次输入子菜单名 “小家电 ”、 “饮料 ”和 “酒类 ”,将 3个子菜单的 “结果 ”都设置为 “过程 ”,分别单击 3个过程后面的 “创建 ”按钮打开过程编辑器,编写过程代码。 步骤 5:三个过程代码如下; “小家电 ”菜单命令的过程代码: myform Grild1 RecordSource=“SELECT products *FROM prod
14、ucts, cateaory WHERE cateuorv分类编码 =products分类编码 AND分类名称=小家电 INTOCURSOR lsb“。 “饮料 ”菜单命令的过程代码: myform Grid1 RecordSource=“SELECT products *FROM Products cateaorv WHERE cateaorv分类编码 =products分类编码 AND 分类名称 =饮料 INTO CURSOR 1sb“。 “酒类 ”菜单命令的过程代码: myform Grild1 RecordSource=“SELECT products *FROM Products c
15、ateaory WHERE cateaorv分类编码 =products分类编码 AND 分类名称 =酒类 INTOCURSOR 1sb“步骤 6:通过 “菜单级 ”下拉框返回主菜单项设计界面,设置 “退出 ”菜单项的 “结果 ”列为 “过程 ”,并通过单击 “创建 ”按钮打开一个窗口来添加 “退出 ”菜单项要执行的命令: myform: release。 步骤 7:执行【显示】 【常规选项】菜单命令,在弹出的 “常规选项 ”对话框中勾选 “顶层表单 ”复选框,然后单击 “确定 ”按钮,保存修改。如图 2-60所示。 步骤 8:执行【菜单】 【生成】菜单命令,在弹出的 Visual FoxPr
16、o对话框中单击 “是 ”按钮,接着系统会弹出 “生成菜单 ”对话框,单击 “生成 ”按钮生成一个可执行的菜单文件 (mymenu mpr)。 步骤 9:在命令窗口执行命令: MODIFY FORMmyform,打开表单设计器。选中表单,在 “属性 ”窗口中设置表单 (goods)的 “ShowWindow”属性值为 “2-作为顶层表单 ”。 步骤 10:双击表单 (goods)编写表单的 Load事件代码:DO MYMENU MPR WITH THIS, T。 步骤 11:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解 析】 本题的主要考核点是:表
17、单控件的属性的修改、 SQL语句运用、菜单的建立、顶层表单的设置等知识点。 表单控件名用 Name属性设置,标题用 Caption设置。表格的RecordsourceType属性用来指明表格数据源的类型。 为顶层表单添加下拉式菜单,应先在 “菜单设计器 ”中按要求设计下拉式菜单,然后做两个设置:一是在 “显示 ”菜单下的 “常规选项 ”对话框中选择 “顶层表单 ”复选框,说明该菜单应用在项层菜单中,二是将表单的 ShowWindow属性值设置成“2-作为顶层表单 ”,使其成为顶层表单。在菜 单设计时, “小家电 ”、 “饮料 ”和 “酒类 ”3个菜单项对应的操作应该由过程实现,分别通过 SQL语句编写 3个查询,并将查询赋值给表格 Grid1的 Recordsource属性。这里注意:查询的 select语句要用引号引起来。 在顶层表单中运行菜单,格式为: DO 文件名 WITH This, “菜单名 ” 其中文件名指定为被调用的菜单程序文件,扩展名 mpr不能省略。 This表示当前表单对象的引用。通过菜单名可以为被添加的下拉式菜单的条形菜单指定一个内部名字,也可以省略在项层表单的菜 单中关闭表单,应该引用表单的名称 (Name值 ),并使用 Release方法关闭表单:表单名称 Release。