1、国家二级 VF 机试-试卷 195 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)建立项目“超市管理”;并把“商品管理”数据库加入到该项目中。 (2)为“商品”表增加字段:销售价格 N(6,2),该字段允许出现“空”值,默认值为NULL。 (3)为“销售价格”字段设置有效性规则:销售价格=0;出错提示信息是:“销售价格必须大于等于零”。 (4)用报表向导为“商品”表创建报表:报表中包括“商品”表中全部字段,报表样式用“经营式”,报表中数据按“商品编码”升序排列,报表文件名 report_afrx。
2、其余按缺省设置。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)建立一个查询 score query。查询评委为“歌手编号”是“01002”的歌手所打的分数,结果存入自由表 result 中,该自由表的字段项包括:“评委姓名”和“分数”,各记录按“分数”升序排列。最后运行该查询。 (2)根据上一步操作得到的自由表 result 建立一个报表。要求: 使用报表向导建立报表,报表中包括“评委姓名”和“分数”两个字段,按“分数”字段降序排列,报表标题设置为空,报表文件命名为 score_result。 打开报表 score result
3、,利用报表控件标签,将“王岩盐得分情况”添加到报表中作为报表的标题。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.当 order_detail 表中的单价修改后,应该根据该表的“单价”和“数量”字段修改 order_list 表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下: 根据 order_detail 表中的记录重新计算 order_list 表的总金额字段的值。 一条 order_list 记录可以对应几条 order_detail 记录。 在编程前应保证在基础操作中正确地建立了 order_list 表,在简单
4、应用中为该表追加了记录(注意:只能追加一次)。 最后将 order_list 表中的记录按总金额降序排序存储到 od_new 表中。(表结构与order_list 表完全相同) 将程序保存为 prog1prg 文件。(分数:2.00)_国家二级 VF 机试-试卷 195 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)建立项目“超市管理”;并把“商品管理”数据库加入到该项目中。 (2)为“商品”表增加字段:销售价格 N(6,2),该字段允许出现“空”值,默认值为NULL。 (3)为“销售价格”字
5、段设置有效性规则:销售价格=0;出错提示信息是:“销售价格必须大于等于零”。 (4)用报表向导为“商品”表创建报表:报表中包括“商品”表中全部字段,报表样式用“经营式”,报表中数据按“商品编码”升序排列,报表文件名 report_afrx。其余按缺省设置。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: CREATE PROJECT 超市管理 ,新建一个项目管理器。在项目管理器中选中“数据”选项卡内的“数据库”项,然后单击“添加”按钮,在弹出的“打开”对话框中双击“商品管理”数据库文件,将数据库添加到项目管理器中。 (2)在项目管理器中单击“数据库”前面的“+”号,依次展开
6、“数据库”“商品管理”“表”,选中“商品”表,然后单击“修改”命令按钮,打开“商品”表设计器。 在表设计器“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“销售价格”,在“类型”下拉框中选择“数值型”,在“宽度”文本框中输入“6”,“小数位数”中输入“2”,单击“NULL”列的无符号按钮,使其按钮被选中(被选中的按钮上会出现一个“”符号)。 然后在“字段有效性”的“默认值”文本框中输入:NULL。如图 2-64 所示。 )解析:解析:本题考查了项目管理器的建立和使用;数据库表有效性规则的建立;报表向导的使用。 需要注意的是字段有效性规则是在表设计器中建立的,“默认值”、“规则”和“
7、信息”的设置均属于字段有效性规则范围,在输入各有效性规则的值时要注意对应的数据类型。 本题可以通过项目管理器打开表设计器进行操作;项目管理器和报表的向导的操作者都属于最基本的操作。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)建立一个查询 score query。查询评委为“歌手编号”是“01002”的歌手所打的分数,结果存入自由表 result 中,该自由表的字段项包括:“评委姓名”和“分数”,各记录按“分数”升序排列。最后运行该查询。 (2)根据上一步操作得到的自由表 result 建立一个报表。要求: 使用报表向导建立报表,报表中包括“
8、评委姓名”和“分数”两个字段,按“分数”字段降序排列,报表标题设置为空,报表文件命名为 score_result。 打开报表 score result,利用报表控件标签,将“王岩盐得分情况”添加到报表中作为报表的标题。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: CREATE QUERYscorequery ,打开查询设计器,将考生文件夹下的“评委表”和“评分表”添加到查询设计器中。 步骤 2:添加两个表后,系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定”按钮设置两个表的联系。步骤 3:依次双击“评委表”中的“评委姓名”字段和“评
9、分表”中的“分数”字段添加到“字段”选项卡的“选定字段”列表中。 步骤 4:在“筛选”选项卡中,选择“字段名”为“评分表歌手编号”,“条件”为“=”,在“实例”框中输入“01002”。 步骤 5:在“排序依据”选项卡内双击“选定字段”列表框中的“评分表分数”字段,将字段添加到“排序条件”列表框中。 步骤 6:执行【查询】【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名 result,单击“确定”按钮。 步骤 7:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。 (2)步骤 1:执行【文件】【新建】菜单命令,在弹出的“
10、新建”对话框中选中“报表”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“报表向导”项,单击“确定”按钮,启动报表向导。 步骤 2:在报表向导的“步骤 1-字段选取”界面的“数据库和表”下选中“result”表,将“可用字段”中全部字段添加到“选定字段”中,单击“下一步”按钮。 步骤 3:跳过“步骤 2-分组记录”界面继续单击“下一步”按钮。 步骤 4:跳过“步骤 3-选择报表样式”界面继续单击“下一步”按钮。 步骤 5:跳过“步骤 4-定义报表布局”界面继续单击“下一步”按钮。 步骤 6:在报表向导的“步骤 5-排序记录”界面中双击“可用的字段或索引标识”中的“分数”字段到
11、“选定字段”列表中,然后单击“降序”单选项,单击“下一步”按钮。 步骤 7:在报表向导的“步骤6-完成”界面中,选中“报表标题”文本框中的文字,然后按键盘上的Delete键删除文字,单击“完成”按钮,在“另存为”对话框的“保存报表为:”框中输入报表文件名 score_result,单击“保存”按钮。 步骤 8:在命令窗口执行命令: MODIFY REPORT score_result ,在报表设计器中打开刚建立的报表文件。 步骤 9:通过“报表控件”工具栏向报表的“标题”带区添加一个标签控件,并输入标签标题:王岩盐得分情况。适当地调整标签的位置,保存报表修改。)解析:解析:(1)本题考查的是在
12、查询设计器中新建查询的操作。由于涉及两个表的操作,因此在操作过程中要注意确认壶询输出的字段来源于哪个数据表本题的操作比较简单,按照题目要求在各选项卡中完成相应的操作即可。 (2)本题考查的是报表向导及报表设计器的使用。 利用报袁向导创建报表比较简单,只需按照向导提示完成题目所要求的设置即可,建立报表后在报表设计器中打开报表,并通过“报表控件”工具栏向报表添加标签,设置报表的标题。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.当 order_detail 表中的单价修改后,应该根据该表的“单价”和“数量”字段修改 order_list 表的总金额字段
13、,现在编写程序实现此功能,具体要求和注意事项如下: 根据 order_detail 表中的记录重新计算 order_list 表的总金额字段的值。 一条 order_list 记录可以对应几条 order_detail 记录。 在编程前应保证在基础操作中正确地建立了 order_list 表,在简单应用中为该表追加了记录(注意:只能追加一次)。 最后将 order_list 表中的记录按总金额降序排序存储到 od_new 表中。(表结构与order_list 表完全相同) 将程序保存为 prog1prg 文件。(分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: MODIF
14、Y COMMANDprog1 ,新建程序并打开程序编辑器。 步骤 2:在程序编辑器中输入如下程序代码: CLOSE DATABASE USE ORDER_LIST SELECT 订单号,SUM(单价*数量) AS AA; FROM ORDER_DETAIL; GROUP BY 订单号 ORDER BY 订单号; INTO CURSOR FF SELECT ORDER_LIST DO WHILE !EOF() SELE FF LOCATE FOR 订单号=ORDERLIST订单号 SELE ORDER_LIST REPLACE 总金额 WITH FFAA SKIP ENDDO SELECT *
15、FROM ORDER_LIST ORDER BY 总金额 DESC INTO DBF OD_NEW 步骤 3:单击“常用”工具栏中的“运行”按钮运行程序。)解析:解析:本题主要考查的是程序文件的建立、DOWHILE 循环结构和 SQL 分组计算查询。 本题的基本解题思路是: 以 order list 表为当前表,通过 SQL 分组与计算查询从 order detail 表中按订单号分组计算每组订单的总金额,并按订单号排序,将结果保存到临时表中。 接着通过 do while 循环逐条处理order list 中订单号与临时表中订单号相同的记录,利用 replace 命令修改 order_list 的总金额字段值等于临时表中对应的总金颇字段值。 最后用 SQL 简单查询将 order_list 表中的记录保存到表 OD_NEW 中。