1、国家二级 VF机试模拟试卷 209及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下的 “订货管理 ”数据库中完成如下操作: (1)将 order_detail、 order_list和 customer表添加到数据库。 (2)为 order_list表创建一个主索引,索引名和索引表达式均是 “订单号 ”。 (3)建立表 order_list和表 order_detail间的永久联系 (通过 “订单号 ”字段 )。 (4)为以上建立的联系设置参照完整性约束:更新规则为 “限制 ”,删除规则为 “级联 ”,插入规则为 “限制 ”。 二、简单应用题( 40分) 2 在考生文件夹下,打开学
2、生数据库 sdb,完成如下简单应用: (1)使用查询设计器设计一个名称为 svg的查询,查询每个 “女 ”同学的学号 (来自student表 )、姓名、课程名、成绩和任课教师 (来自 teacher表的教师名 ),查询结果按学号升序排序并输出到表 one(查询去向 )中。设计完成后,运行该查询。表 one中的字段分别为:学号、姓名、课程名、成绩、任课教师。 (2)在考生文件夹下,使用快捷菜单设计器设计一个名称为 smenu的快捷菜单。要求如下: 菜单包括 “数据浏览 ”和 “退出 ”两个菜单项: “数据浏览 ”菜单包括 “学生表 ”、 “选课表 ”和 “课程表 ”三个子菜单: 学生表子菜单在过
3、程中使用 SQL语句 “SELECTFROM student”查询学生表的记录。 选课表子菜单在过程中使用 SQL语句 “SELECT FROM SC”查询学生选课表的记录。 课程表选项在过程中使用 SQL语句 “SELECT*FROM course”查询课程表的记录。 “退出 ”菜单使用命令返回系统默认的菜单。 三、综合应用 题( 30分) 3 建立表单,表单文件名和表单名均为 myform_a,表单标题为 “商品浏览 ”,表单示例如图 1-36所示 (左图 )。其他功能要求如下: 用选项按钮组 (OptionGroup1)控件选择商品分类 (饮料 (Option1)、调味品 (Option
4、2)、酒类 (Option3)、小家电(Option4)。 单击 “确定 ”(Commanct2)命令按钮,显示选中分类的商品,要求使用DO CASE语句判断选择的商品分类 (右图 )。 在右图所示界面中按 Esc键返回左图所示界面。 单击 “退出 ”(Command1)命令按钮,关闭并释放表单。注:选项按钮组控件的 Value属性必须为数值型。 国家二级 VF机试模拟试卷 209答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY DATABASE订货管理,打开数据库设计器。 在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的 “打
5、开 ”对话框中双击 order_detail表,将表添加到数据库中,以同样的方法将 order_list表和 customer表添加到数据库中。 (2)在数 据库设计器中,右击 order_list表,选择【修改】快捷菜单命令,打开order_list表设计器,在 “字段 ”选项卡中选中 “订单号 ”,在 “索引 ”列中选择 “升序 ”,然后在 “索引 ”选项卡中修改 “索引类型 ”为主索引,建立 “订单号 ”字段的主索引,单击 “确定 ”按钮保存表结构修改。 (3) 在数据库设计器中,右击 order_detail表。选择【修改】快捷菜单命令,打开 order_detail表设计器,在 “字
6、段 ”选项卡中选中 “订单号 ”,在 “索引 ”列中选择 “升序 ”,建立 “订单号 ”字段的普通索引,单击 “确定 ”按钮 保存表结构修改。 在数据库设计器中,拖动 order_list表 “索引 ”下方的主索引 “订单号 ”到 order detail表 “索引 ”下方的普通索引 “订单号 ”上,为两个表建立联系。 (4) 选中 order_list和 order_detail两个表之间的关联线 (被选中的线会变粗 ),执行【数据库】 【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,选择
7、“更新 ”下的单元格内容为 “限制 ”; “删除 ”下 的单元格内容为 “级联 ”; “插入 ”下的单元格内容为 “限制 ”。单击 “确定 ”按钮保存参照完整性的修改。 【试题解析】 本大题考查了数据库设计器的使用;索引的建立及永久联系的建立;参照完整性的设置。 为数据库表建立索引可以在表设计器中进行,在表设计器的 “字段 ”选项卡中,可以通过选择 “排序 ”下拉框中的 “升序 ”或 “降序 ”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在 “索引 ”选项卡中进行修改。 在建立参照完整性前要先建立两个表的关联,且有一个表中必须建立关 联字段的主索引
8、(或候选索引 ),另一个表要建立普通索引,建立两个表联系后要先清理数据库,然后再设置参照完整性。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb,打开数据库环境。 步骤 2:在命令窗口执行命令: CREATE QUERY svg,打开查询设计器,在 “添加表或视图 ”对话框中,分别双击 student表、 sc表、 course表和 teacher表,将表添加到查询设计器中,此时,添加的表会按照数据库中已 存在的表间联系自动为 4个表在查询设计器中建立联系。 步骤 3:根据题目要求,在 “字段 ”选项卡的 “可用字段 ”中
9、,依次双击 “student学号 ”、 “student姓名 ”、 “course课程名 ”、 “sc成绩 ”,将它们添加到 “选定字段 ”列表中;然后在 “函数和表达式 ”下的文本框中输入表达式: teacher教师名 as任课教师,再单击 “添加 ”按钮,将其添加到 “选定字段 ”列表中。 步骤 4:在 “筛选 ”选项卡内的 “字段名 ”列中选择 “student性别 ”, “条件 ”列选择“=”, “实例 ”列输入 “女 ”。 步骤 5:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “student学号 ”,将其添加到 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序
10、 ”。 步骤 6:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮。接着在 “表名 ”中输入文件名 ONE,单击 “确定 ”按钮。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 (2)步骤 1:在命令窗口执行命令: CREATE MENU smenu,在弹出的 “新建菜 单 ”对话框中单击 “快捷菜单 ”图标按钮,打开快捷菜单设计器。 步骤 2:在菜单设计器 “菜单名称 ”列的文本框中依次输入 “数据浏览 ”和 “退出 ”两个主菜单名, “数据浏览 ”菜单命令的 “结果 ”下拉框中选择为 “子菜单 ”
11、,单击 “创建 ”按钮进入下级菜单设计,在 “菜单名称 ”列的第 1、 2、 3行文本框中依次输入子菜单名 “学生表 ”、 “选课表 ”和 “课程表 ”,将 3个子菜单的 “结果 ”都设置为 “过程 ”,分别单击 3个过程后面的 “创建 ”按钮打开过程编辑器,编写过程代码。 步骤 3:三个过程代码如下: “学生表 ”菜单命令的 过程代码: SELECT*FROM student。 “课程表 ”菜单命令的过程代码: SELECT *FROM course。 “选课表 ”菜单命令的过程代码: SELECT *FROM sc。 步骤 4:通过 “菜单级 ”下拉框返回主菜单项设计界面,设置 “退出 ”
12、菜单项的 “结果 ”列为 “命令 ”,并输入命令语句: SET SYSMENU TO DEFAULT 步骤 5:执行【菜单】 【生成】菜单命令,在弹出的 Visual FoxPro对话框中单击 “是 ”按钮,接着系统会弹出 “生成菜单 ”对话框,单击 “生成 ”按钮生成一个可执行的菜单文件 (smenu mpr)。 【试题解析】 (1)本题主要考查的是查询设计器的使用。该查询用到了 student、sc、 course和 teacher四张表,应按照 student表、 sc表、 course表和 teacher表的顺序将其添加到查询设计器,再根据题目要求从每个表中选取字段,设置查询条件等完成
13、查询。 在查询设计器中输入计算表达式时,可直接在查询设计器 “字段 ”选项卡的 “函数和表达式 ”下 的文本框中输入表达式,同时也可以通过打开 “表达式生成器 ”对话框进行输入,要为输入的表达式指定一个新的字段名,可以通过 AS短语指定。 (2)本题主要考查了快捷菜单的设计,快捷菜单与下拉菜单相比,缺少条形菜单,即快捷菜单仅包括一个弹出式菜单,其他设计基本上都与下拉菜单的设计一致。操作过程中注意主菜单与子菜单的操作,从子菜单返回主菜单设计界面,可以使用菜单设计器右侧的 “菜单级 ”下拉框,另外,编写 “退出 ”菜单命令时,要熟记返回系统菜单的命令语句: SET SYSMENU TO DEFAU
14、LT;最后注意生成可执行菜单文件。 三、综合应用题( 30分) 3 【正确答案】 步骤 1:在命令窗口执行命令: CREATE FORMmyform_a,打开表单设计器新建表单。从 “表单控件 ”工具栏中依次向表单添加一个选项按钮组和两个命令按钮控件。 步骤 2:在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 2-38。步骤 3:双击命令按钮,编写各个命令按钮的 Click事件代码。各按钮代码如下: *“确定 ”按钮的 Click事件代码 (以下 SQL查询语句是通过查询设计器生成 )*DO CASE CASE THISFORM OPTIONGROUP1
15、VALUE=1 SELECT商品 *; FROM 商品管理 !商品 INNER JOIN商品管理 !分类; ON 商品分类编码 =分类分类编码; WHERE 分类分类名称 =“饮料 “ CASE THISFORM 0PTIONGROUP1 VALUE=2 SELECT 商品 *; FROM 商品管理 !商品 INNER JOIN商品管理 !分类; ON 商品分类编码 =分类分类编码; WHERE 分类分类名称 =“调味品 “ CASE THISFORM OPTIONGROUP1 VALUE=3 SELECT 商品 *; FROM 商品管理 !商品 INNER JOIN 商品管理 !分类; ON
16、商品分类编码 =分类分类编码; WHERE 分类分类名称 =“酒类 “ CASE THISFORM OPTIONGROUP1 VALUE=4 SELECT 商品 *, FROM 商品管理 !商品 INNER JOIN 商品管理 !分类; ON 商品分类编码 =分类分类编码; WHERE分类分类名称 =“小家电 “ENDCASE *“退出 ”按钮的 Click事件代码* THISFORM RELEASE 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解析】 本大题考查了表单及控件的常用属性和方法的设置;程序的分支结构; SQL简单的联接查询。 修改选项组单选按钮的标题属性值时,要注意选项组处于 “编辑 ”状态,能单独选定选项组中的按钮,否则 “属性 ”面板中不会出现 Caption属性;选项组的ButtonCount属性用来控制选项组中单选按钮的个数,是一个非常重要的属性。 通过 DO CASE分支结构判断当前被选定的是哪个单 选项,并完成该单选项所对应执行的功能; SQL程序设计部分考查的是 SQL简单联接查询,属于比较简单的查询语句。