1、国家二级 VF机试(操作题)模拟试卷 226及答案与解析 一、基本操作题 1 在考生文件夹下,有一个学生数据库 sdb,打开该数据库,完成如下操作: (1)为学生表 student的 “性别 ”字段增加约束:性别 $”男女 ”,出错提示信息为 “性别必须是男或女 ”,默认值为 “女 ”。 (2)为学生表 student创建一个主索引,主索引的索引名为 sid,索引表达式为学号。为课程表 course创建一个主索引,主索引的索引名为 cid,索引表达式为课程号。为选课表 sc创建一个主索引和两个普通索引 (升序 ),主索引的索引名为 scid,索引表达式为 “学号 +课程号 ”;一个普通索引的索
2、引名为 sid,索引表达式为学号;另一个普通索引的索引名为 cid,索引表达式为课程号。 (3)通过 “学号 ”字段建立选课表 sc和学生表 student表间的永久联系。通过 “课程号 ”字段建立选课表 sc与课程表 course间的永久联系。并为以上建立的联系设置参照完整性约束:更新规则为 “级联 ”;删除规则为 “限制 ”;插入规则为 “限制 ”。 (4)使用报表向导建立一个简单报表。要求选择学生表 student表中所有字段;记录不分组;报表样式为 “随意式 ”:列数为 “1”,字段布局为 “列 ”,方向为 “纵向 ”;排序字段为 “学号 ”,升序;报表标题为 “学生基本情况一览表 ”
3、:报表文件名为one fix。 二、简单应用题 2 (1)在考生文件夹下已有表单文件 formone scx,如图 3 26所示,其中包含一个列表框、一个表格和一个命令按钮。 请按下面要求完成相应的操作: 在表单的数据环境中添加 orders表。 将列表框List1设置成多选,另外将其的 RowSourceType属性值设置为 “8-结构 ”、 RowSource设置为 orders。 将表格 Gridl的 RecordSourceType的属 性值设置为 “4-SQL说明 ”。 修改 “显示 ”按钮的 Click事件代码。当单击该按钮时,表格 Grid1内将显示在列表框中所选 orders表
4、中指定字段的内容。 (2)利用查询设计器创建查询,从orders、 employee和 customer表中查询 2001年 5月 1日以后 (含 )所签所有订单的信息。查询结果依次包含 “订单号 ”、 “签订日期 ”、 “金额 ”、 “签订者 ”和 “客户名 ”5项内容,其中 “签订者 ”为签订订单的职员姓名。各记录按 “签订日期 ”降序排序,签订日期相同按 “金额 ”降序排序;查询去向为表 tableone。最后将 查询保存在queryone qpr文件中,并运行该查询。 三、综合应用题 3 在考生文件夹下,打开资源数据库 frdb,完成如下综合应用:设计一个表单控件名为 form、表单文
5、件名为 fr show、表单标题名为 “农户资源数据浏览 ”的表单,其表单界面如图 3 16所示。其他要求如下: 为表单建立数据环境,向数据环境依次添加 fr t表 (Cursor1)、 p t表 (Cursor2)和 tree t表(Cursor3)。 当在 “户主编号 ”(Labell)标签右边的文本框 (Textl)中输入户主编号并单击 “查询 ”(Commandl)按钮时,将在右边的表格控件 (Gridl)内显示该农户承包的土地编号、小地名、面积、树种编号、蓄积和承包年度信息 (均取自 fr t表 ),并在左边相应的文本框中显示该农户的姓名 (Text2)、年龄 (Text3)、性别
6、(Text4)和家庭地址(Text5) (均取自 p t表 )。 单击 “退出 ”(Command2)按钮时,关闭表单。要求:表格(Grid 1)控件的 RecordSourceType属性设置为 “4一 SQL说明 ”; 使用 SQL的SELECT语句将根据输入的户主编号查询到的姓名、年龄、性别和家庭地 址数据存放到一维数组 tmp中,并将 tnap数组诸元素的值赋值到各文本框。 国家二级 VF机试(操作题)模拟试卷 226答案与解析 一、基本操作题 1 【正确答案】 【操作步骤】 (1) 命令窗口执行: MODIFY DATABASE sdb, 打开数据库设计器。 数据库设计器中,右击 s
7、tudent表,选择【修改】,打开表设计器, “字段 ”选项卡中选中 “性别 ”, “字段有效性 ”的 “规则 ”中输入:性别 $“男女 ”, “信息 ”框中输入:“性别必须是男或女 ”, “默认值 ”文本框中输入: “女 ”。 (2) 接上题 ,在 student表设计器中, “字段 ”选项卡中选中 “学号 ”, “索引 ”列中选“升序 ”,在 “索引 ”选项卡中修改 “索引名 ”为 “sid”,修改 “类型 ”为 “主索引 ”,单击 “确定 ”按钮保存表结构修改。 与上题同样的方法为 course表建立名为 “cid”,的 “主索引 ”,单击 “确定 ”按钮保存表结构修改。 数据库设计器中
8、,右击 sc表选择【修改】,打开表设计器, “索引 ”选项卡中,“索引名 ”下方的文本框中输入 “scid”, “索引 ”选项卡中将 “类型 ”选择为 “主索引 ”,“表达式 ”下方的文本框中输入 “学号 +课程号 ”,建立主索引 。 接第 步,在 SC表设计器的 “索引 ”选项卡中,第二行的 “索引名 ”文本框中输入“sid”,将 “类型 ”选择为 “普通索引 ”, “表达式 ”下方的文本框中输入 “学号 ”,建立一个普通索引;在第三行的 “索引名 “文本框中输入 “cid”, “类型 ”选择为 “普通索引 ”, “表达式 ”中输入 “课程号 ”,建立普通索引,单击 “确定 ”保存修改。 (
9、3) 在数据库设计器中,拖动 student表 “索引 ”下方的主索引 “sid”到 sc表中 “索引 ”下方的普通索引 “sid”上,为两个表建立联系。 拖动 course表 “索引 ”下方的主索引 “scid”到 sc表中 “索引 ”下方的普通索引 “cid”上,为两个表建立联系。 选中 student和 sc两个表之间的关联线 (被选中的线会变粗 ),首先执行【数据库】 【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。在打开的 “参照完整性 ”对话框的表格中,将其中的两对关系均做如下操作:选择 “更新 ”下的单元格内容为 “级联
10、”; “删除 ”下的单元格内容为 “限制 ”; “插入 ”下的单元格内容为 “限制 ”。单击 “确定 ”按钮保存参照完整性的修改。 (4) 命令窗口执行: OPEN DATABASE sdb,打开 sdb数据库。 执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在弹出的 “新建 ”对话框中选中 “报表 ”选项,单击 “向导 ”按钮,弹出 “向导选取 对话框,选中 “报表向导 ”项,单击 “确定 “按钮,启动报表向导。 “步骤 1-字段选取 ”的 “数据库和表 ”下选 student表,将 “可用字段 ”中的字段全部添加到 “选定字段 ”中,单击 “下一步 ”按钮。
11、“步骤 2-分组记录 ”中,单击 “下一步 ”按钮。 “步骤 3-选择报表样式 ”的 “样式 ”下选择 “随意式 ”,单击 “下一步 ”按钮。 “步骤 4-定义报表布局 ”的 “列数 ”下输入 “1”,在 “字段布局 ”下选 “列 ”,在 “方向 ”下选 “纵向 ”,单击 “下一步 ”按钮。 “步骤 5-排序记录 ”中双击 “可用的字段或索引标识 ”中的 “学号 ”字段到 “选定字段 ”中,再选择 “升序 ”,单击 “下一步 ”按钮。 “步骤 6-完成 ”中 “报表标题 “下方文本框中输入 “学生基本情况一览表 ”,单击 “完成 ”按钮。 在 “另存为 ”对话框的 “保存报表为: ”框中输入报
12、表文件名 one,单击 “保存 ”按钮。 二、简单应用题 2 【正确答案】 (1)【操作步骤】 步骤 1:命令窗口执行: MODIFY FORM formone, 打开表单设计器修改表单。 步骤 2:右击表单选择【数据环境】,在表单数据环境中击右键选择【添加】,在“添加表或视图 ”对话框中双击 orders表添加到数据环境中。 步骤 3:选中表单中的列表框控件,将 RowSourceType属性值设置为: 8一结构,将 RowSource属性值设置为: orders,将 MoultiSelect属性值设置为: T;选中表格 (Gridl)控件,将 RowSourceType属性值设置为: 4-
13、SOL说明。 步骤 4: “显示 ”按钮 (Commandl)的 Click事件代码如下: *“显示 ”按钮的 Click事件代码 * *下面代码的功能是根据用户对列表框的选 择结果构建字段列表,然后进一步构建 select语句并据此为表格的相关属性设值。 *修改所有 *FOUND*下面的一条语句。 *不能修改其他语句。不能增加语句,也不能删除语句。 s=“ f= T * FOUND* FOR i=1 TO thisform Listl ColumnCount IF thisform Listl Selected(i) IF f * FOUND* s=thiSform LiStl value
14、f= F ELSE * FOUND* s=S+thiSform LiStl value ENDIF ENDIF ENDFOR St=“select s from orders into CUrsor tmp” thiSform Gridl RecordSOUrce=St 命令按钮修改后的事件代码如下: S=“” f= T * FOUND * FOR i=l TO thisform Listl ListCount IF thisform Listl Selected(i) IF f *FOUND* s=thiSform Listl List(i) f= F ELSE * FOUND* s=s+“
15、, ”+thisform Listl List(i) ENDIF ENDIF ENDFOR st=“select S from orders into curSor tmp” thiSform Gridl RecordSource=st 步骤 5:单击 “常用 ”工具栏中的 “运行 ”按钮 查看结果,并单击 “输出数据 ”按钮产生temmdbf表文件,保存。 (2)【操作步骤】 步骤 1:命令窗口执行: OPEN DATABASE订单管理, 打开数据库环境。 步骤 2:命令窗口执行: CREATE QUERY queryone, 打开查询设计器,在“添加表或视图 ”对话框中,分别双击 empl
16、oyee、 orders和 customer表 (注意:一定要按顺序添加表 ),将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为 3个表在查询设计器中建立联系。 步骤 3:依次双击 orders表中的 “订单号 ”、 “签订日期 ”、 “金额 ”字段,添加到 “字段 ”选项卡的 “选定字段 ”列表中; “字段 ”选项卡的 “函数和表达式 ”下的文本框中输入: Employee姓名 AS签订者,单击 “添加 ”按钮添加到 “选定字段 ”中;双击customer表中的 “客户名 ”字段添加到 “选定字段 ”列表中。 步骤 4: “筛选 ”选项卡的 “字段名 ”中选择 “O
17、rders签订日期 ”字段, “条件 ”下拉框中选择 “=”,在 “实例 ”框中输入: 2001-05-01。 步骤 5: “排序依据 ”选项卡中双击 “选定字段 ”列表框中的 “Orders签 订日期 ”字段添加到 “排序条件 ”中, “排序选项 ”中选择 “降序 ”;双击 “选定字段 ”中的 “Orders金额字段添加到 “排序条件 ”中, “排序选项 ”中选择 “降序 ”单选项。 步骤 6:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 tableone,单击 “确定 ”按钮。 步骤 7:最后单击 “常用 ”工具
18、栏中的 “运行 ”按钮查看结果,将杳询文件保存到考生文件夹下。 三、综合应用题 3 【正确答案】 【操作步骤】步骤 1:命令窗口执行: OPEN DATABASE frdb,打开 frdb数据库。步骤 2:命令窗口执行: CREATE FORM fr show,打开表单设计器新建表单。步骤 3:右击表单选择【数据环境】快捷菜单命令,继续在表单数据环境中单击右键选择【添加】快捷菜单命令,在 “添加表或视图 ”对话框中依次双击fr t表、 p t表和 tree t表,将其添加到数据环境中。步骤 4:向表单添加五个标签、五个文本框、一个表格和两个命令按钮。选择表单对象,修改对象属性值,见表4 19。
19、 步骤 5:编写各个命令按钮的 C1ick事件代码如下: *“查询 ”按钮的 C1ick事件代码*THISFORM GRIDI RECORDSOURCE=”; sELEcT土地编号,小地名,面积,树种编号,蓄积,承包年度 FROM FR T;WHERE户主编号=ALLTRIM(THISFORM TEXT1 VALUE) ; INTO CURSOR TEMP”sELECT姓名,年龄,性别,家庭地址 FROMP_ T; WHERE户主编号=ALLTRIM(THISFORM TEXTl VALUE); INTO ARRAY TMPTHISFORM TEXT2 VALUE=TMP(1)THISFORM TEXT3 VALUE=TMP(2)THISFORM TEXT4 VALUE=TMP(3)THISFORM TEXT5 VALUE=TMP(4)*“退出 ”按钮的 Click事件代码 *THISFORM RELEASE步骤 6:单击 “常用 ”工具栏中 “运行 ”按钮运行表单。