1、国家二级 VF机试(操作题)模拟试卷 186及答案与解析 一、基本操作题 1 (1)将当前文件夹下的自由表 class(班级表 )和 teacher(教师表 )添加到学生数据库sdb中。 (2)为班级表 class创建一个主索引和普通索引 (升序 ),主索引的索引名和索引表达式均为 “班级号 ”;普通索引的索引名和索引表达式均为 “班主任号 ”。为教师表teacher创建一个主索引,索引名和索引表达式均为 “教师号 ”。 (3)通过 “班级号 ”字段建立班级表 class和学生表 student表间的永久联系。通过班级表 class的 “班主任号 ”字段与教师表 teacher的 “教师号 ”
2、字段建立班级表 class和教师表 teacher间的永久联系。 (4)为以上建立的两个联系设置参照完整性约束:更新规则为 “级联 ”;删除规则为 “限制 ”;插入规则为 “限制 ”。 二、简单应用题 2 在考生文件夹下,打开资源数据库 frdb,完成如下简单应用: (1)使用表单向导选择资源表 fr_t生成一个名为 fr_edit的表单。要求选择 fr_t表中所有字段,样式为阴影式;按钮类型为图片按钮;排序字段选择户主编号 (升序 );表单标题为 “资源数据输入 维护 ”。 (2)使用查询设计器设计一个查询 one,按户主编号 (取自 fr_t表 ),树种名称 (取自tree_t表 )分组汇
3、总每个农户的面积 (取自 fr_t表 )和蓄积 (取自 fr_t表 ),查询结果按户主编号升序排序,并输出到 one表中。 one表中的字段为户主编号、树种名称、面积合计、蓄积合计。注意:查询设计完成后必须运行。 三、综合应用题 3 设计一个表单名和文件名均为 currency form的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为: “外币市值情况 ”。表单中有两个文本框 (text1和 text2)和两个命令按钮: “查询 ”(command1)与 “退出 ”(command2)。 运行表单时,在文本框 text1中输入某人的姓名,然后单击 “查询 ”,则 text2
4、中会显示出他所持有的全部外币相当于人民币的价值数量。注意:某种外币相当于人民币数量的计算公式:人民币价值数量 =该种外币的 “现钞买入价 ”, * 该种外币 “持有数量 ”。 单击 “退出 ”按钮时关闭表单。 国家二级 VF机试(操作题)模拟试卷 186答案与解析 一、基本操作题 1 【正确答案】 (1) 命令窗口执行: MODIFY DATABASE sdb,打开数据库设计器。 右击数据库设计器,选择【添加表】,在 “打开 ”对话框中双击 “class”、“teacher”表添加到数据库中。 (2) 右击数据库设计器中的 “class”表,选【修改】,打开 “class”表设计器, “字段
5、”选项卡中选 “班级号 ”, “索引 ”列中选 “升序 ”,同样方法为 “班主任号 ”建立 “升序 ”排序;在 “索引 ”选项卡中选 “班级号 ”,并修改其 “类型 ”为 “主索引 ”,单击 “确定 ”按钮保存表结构修改。 参照上面的操作,为 “teacher”表建立 “教师号 ”字段的主索引。 (3) 在数据库设计器中拖动 “class”表 “索引 ,下方的主索引 “班级号 ”到 “student”表中 “索引 ”下方的普通索引 “班级号 ”上,为两个表建立联系。 以同样的方法,为 “teacher”表和 “class”表建立联系,这样便建立了 “student”、“class”和 “tea
6、cher”3个表之间的联系。 (4) 选中 “student”表和 “class”表之间的关联线 (被选中的连线会变粗 ),首先执行【数据库】 【清理数据库】菜单命令,清空数据表中带有 删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,选择 “更新 ”列下两个单元格中的内容都为 “级联 ”: “删除 ”列下两个单元格中的内容都为 “限制 ”; “插入 ”列下两个单元格中的内容都为 “限制 ”,单击 “确定 ”按钮保存参照完整性的修改。 【试题解析】 本大题考查了数据表的基本操作;表索引的建立及参照完整性的设置。 建立参照完整性前要先建立
7、两个表的关联,且有一个表中必须建立关联字段的主索引 (或候选索引 ),另一个表要建立普通索引,如果表中设置多个 索引字段时,鼠标指针一定要拖动到进行联系的字段上。 二、简单应用题 2 【正确答案】 (1) 步骤 1:命令窗口执行: OPEN DATABASE frdb,打开 frdb数据库。 步骤 2:执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在 “新建 ”对话框中选中 “表单 ”选项,单击 “向导 ”图标按钮,弹出 “向导选取 ”对话框,选 “表单向导 ”项,单击 “确定 ”按钮,启动表单向导。 步骤 3: “步骤 1-字段选取 ”的 “数据库和表 ”下选
8、“FR_T”表,将 “可用字段 ”全部 添加到 “选定字段 ”中,单击 “下一步 ”。 步骤 4: “步骤 2-选择表单样式 ”的 “样式 ”下选中 “阴影式 ”,在 “按钮类型 ”下选择“图片按钮 ”,单击 “下一步 ”。 步骤 5: “步骤 3-排序次序 ”中双击 “可用的字段或索引标识 ”中的 “户主编号 ”字段到 “选定字段 ”列表中,再选择 “升序 ”,单击 “下一步 ”按钮。 步骤 6: “步骤 6-完成 ”中的 “淆键入表单标题 ”下方文本框中输入 “资源数据输入维护 ”,单击 “完成 ”按钮。 步骤 7:在 “另 存为 ”对话框的 “保存表单为: ”框中输入表单文件名 fr_e
9、dit,单击“保存 ”按钮。 (2) 步骤 1:命令窗口执行: OPEN DATABAsE frdb,打开数据库环境。 步骤 2:命令窗口执行: CREATE QUERY one,打开查询设计器,在“添加表或视图 ”对话框中,分别双击 FR_T表和 TREE_T表,将表添加到查询设计器中, 2个表自动在查询设计器中建立联系。 步骤 3: “字段 ”选项卡的 “可用字段 ”中,依次双击 “fr_t户主编号 ”和 “tree_t树种名称 ”,将它们添加到 “选定字段 ”列表中;在 “函数和表达式 ”下的文本框中输入表达式: sum(fr_t面积 )as面积合计,再单击 “添加 ”按钮,将其添加到
10、“选定字段 ”列表中;继续在 “函数和表达式 ”下的文本框中输入表达式: sum(fr_t蓄积 )as蓄积合计,同样单击 “添加 ”按钮,将其添加到 “选定字段 ”列表中。 步骤 4:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “fr_t户主编号 ”,将其添加到 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序 ”。 步骤 5:在 “分组依据 ”选项卡内依次双击 “可用字段 ”列表框中的 “fr_t户主编号 ”和 “tree_t树种名称 ”,将两个字段添加到 “分组字段 ”列表框中。 步骤 6:执行【查询】 【查询去向】菜单命令,在 “查询去向 ”对话框中单击“表 ”按钮
11、,在 “表名 ”中输入文件名 one,单击 “确定 ”按钮。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件灾下。 【试题解析】 (1)本题主要考查的是表单向导的使用。 (2)本题主要考查的是查询设计器的使用。重点是要弄清楚按哪些字段分组。根据题意,应该先按户主编 号分组,再按树种名称分组,即可得出每个农户所有的每个树种的面积合计和蓄积合计。 三、综合应用题 3 【正确答案】 步骤 1:在命令窗口执行命令: CREATE FORM CURRENCYFORM,打开表单设计器新建表单。向表单添加两个文本框和两个命令按钮控件。 步骤 2:在 “属性 ”面板
12、的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 3 28。 步骤 3:双击命令按钮,编写各个命令按钮的 Click事件代码。各按钮代码如下: *“查询 ”按钮的 Click事件代码 (以下 SQL查询语句是通过查询 设计器生成 )*NAME=ALL TRIM(THISFORM TEXT1 VALUE)OPEN DATABASE RATEUSE CURRENCY SLLOCATE FOR姓名 =NAMESUMM=0DO WHILE NOT EOF() SELECT现钞买入价 FROM RATEEXCHANGE; WHERE RATE EXCHANGE外币代码 =CURRENC
13、Y SL外币代码; INTO ARRAY A SUMM=SUMM+A1*CURRENCY SL持有数量 CONTINUEENDDOTHIS FORM TEXT2 VALUE=SUMM *“退出 ”按钮的 Click事件代码 * THISFORM RELEASE 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解析】 本大题考查了表单及控件的常用属性和方法的设置;程序的循环结构; SQL简单查询。 本题的重点是 “查询 ”按钮 click事件的编写由于每个人可能持有多种外币,故应该将某人持有的不同种外币对应的人民币用 SUM()函数求和。大致思
14、想为:以currency_s1表为当前表,用 locate for命令在该表中查找 “姓名 ”与 text1文本框中所输入姓名相同的记录,如果找到的话,就将 currency_s1表和 rate exchange表做连接查询,从而求出谊记录对应外币的 “现钞买入价 ”,并将其存放到数组 a中,然后通过公式求出人民币价值数量之和。在这里,当使用 locate for命令查找时,使用了 do while循环和 continue命令,目的是在 currency_s1表中查出所有与text1文本框中所输入姓名相同的记录,然后进行计算。 注意: SQL查询条件表示式中字符串定界 符要与指定表格数据源使用的字符定界符不同。