1、国家二级 VF机试(操作题)模拟试卷 119及答案与解析 一、基本操作题 1 (1)建立菜单 query menu。该菜单只有 “查询 ”和 “退出 ”两个主菜单项 (条形菜单 ),其中单击菜单项 “退出 ”时,返回到 VFP系统菜单 (相应命令写存命令框中,不要写在过程中 )。 (2)将 COURSE表的 “开课系部 ”字段名改为 “开课单位 ”,其余不变。 (3)从数据库 score_managex中移去表 temp2 dbf(不是删除 )。 (4)将 scorel表中记录按学号从低到高排序,在学号相同的情况下再按成绩 从高到低排序,排序结果存入表 NEW_ORDER。 二、简单应用题 2
2、 (1)在考生文件夹下已有表单文件 formone scx,如图 3-26所示,其中包含一个列表框、一个表格和一个命令按钮。请按下面要求完成相应的操作: 在表单的数据环境中添加 orders表。 将列表框 Listl设置成多选,另外将其的 RowSourceType属性值设置为 “8-结构 ”、 RowSource设置为 orders。 将表格Grid 1的 RecordSourceType的属性值设置为 “4-SQL说明 ”。 修改 “显示 ”按钮的C1ick事件代码。当单击该按钮时,表格 Gridl内将显示在列表框中所选 orders表中指定字段的内容。 (2)利用查询设计器创建查询,从
3、orders、 employee和customer表中查询 2001年 5月 1日以后 (含 )所签所有订单的信息。查询结果依次包含 “订单号 ”、 “签订日期 ”、 “金额 ”、 “签订者 ”和 “客户名 ”5项内容,其中 “签订者 ”为签订订单的职员姓名。各记录按 “签订日期 ”降序排序,签订日期相同按 “金额 ”降序排序;查询去向为表 tableone。最后将查询保存在 queryone qpr文件中,并运行该查 询。 三、综合应用题 3 打开表单文件 sapp,并完成如下操作 (不得有多余操作 ): 将 “课程 ”表添加到表单的数据环境中。 使列表框 Listl中的数据项为 “课程 ”
4、表中的课程名 (课程课程名 )。 单击列表框中的数据项时,统计选修了所选课程的学生人数 (从 “考试成绩 ”表 ),并将结果存储在以课程名命名的表中,表中只有一个字段 “人数 ”。 添加一个命令按钮 Commandl,单击该按钮时关闭表单。 说明:完成该程序后必须运行,并且分别统计选修了 “数据库 ”和 “操作系统 ”课 程的学生人数。 国家二级 VF机试(操作题)模拟试卷 119答案与解析 一、基本操作题 1 【正确答案】 (1) 命令窗口执行: CREATE MENu query-menu,在 “新建菜单 ”对话框中单击 “菜单 ”图标按钮,打开菜单设计器。 在 “菜单名称 ”列的文本框中
5、依次输入 “查询 ”和 “退出 ”两个主菜单名,在 “退出 ”菜单 “结果 ”下拉框中选择为 “命令 ”,在后面的文本框中输入命令: SET SYSMENU TO DEFAULT。 (2) 在命令窗口执行命令: MODIFY DATABASE SCOREMANAGER,打开数据库设计器。 右击 course表,选择【修改】,打开表设计器,将 “字段 ”选项卡中的 “开课系部 ”字段名修改为 “开课单位 ”,单击 “确定 ”按钮保存。 (3)右击 temp2表,选择【删除】,弹出提示对话框中单击 “移去 ”,接着弹出的提示对话框中单击 “是 ”,将 temp2表从数据库中移去。 (4)在命令窗口
6、执行: SELECT * FROM SCOREl ORDER BY学号,成绩DESC INTO TABLE NEW ORDER。 【试题解析】 本题考查了菜单的建立、表结构的修改、数据库设计器的使用和SQL查询语句。 当将数据库表从数据库中移去后,就成为自由表。 二、简单应用题 2 【正确答案】 (1)步骤 1:命令窗口执行: NODIFY FORM formone,打开表单设计器修改表单。 步骤 2:右击表单选择【数据环境】,在表单数据环境中击右键选择【添加】,在 “添加表或视图 ”对话框中双击 orders表添加到数据环境中。 步骤 3:选中表单中的列表框控件,将 RowSourceTyp
7、e属 性值设置为: 8-结构,将 RowSource属性值设置为: orderls,将 MultiSelect属性值设置为: T;选中表格 (Gridl)控件,将 RowSourceType属性值设置为: 4一 SQL说明。 步骤 4: “显示 ”按钮 (Cormnandl)的 Click事件代码如下: *“显示 ”按钮的 Click事件代码 * *下面代码的功能是根据用户对列表框的选择结果构建宁段列表,然后进一步构建 select语句并据此为表格的相关属性设值。 *修改所有 *FOUND*下面的一条语句。 *小能修改其他语句。不能增加语句,也不能删除语句。 1 s=“ 2 f= T 3 *
8、FOUND * 4 FOR i=1 TO thisform Listl columnCOunt 6 IF thisform Listl selected(i) 6 IF f 7 * FOUND * 8 s=thisform Listl value 9 f= F 10 ELSE 11 *FOUND* 12 s=s+thisform Listl value 13 ENDIF 14 ENDIF 15 ENDFOR 16 st=“select s from orders into cursor tmp” 17 thisform Gridl RecordSource=st 命令按钮修改后的事件代码如 下
9、: 1 s=“ 2 f= T 3 * FOUND * 4 FOR i=1 TO thisform Listl ListCount 5 IF thisform Listl Selected(i) 6 IF f 7 *FOuND* 8 s=thisform Listl List(i) 9 f= F 10 ELSE 11 *FOUND* 12 s=s+“, “+thisform Listl List(i) 13 ENDIF 14 ENDIF 15 ENDFOR 16 st=“select s from orders into cursor tmp“ 17 thisform Gridl Records
10、ource=st 步骤 5:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,并单击 “输出数据 ”按钮产生 temp dbf。表文 件,保存。 (2)步骤 1:命令窗口执行: OPEN DATABASE订单管理,打开数据库环境。 步骤 2:命令窗口执行: CREATE QUERY quervone,打开查询设计器,在 “添加表或视图 ”对话框中,分别双击 employee、 orders和 customer表 (注意:一定要按顺序添加表 ),将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表问联系自动为 3个表在查询设计器中建立联系。 步骤 3:依次双击 orders表中的 “
11、订单号 ”、 “签订日期 ”、 “金额 ”字 段,添加到 “字段 ”选项卡的 “选定字段 ”列表中; “字段 ”选项卡的 “函数和表达式 ”下的文本框中输入: Employee姓名 AS签订者,单击 “添加 ”按钮添加到 “选定字段 ”中;双击customer表中的 “客户名 ”字段添加到 “选定字段 ”列表中。 步骤 4: “筛选 ”选项卡的 “字段名 ”中选择 “orders签订日期 ”字段, “条件 ”下拉框中选择 “=”,在 “实例 ”框中输入: 2001-05-01。 步骤 5: “排序依据 ”选项卡中双击 “选定字段 ”列表框中的 “Orders签订日期 ”字段添加到 “排序条件
12、”中 , “排序选项 ”中选择 “降序 ”;双击 “选定字段 ”中的“Orders金额 ”字段添加到 “排序条件 ”中, “排序选项 ”中选择 “降序 ”单选项。 步骤 6:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框单单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 tableone,单击 “确定 ”按钮。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存剑考生文件夹下。 【试题解析】 (1)本题主要考查了 FOR循环语句;表单控件常用属性;宏替换函数。 本题需要了解列表框的两 个重要属性:选中条目 SELECTED(I)和条目总数
13、(LISTCOUNT)属性。程序要求实现的功能大致如下: 首先定义一个变量并赋值为空字符串,再定义一个变量,赋值为逻辑真。 接着使用 FOR循环开始统计列表框中被选定的条目,循环初值为 1,终值为列表框中的条目数 (该数值通过 LISTCOUNT函数计算得出 );进入循环体后,通过IF条件语句首先判断列表框中条目是否被选中,如果选中,则执行第二个 IF条件语句,否则返回 FOR语句处,继续判断列表框的下一个条目。 第二个 IF语句中,首先判断则逻辑 变量的值是否为真,如果为真,则空字符串变量的值等于当前列表框的条目值,接着将逻辑变量的值指定为逻辑假,当执行一次该 IF语句后,逻辑变量的值就始终
14、为逻辑假了;在后面执行的条件判断语句中,当逻辑变量值为假时,字符串变量的值等于 S值加上当前列表框中的条目值,此时,不会再执行逻辑变量为真的语句了。 最后,利用宏替换函数 (&)将字符串中的数据替换出来,作为简单查询的输出字段;将查询结果保存到临时表中,并通过表格控件显示查询结果。 (2)本题考查了查询设计器的使用。由于涉及 3个表的连接查询,因此,要注意向查询设 计器中添加表的顺序,保证各表之间在添加到查询设计器后能彼此建立联系。 三、综合应用题 3 【正确答案】 步骤 1:命令窗口执行: OPEN DATABASE学生管理,打开 “学生管理 ”数据库环境。 步骤 2:命令窗口执行: MOD
15、IFY FORM sapp,修改 sapp表单。右击表单选择【数据环境】,在表单数据环境中单击右键选择【添加】,在 “添加表或视图 ”对话框中双击 “课程 ”,将表添加到数据环境中。 步骤 3:修改列表框 (Listl)的 “RowSourceType”属件 值为: 6-字段;再修改“RowSource”属性值为:课程课程名。 步骤 4:列表框 (Listl)Click事件代码如下: *木列表框 (Listl)的 Click事件代码 * 1 aa=课程课程名 2 SELECT COuNT(*)AS人数 FROM考试成绩; 3 WHERE考试成绩课程编号 =课程课程编号; 5 INTO TABL
16、E aa 步骤 5:通过 “表单控件 ”工具栏向表单添加一个命令按钮,编写按钮的 Click事件代码: THISFORN RELEASE。 步骤 6:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,并分别单击 “数据库 ”和 “操作系统 ”,生成表文件。 【试题解析】 本题考查了表单及控件的常用属性和方法的设置: SQL简单的计算查询。 本题关键是怎样获取列表框所选条目的值。由于已经将 “课程 ”表添加到数据环境中,当表单运行时, “课程 ”被打开,其所在工作区即成为当前工作区,又因为列表框中数据与 “课程 ”表的 “课程名 ”字段绑定,所以列表框中所选条目的值,等于 “课程 ”表当前记录的 “课程名 ”的值。再利 用 SQL计算查询,在 “考试成绩 ”表中查找并统计列表框中被选定条目 (即课程名 )的 “选课人数 ”,利用 COUNT()计数函数可以统计 “人数 ”。 进行 SQL语句设计时,因为 “考试成绩 ”表中没有 “课程名 ”字段,但题目给出的筛选条件是根据 “课程名 ”进行统计选修课程的学生人数,所以可以将查找条件设置为 “考试成绩 ”表的 “课程号 ”与 “课程 ”表当前记录 (即列表框中被选课程名对应的记录 )的 “课程号 ”相等为条件,进行查询统计的操作。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1