1、二级 VISUAL+FOXPRO 机试-33 及答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.请在考生文件夹下建立一个数据库 KS1。2将考生文件夹下的自由表 xsda.dbf 和 QKDY4.DBF 加入到新建的数据库 KS1 中。3为表 xsda 建立主索引,索引名为 primarykey,索引表达式为考生编号4为表 QKDY4 建立候选索引,索引名为 candi_key,索引表达式为邮发代号为表 QKDY4 建立普通索引,索引名为 regularkey,索引表达式为订阅期数(分数:30.00)_二、二 简单应用题(总题数:1,分
2、数:40.00)2.在考生文件夹下建立数据库 sc2,将考生文件夹下的自由表 score2 添加进 sc2 中。根据 score2 表建立一个视图 score_view,视图中包含的字段与 score2 表相同,但视图中只能查询到积分小于等于 1500 的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表 v2。2建立一个菜单 filemenu,包括两个菜单项“文件”和“帮助”,“文件”将激活子菜单,该子菜单包括“打开”、“有为”和“关闭”三个菜单项;“关闭”子菜单项用 SETSYSMENU TO DEFAULT 命令返回到系统菜单,其他菜单项的功能不做要求。(分数:40
3、.00)_三、三 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有学生成绩数据库 XUSHENG3,包括如下所示三个表文件以及相关的索引文件: XSDBF(学生文件:学号 C8,姓名 C8,性别 C2,班级 C5;另有索引文件 XSIDX,索引键:学号) CJDBF(成绩文件:学号 C8,课程名 C20,成绩 N5.1 另有索引文件 DJIDX,索引键:学号) CJEDBF(成绩表文件:学号 C8,姓名 C8,班级 C5,课程名 C12,成绩 N5.1)设计一个名为 XS3 的菜单,菜单中有两个菜单项“计算”和“退出”。程序运行时, 单击“计算”菜单项应完成下列操作:将所有选修了
4、“计算机基础”的学生的“计算机基础”成绩,按成绩由高到低的顺序填列到成绩表文件 CJBDBF 中(事前须将文件中原有数据清空)。单击“退出”菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)(分数:30.00)_二级 VISUAL+FOXPRO 机试-33 答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.请在考生文件夹下建立一个数据库 KS1。2将考生文件夹下的自由表 xsda.dbf 和 QKDY4.DBF 加入到新建的数据库 KS1 中。3为表 xsda 建立主索引,索引名为 primarykey,索引表达式为考生编号4
5、为表 QKDY4 建立候选索引,索引名为 candi_key,索引表达式为邮发代号为表 QKDY4 建立普通索引,索引名为 regularkey,索引表达式为订阅期数(分数:30.00)_正确答案:(本题的主要考核点是视图的建立。在“项目管理器”中选择一个数据库,选择“本地视图”,然后选择“新建”按钮,打开“视图设计器”。选择所有字段,在“筛选”栏内输入条件“积分 4=1500“,关闭并保存。在数据库设计器中打开视图,用sort on 积分 to v2 命令存入新表。)解析:二、二 简单应用题(总题数:1,分数:40.00)2.在考生文件夹下建立数据库 sc2,将考生文件夹下的自由表 scor
6、e2 添加进 sc2 中。根据 score2 表建立一个视图 score_view,视图中包含的字段与 score2 表相同,但视图中只能查询到积分小于等于 1500 的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表 v2。2建立一个菜单 filemenu,包括两个菜单项“文件”和“帮助”,“文件”将激活子菜单,该子菜单包括“打开”、“有为”和“关闭”三个菜单项;“关闭”子菜单项用 SETSYSMENU TO DEFAULT 命令返回到系统菜单,其他菜单项的功能不做要求。(分数:40.00)_正确答案:(本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择“文件”
7、菜单中的“新建”命令,在“新建”对话框中选择“菜单”,单击“新建文件”按钮。在“新建菜单”对话框中选择“菜单”按钮,调出“菜单设计器”。也可用 CREATE MENU 命令直接调出菜单设计器。在菜单名称中填入“文件”,“帮助”,“文件”结果为子菜单,单击编辑;在子菜单的菜单名称中输入“打开”、“存为”、“关闭”,“关闭”结果为命令“SET SYSMENU T0 DEFAULT”。)解析:三、三 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有学生成绩数据库 XUSHENG3,包括如下所示三个表文件以及相关的索引文件: XSDBF(学生文件:学号 C8,姓名 C8,性别 C2,班级
8、 C5;另有索引文件 XSIDX,索引键:学号) CJDBF(成绩文件:学号 C8,课程名 C20,成绩 N5.1 另有索引文件 DJIDX,索引键:学号) CJEDBF(成绩表文件:学号 C8,姓名 C8,班级 C5,课程名 C12,成绩 N5.1)设计一个名为 XS3 的菜单,菜单中有两个菜单项“计算”和“退出”。程序运行时, 单击“计算”菜单项应完成下列操作:将所有选修了“计算机基础”的学生的“计算机基础”成绩,按成绩由高到低的顺序填列到成绩表文件 CJBDBF 中(事前须将文件中原有数据清空)。单击“退出”菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)(分数:30.00
9、)_正确答案:(结构化查询语言(SQL)中的联接查询、查询的排序、查询的去向等知识。)解析:解题思路在本题中要想得到所有选修了“计算机基础”的学生的“计算机基础”成绩及学生的姓名等信息,就需要用到联接查询。因为学生的姓名、班级在表 XSDBF 中,而学生的成绩在表 CJDBF 中。而这两个表要联接起来可以通过“学号”字段。有以下两种联接查询的形式:SELECTXS学号,姓名,班级,课程名,成绩 FROMXS,CJ WHEREXS学号=CJ学号 AND 课程名=“计算机基础“或者 SELECTXS学号,姓名,班级,课程名,成绩 FROM XS LEFT JION CJ ON XS学号=CJ学号
10、WHERE 课程名=“计算机基础“通过以上的联接查询便得到了所有选修“计算机基础”的学生的“计算机基础”的成绩及学生的姓名等信息。而题中所要求按成绩的降序排序,所以应该在以上 SQL 语句的基础上加入:ORDER BY 成绩 DESC将查询所得到的结果放于一个数组变量 A Fields Value 中,要用到 INTO ARRAY A Fields Value至此一个完整的 SQL 联接查询语句便形成了:SELECTXS学号,姓名,班级,课程名,成绩FROMXS,CJWHEREXS:学号=CJ 学号 AND 课程名=“计算机基础“ORDER BY 成绩 DESC INTO ARRAY A Fields Value删除 CJB.DBF 中的所有资料将 table Name 中的资料添加到己被清空的 CJB.DBF 中 INSERT INTO CJB FROM ARRAY A Fields Value删除 CJB 中有删除标记的记录 PACK