1、二级 VISUAL+FOXPRO 机试-91 及答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.请在考生文件夹下建立一个项目 KS3。2将考生文件夹下的数据库 cust_m 加入到项目 KS3 中。3为表 cust 建立主索引,索引名,索引表达式均为客户编号。为表 order1 建立普通索引,索引名、索引表达式均为客户编号。4表 cust 和表 order1 必要的索引已建立,为两表建立永久性的联系。(分数:30.00)_二、二 简单应用题(总题数:1,分数:40.00)2.根据考生文件夹下的 tx1 表和 jsh 表建立一个查询 qu
2、ery2,查询出单位是“南京大学”的所有教师的姓名、职称、电话,要求查询去向是表,表名是 query2,dbf,并执行该查询。2建立表单 enterf,表单中有两个命令按钮,按钮的名称分别为 cmdin 和 cmdout,标题分别为“进入”和“退出”。(分数:40.00)_三、三 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有仓库数据库 CK3,包括如下所示两个表文件:CK(仓库号 C(4),城市 C(8),面积 N(4)ZG(仓库号 C(4),职工号 C(4),工资 N(4)设计一个名为 ZC3 的菜单,菜单中有两个菜单项“统计”和“退出”。程序运行时,单击“统计”菜单项应完
3、成下列操作:检索出所有职工的工资都大于。1220 元的职工所管理的仓库信息,将结果保存在 wh1 数据表文件中,该文件的结构和 CK 数据表文件的结构一致,并按面积升序排序。单击“退出”菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)(分数:30.00)_二级 VISUAL+FOXPRO 机试-91 答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.请在考生文件夹下建立一个项目 KS3。2将考生文件夹下的数据库 cust_m 加入到项目 KS3 中。3为表 cust 建立主索引,索引名,索引表达式均为客户编号。为表 orde
4、r1 建立普通索引,索引名、索引表达式均为客户编号。4表 cust 和表 order1 必要的索引已建立,为两表建立永久性的联系。(分数:30.00)_正确答案:(本题的主要考核点是建立查询。建立查询可以使用“文件”菜单完成,选择文件一新建查询一新建文件,将 tx1 和 jsh 添加入查询中,从字段中选择姓名、职称和电话字段,单击查询菜单下的查询去向,选择表,输入表名 query2.DBF。最后运行该查询。)解析:二、二 简单应用题(总题数:1,分数:40.00)2.根据考生文件夹下的 tx1 表和 jsh 表建立一个查询 query2,查询出单位是“南京大学”的所有教师的姓名、职称、电话,要
5、求查询去向是表,表名是 query2,dbf,并执行该查询。2建立表单 enterf,表单中有两个命令按钮,按钮的名称分别为 cmdin 和 cmdout,标题分别为“进入”和“退出”。(分数:40.00)_正确答案:(本题的主要考核点是表单的建立。可以用三种方法调用表单设计器:在项目管理器环境下调用;单击“文件”菜单中的“新建”,打开“新建”对话框,选择“表单”;在命令窗口输入 CREATE FORM 命令。打开表单设计器后,在表单控件工具栏上单击“命令按钮”,在表单上放置两个按钮。分别修改其属性 Name 为 cmdin 和 cmdout,Caption 属性为“进入”和“退出”。)解析:
6、三、三 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有仓库数据库 CK3,包括如下所示两个表文件:CK(仓库号 C(4),城市 C(8),面积 N(4)ZG(仓库号 C(4),职工号 C(4),工资 N(4)设计一个名为 ZC3 的菜单,菜单中有两个菜单项“统计”和“退出”。程序运行时,单击“统计”菜单项应完成下列操作:检索出所有职工的工资都大于。1220 元的职工所管理的仓库信息,将结果保存在 wh1 数据表文件中,该文件的结构和 CK 数据表文件的结构一致,并按面积升序排序。单击“退出”菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)(分数:30.00)_正确
7、答案:(菜单的建立、结构化查询语言(SQL)中的嵌套查询、查询结果的去向等知识。)解析:解题思路利用菜单设计器定义两个菜单项,在菜单名称为“统计”的菜单项的结果列中选择“过程”,并通过单击“编辑”按钮打开一个窗中来添加“统计”菜单项要执行的命令。在菜单名称为“退出”的菜单项的结果列中选择“命令”,并在后面的“选项”列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT“统计”菜单项要执行的程序:首先中打开数据库文件 OPEN DATABASE CK3DBC下面我们分析所要用到的查询语句的实现,题面要求“检索出所有职工的工资都大于 1220 的职工所管理的仓库信息”,所以得到满
8、足以上条件的仓库号成为解答本题的关键。“所有职工的工资都大于 1220 的职工所管理的仓库”这个条件可以将其分解为同时满足以下两个条件的结果“仓库号不存在于职工的工资小于等于 1220 的职工所管理的仓库号中”并且“仓库号存在于表 ZG 中”,而以上两个条件我们可以利用SQL 轻松写出来。所以最后形成的查询语句以下:SELECT*FROM CK WHERE 仓库号 NOT IN(SELECT 仓库号FROM ZG WHERE 工资=1220)AND 仓库号 IN(SELECT 仓库号 FROM ZG)INTO TABLE wh1.dbf。后面的INTOTABLE wh1.dbf 决定了查询的结果是生成一个 wh1.dbf 文件。本题还考对查询的排序和查询的去向进行了考核,可以用 ORDER BY order_ ItemASC|DESC来让查询的结果按某一列或某几列的升序(ASC)或降序(DESC)进行排列。而查询的去向可以通过 INTO TABLE str Table Name 而直接生成一个文件名为 str Table Name 的DBF 表。