1、国家二级 VF机试模拟试卷 163及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下,有一个学生数据库 sdb,打开该数据库,完成如下操作: (1)为学生表 student的 “性别 ”字段增加约束:性别 $“男女 “,出错提示信息为 “性别必须是男或女 ”,默认值为 “女 ”。 (2)为学生表 student创建一个主索引,主索引的索引名为 sid,索引表达式为学号。为课程表 course创建一个主索引,主索引的索引名为 cid,索引表达式为课程号。为选课表 sc创建一个主索引和两个普通索引 (升序 ),主索引的 索引名为 scid,索引表达式为 “学号 +课程号 ”;一个普通索引
2、的索引名为 sid,索引表达式为学号;另一个普通索引的索引名为 cid,索引表达式为课程号。 (3)通过 “学号 ”字段建立选课表 sc和学生表 student表间的永久联系。通过 “课程号 ”字段建立选课表 sc与课程表 course间的永久联系。并为以上建立的联系设置参照完整性约束:更新规则为 “级联 ”;删除规则为 “限制 ”;插入规则为 “限制 ”。 (4)使用报表向导建立一个简单报表。要求选择学生表 student表中所有字段;记录不分组;报表样式为 “随意 式 ”;列数为 “1”,字段布局为 “列 ”,方向为 “纵向 ”;排序字段为 “学号 ”。升序;报表标题为 “学生基本情况一览
3、表 ”;报表文件名为one frx。 二、简单应用题( 40分) 2 在考生文件夹下,打开学生数据库 sdb,完成如下简单应用: (1)使用报表向导建立一个简单报表。要求选择 student表中所有字段:记录不分组;报表样式为 “随意式 ”:列数为 “1”,字段布局为 “列 ”,方向为 “纵向 ”;排序字段为 “学号 ”(升序 ):报表标题为 “学生基本情况一览表 ”;报表文件名为 two。 (2)使用查询设计器 设计一个查询,查询每个班级的 “班级号 ”、 “班级名 ”、 “班长名 ”和 “班主任名 ”,查询结果按 “班级号 ”升序排序,并输出到 one表中。运行该查询,并将设计的查询保存为
4、 one qpr文件。注意: 表之间的关联,一个是 student表的 “学号 ”与 class表的 “班长号 ”,另一个是class表的 “班主任号 ”与 teacher表的 “教师号 ”。 查询结果的各列的名称分别为 “班级号 ”、 “班级名 ”、 “班长名 ”和 “班主任名 ”。“班长名 ”列的数据来自于 student表的 “姓名 ”, “班主任名 ”列的数据来自于 teacher表的 “教师名 ”。 三、综合应用题( 30分) 3 在考生文件夹下有 “订货管理 ”数据库。设计一个名为 “cd1”的菜单,菜单中有两个菜单项 “查询 ”和 “关闭 ”。 程序运行时: 单击 “查询 ”菜单
5、项应完成下列操作:查询每一张订单的订单编号 ”“客户编号 ”“客户名称 ”“送货方式 ”和 “总金额 ”,并按 “总金额 ”降序排列,如果 “总金额 ”相等,则按 “订单编号 ”升序排列。将查询结果存入表 “result”中。 单击 “关闭 ”菜单项,程序终止运行。 国家二级 VF机试模拟试卷 163答案与解析 一、基本操作 题( 30分) 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY DATABASE sdb,打开数据库设计器。 在数据库设计器中,右击 student表,选择【修改】快捷菜单命令,打开 student表设计器,在 “字段 ”选项卡中选中 “性别 ”,在 “字段
6、有效性 ”的 “规则 ”文本框中输入:性别 $“男女 “,在 “信息 ”框中输入: ”性别必须是男或女 ”,在 “默认值 ”文本框中输入: “女 “。 (2) 接上题,在 student表设计器中,在 “字段 ”选项卡中选中 “学号 ”,在 “索引 ”列中选择 “升序 ”,然后在 “索引 ”选项卡中修 改 “索引名 ”为“sid”,修改 “类型 ”为 “主索引 ”,单击 “确定 ”按钮保存表结构修改。 在数据库设计器中,右击 course表,选择【修改】快捷菜单命令,打开 course表设计器,在 “字段 ”选项卡中选中 “课程号 ”,在 “索引 ”列中选择 “升序 ”,然后在 “索引 ”选项
7、卡中修改“索引名 ”为 “cid”,修改 “类型 ”为 “主索引 ”,单击 “确定 ”按钮保存表结构修改。 在数据库设计器中,右击 sc表,选择【修改】快捷菜单命令,打开 sc表设计器,选中 “索引 ”选项卡,在 “索引名 ”下方的文本框中输入 “scid”,在 “索引 ”选项卡中将 “类型 ”选择为 “主索引 ”,在 “表达式 ”下方的文本框中输入 “学号 +课程号 ”,建立主索引。如图 2-39所示。 接第 步,在 SC表设计器的 “索引 ”选项卡中,在第二行的 “索引名 ”文本框中输入 “sid”,将 “类型 ”选择为 “普通索引 ”,在 “表达式 ”下方的文本框中输入 “学号 ”,建立
8、一个普通索引;然后在第三行的 “索引名 ”文本框中输入“cid”,将 “类型 ”选择为 “普通索引 ”,在 “表达式 ”下方的文本框中输入 “课程号 ”,建立一个普通索引,单击 “确定 ”按钮保存表结构修改。如图 2-39所示。(3) 在数据库设计器中,拖动 student表 “索引 ”下方的主索引 “sid”到 sc表中 “索引 ”下方的普通索引 “sid”上,为两个表建立联系。 拖动 course表 “索引 ”下方的主索引 “scid”到 sc表中 “索引 ”下方的普通索引 “cid”上。为两个表建立联系。 选中 student和 sc两个表之间的关联线 (被选中的线会变粗 ),首先执行【
9、数据库】 【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。在打开的 “参照完整性 ”对话框的表格中,将其中的两对关系均做如下操作:选择 “更新 ”下的单元格内容为 “级联 ”; “删除 ”下的单元格内容为 “限制 ”; “插入 ”下的单元格内容为 “限制 ”。单击 “确定 ”按钮保存参照完整性的修改。如图 2-40所示。 (4) 在命令窗口执行命令: OPEN DATABASE sdb,打开 SDB数据库。 执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在弹出的 “新建 ”对话框中选中 “报表 ”选项,然后
10、单击 “向导 ”图标按钮,系统弹出 “向导选取 ”对话框,选中 “报表向导 ”项,单击 “确定 ”按钮,启动报表向导。 在报表向导的 “步骤 1-字段选取 ”界面的 “数据库和表 ”下选中 student表,将 “可用字段 ”中的字段全部添加到 “选定字段 ”中,单击“下一步 ”按钮。 在报表向导的 “步骤 2-分组记录 ”界面中。单击 “下一步 ”按钮。 在报表向导的 “步骤 3-选择报表样式 ”界面的 “样式 ”下选择 “随意式 ”,单击 “下一步 ”按钮。 在报表向导的 “步骤 4-定义报表布局 ”的 “列数 ”下输入 “1”,在 “字段布局 ”下选择 “列 ”,在 “方向 ”下选择 “
11、纵向 ”,单击 “下一步 ”按钮。 在报表向导的 “步骤 5-排序记录 ”界面中双击 “可用的字段或索引标识 ”中的 “学号 ”字段到 “选定字段 ”列表中,再选择 “升序 ”,单击 “下一步 ”按钮。 在报表向导的 “步骤 6-完成 ”界面中的 “报表标题 ”下方文本框中输入 “学生基本情况一览表 ”,单击 “完成 ”按钮。 在“另存为 ”对话框的 “保存报表为: ”框中输入报表文件名 ONE,单击 “保存 ”按钮。 【试题解析】 本大题考查字段有效性规则的建立;表索引的建立;数据库表间永久联系的建立和参照完整性约束的设置;报表向导的使用。 对表中字段建立有效性规则和设置默认值是在表设计器中
12、操作的,在探作时要注意先选中需要建立有效性规则的字段。为数据库表建立索引也可以在表设计器中进行,在表设计器的 “字 段 ”选项卡中,可以通过选择 “排序 ”下拉框中的 “升序 ”或 “降序 ”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在 “索引 ”选项卡中进行修改。 参照完整性是针对两个表进行设置的,在建立参照完整性前要先建立两个表的关联,且有一个表中必须建立关联字段的主索引 (或候选索引 ),另一个表要建立普通索引,建立两个表联系后要先清理数据库,然后再设置参照完整性。 利用报表向导制作报表属于比较简单的操作,可以通过 “新建 ”对话框打开报表后
13、,根据向导提示一步步完成即可。 二、 简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb,打开 sdb数据库环境。 步骤 2:执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在弹出的 “新建 ”对话框中选中 “报表 ”选项,然后单击 “向导 ”图标按钮,系统弹出 “向导选取 ”对话框,选中 “报表向导 ”项,单击 “确定 ”按钮,启动报表向导。 步骤 3:在报表向导的 “步骤 1-字段选取 ”界面的 “数据库和表 ”下选中“STUDENT”表,将 “可用字段 ”中的字段添加到 “选定字段 ”中,单击 “
14、下一步 ”按钮。 步骤 4:跳过 “步骤 2-分组记录 ”界面继续单击 “下一步 ”按钮。 步骤 5:在报表向导的 “步骤 3-选择报表样式 ”界面中选中 “样式 ”列表中的 “随意式 ”,单击 “下一步 ”按钮。 步骤 6:在报表向导的 “步骤 4-定义报表布局 ”界面中设置 “列数 ”为 “1”, “字段布局 ”为 “列 ”,选择 “方向 ”为 “纵向 ”,单击 “下一步 ”按钮。 步骤 7:在报表向导的 “步骤 5-排序记录 ”界面中双击 “可用的字段或索引标识 ”中的 “学号 ”字段到 “选定字段 ” 列表中,单击 “下一步 ”按钮。 步骤 8:在报表向导的 “步骤 6-完成 ”界面的
15、 “报表标题 ”文本框中输入 “学生基本情况一览表 ”,单击 “完成 ”按钮,在 “另存为 ”对话框的 “保存报表为: ”框中输入报表文件名 two,单击 “保存 ”按钮。 (2)步骤 1:在命令窗口执行命令: OPEN DATABASE sdb,打开数据库环境。 步骤 2:在命令窗口执行命令: CREATE QUERY one,打开查询设计器,在 “添加表或视图 ”对话框中,分别双击 “teacher”表、 “class”表和 “student”表 (注意 一定要按顺序添加表 ),将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为 3个表在查询设计器中建立联系。 步骤
16、 3:根据题目要求,此时要修改 “student”表和 “class”表之间的默认联系。双击 “student”表和 “class”,表之间的连线,系统弹出 “联接条件 ”对话框,在显示“class班级号 ”的下拉框中选择 “class班长号 ”,在显示 “student班级号 ”的下拉框中选择 “student学号 ”,单击 “确定 ”按钮保存修改。 步骤 4:依次双击 “class”表 中的 “班级号 ”和 “班级名 ”字段,添加到 “字段 ”选项卡的 “选定字段 ”列表中;然后在 “字段 ”选项卡的 “函数和表达式 ”下的文本框中输入表达式: student姓名 as班长名,再单击 “添
17、加 ”按钮,将其添加到 “选定字段 ”列表中:以同样的方法再向 “选定字段 ”列表中添加一个表达式: teacher教师名 as班主任名。 步骤 5:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 one,单击 “确定 ”按钮。 步骤 6:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 【试题解析】 (1)本题考查的是报表向导的使用,操作前可以将数据库环境打开,这样在报表向导的 “步骤 1-字段选取 ”界面中可直接看到作为报表数据源的表,之后按照向导提示完成题目所要求的设置即可。
18、 (2)本题主要考查的查询设计器的使用,首先要判断查询数据源包括哪些数据表,将数据表添加到查询设计器后,再根据题目要求从每个表中选取字段,设置查询条件等完成查询。本题操作的关键有 3点: 首先是 3个表的添加顺序,要按照 “teacher”表、 “class”表和 “student”表的顺序进行添加,否则会导致两个表之间无法建立联系,或是导致查询出错。 其次,由于数据库中已存在表之间的联系,在添加数据库表到查询设计器中的时候,会将表之间的联系也一起进行到查询设计器中,而本题中根据题目的要求需要改变这种联系,因此,注意修改表间默认的联系。 最后是字段的重命名,根据题目要求最终输出的字段包括 “班
19、长名 ”和 “班主任名 ”,因此需要利用 AS短语对原本输出的 “student姓名 ”和 “teacher教师名 ”重新命名。 三、综合应用题( 30分) 3 【正确 答案】 选择【文件】 【新建】命令,选择 “菜单 ”,单击 “新建文件 ”按钮,再单击 “菜单 ”按钮,打开菜单设计器,在 “菜单名称 ”中输入 “查询 ”,在 “结果 ”下拉列表框中选择 “过程 ”,单击 “创建 ”按钮创建 “查询 ”过程,在过程代码编辑窗口中输入以下代码: SELECT order_m订单编号, order_m客户编号,客户名称,送货方式,SUM(数量 *价格 )AS总金额 INTO TABLE resu
20、lt FROM order_m, order_d,客户,商品信息; WHERE order_m订 单编号 =order_d订单编号 AND。 order_m客户编号 =客户客户编号 AND order_d商品编号 =商品信息商品编号; GROUP BY order_m订单编号, order_m客户编号,客户名称,送货方式ORDER BY总金额, order_m订单编号关闭过程代码编辑窗口回到菜单设计器。 单击下一行,输入子菜单名称 “关闭 ”,在 “结果 ”下拉列表框中选择 “命令 ”,在右边的文本框中编写命令: SET SYSMENU TO DEFAULT。 选择【菜单】 【生成】命令, 将菜单保存为 “cd1”,生成一个菜单文件“cd1 mpr”,关闭菜单设计窗口。 在命令窗口输入命令: DO cd1 mpr,看到 Visual FoxPro的菜单栏被新建的菜单所代替,单击 “查询 ”菜单执行查询,查询结果自动保存到表 “result”中,单击“关闭 ”菜单命令将恢复系统菜单。