国家二级VF机试(操作题)模拟试卷131(题后含答案及解析)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家二级VF机试(操作题)模拟试卷131(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题
基本操作题
1.(1)打开考生文件夹下的数据库SPORT,首先永久删除该数据库中的temp 表,然后将“金牌榜”、“获奖牌情况”和“国家”3个自由表加入该数据库中。

(2)在表设计器中,为表“金牌榜”建立一个普通索引,索引名和索引表达式均为“金牌数”。

(3)使用SQL语句为表“金牌榜”增加一个字段“奖牌总数”(整数型),同时为该字段设置有效性规则:奖牌总数>=0。

请将该SQL语句存储在文件one.prg中,否则不得分。

(4)使用SQL语句更改表“金牌榜”所有记录的“奖牌总数”字段值,该值应为“金牌数”、“银牌数”、“铜牌数”3项之和。

请将该SQL语句存储在文件two.prg中,否则不得分。

正确答案:(1)①命令窗口执行:MODIFY DATABASE sport,打开数据库设计器。

②右击数据库设计器中的temp表,选择【删除】,在弹出的对话框中单击“删除”按钮,将“temp”表永久性删除。

③在数据库设计器中右击,选择【添加表】,在“打开”对话框中双击“金牌榜”表加到数据库中,以同样的方法将“获奖牌情况”表和“国家”表添加到数据库中。

(2)①在命令窗口输入如下代码,打开表设计器:USE金牌榜MODIFY STRUCTURE ②在表设计器的“字段”选项卡中选中“金牌数”,“索引”列“升序”排序方式,单击“确定”保存表结构修改。

(3)①命令窗口执行:MODIFY COMMAND one,打开程序文件编辑器。

②在编辑器中输入如下程序代码:ALTER TABLE金牌榜ADD奖牌总数ICHECK奖牌总数>=0 ③命令窗口执行:DO one,执行程序文件。

(4)①在命令窗口执行命令:MODIFY COMMAND two,打开程序文件编辑器,输入如下程序代码:UPDATE金牌榜SET奖牌总数=金牌数+银牌数+铜牌数②在命令窗口执行命令:DO two,执行程序文件。

解析:本题考查了数据库的基本操作;表索引的建立;SQL定义功能和操作功能。

利用SQL表结构修改语句ALTER TABLE,增加字段的关键字为ADD;用SQL UPDATE语句可以更新表中记录。

简单应用题
2.(1)建立如图2-3所示表单,表单完成一个计算器的功能。

表单文件名和表单控件名均为calculator,表单标题为“计算器”。

表单运行时,分别在操作数1(Labell)和操作数2(Label2)下的文本框(分别为Text1和Text2)中输入数字(不接受其他字符输入),通过选项组(Optiongroupl,4个按钮可任意排列)选择计算方法(Optionl为“+”,Option2为“-”,Option3为“*”,Option4为“/”),然后单击命令按钮“计算”(Commandl),就会在“计算结果”(Label3)下的文本框Text3中显示计算结果,要求使用DO CASE语句判断选择的计算分类,在CASE表达式中直接引用选项组的相关属性。

注意:所涉及的数字和字母均为半角字符。

表单另有一命令按钮(Command2),按钮标题为“关闭”,表单运行时单击此按钮
关闭并释放表单。

(2)设计一个文件名和表单名均为form.item的表单,所有控件的属性必须在表单设计器的属性窗口中设置。

表单的标题设为“使用零件情况统计”。

表单中有一个组合框(combol)、一个文本框(textl)和两个命令按钮“统计”(commandl)与“退出”(command2)。

运行表单时,组合框中有三个条目“s1”、“s2”、“s3”(只有三个,不能输入新的,RowSourceType的属性为“数组”,Style的属性为“下拉列表框”)可供选择,单击“统计”命令按钮以后,则文本框显示出该项目所用零件的金额合计(某种零件的金额=单价*数量)。

单击“退出”按钮关闭表单。

注意:完成表单设计后要运行表单的所有功能。

正确答案:(1)步骤1:在命令窗口执行命令:CREATE FORMcalculator,打开表单设计器新建表单。

从“表单控件”工具栏中依次向表单添加三个标签、三个文本框、两个命令按钮和一个选项组控件。

步骤2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表2-5,注意,在设置选项组按钮为4个以后,要调整选项组的大小,才能显示新增的两个单选按钮,系统默认的只显示两个。

步骤3:双击命令按钮,编写各个命令按钮的Click事件代码。

各按钮代码如下:步骤4:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。

(2)步骤1:在命令窗口执行命令:OPEN DATABASE使用零件情况,打开“使用零件情况”数据库。

步骤2:在命令窗口执行命令:CREATE FORM form item,打开表单设计器新建表单。

步骤3:从“表单工具栏”中依次向表单添加一个组合框、一个文本框和两个命令按钮控件。

在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见.表2-6。

步骤4:双击表单,编写表单的Load事件代码。

代码如下:步骤4:双击命令按钮,编写各个命令按钮的Click事件代码。

各按钮代码如下:步骤5:单击“常用”工具栏中的“运行”按钮运行表单。

综合应用题
3.在做本题前首先确认在基础操作中已经正确地建立了order detail表,在简单应用中已经成功地将记录追加到order detail表。

当order detail表中的“单价”修改后,应该根据该表的“单价”和“数量”字段修改order list表的“总金额”字段,现在有部分order list记录的“总金额”字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od mod的表中(与order list表结构相同,自己建立),然后根据order detail表的“单价”和“数量”字段修改od mod 表的“总金额”字段(注意一个od mod记录可能对应几条order detail记录),最后od mod表的结果要求按“总金额”升序排序,编写的程序最后保存为progl.prg。

正确答案:步骤1:在命令窗口执行命令:MODIFY COMMAND proget,打开程序文件编辑器输入如下程序代码: 1 SELECT订单号,SUM(单价*数量)AS总金额; 2 FROM order-detail; 3 GROUP BY订单号; 4 INTO CURSOR arrtable 5 SELECT Order一1iSt.*; 6 FROM Order=1iSt,arrtable;7 WHERE order list.订单号=arrtable.订单号AND order-list.总金额arrtable.总金额;8 INTO TABLE od-mod 9 USE od-mod 10 DO WHILE NOT EOF( ) 11
SELECT arrtable.总金额FROM arrtable;12 WHERE arrtable.订单号:od-mod.订单号;13 INTO ARRAY arr 14 REPLACE总金额WITH arr 15 SKIP 15 ENDDO 16 CLOSE ALL 17 SELECT*FROM od-mod ORDER BY总金额;18 INTO CURSOR arrtablel 19 SELECT*FROM arrtablel INTO TABLE od-mod 步骤2:保存文件修改,在命令窗口执行命令:DO prog1.prg,执行程序文件。

解析:本题主要考查SQL分组计算查询;DO WHILE循环结构。

本基本解题思路可按以下步骤进行:首先,根据order detail表的“单价”和“数量”数据,利用分组计算查询求出每组订单的“总金额”,将结果保存到一个临时表中。

然后,通过对order 1ist表和临时表的联接查询。

找出order list表中“总金额”字段与临时表中“总金额”不相同的记录,并将order list表中这些“总金额”不相同的记录输出到od mod表中。

接着利用DO WHILE循环语句对od mod表中的每条记录进行处理。

通过SQL查询语句从临时表中先获得与od mod表当前所指记录“订单号”相同的“总金额”字段值,将该值保存到数组中,再通过REPLACE命令修改od mod表当前记录的值,每处理完一条记录,记录指针便指向下一条记录,一直到处理完od mod表中的所有记录。

最后将od mod表的记录按“总金额”排序,由于查询结果不能覆盖正在作为查询数据源的表,因此,可以通过一个临时表过渡,保存排序的表记录,再通过临时表将排好序的记录保存到原数据表中。

相关文档
最新文档