1、二级 VISUAL+FOXPRO 机试 3 及答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.注意:基本操作题为 4 道 SQL 题,请将每道题的 SQL 命令粘贴到 sql_al.txt 文件,每条命令占一行,第 1 道题的命令是第 1 行,第 2 道题的命令是第 2 行,以此类推;如果某道题没有做,相应行为空。 在考生文件夹下完成下列操作: (1)利用 SQL SELECT 命令将表 stock_sl.dbf 复制到 sto,ck_bk.dbf。 (2)利用 SQL INSERT 命令插入记录(“600028“,4.36,4.
2、60,5500)到 stock_bk.dbf 表。 (3)利用 SQL UPDATE 命令将 stock_bk.dbf 表中“股票代码”为“600007”的股票“现价”改为 8.88。 (4)利用 SQL DELETE 命令删除 stock_bk.dbf 表中“股票代码”为“600000”的股票。(分数:30.00)_二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)在考生文件夹下建立数据库 sc2,将考生文件夹下的自由表 score2 添加进 sc2 中。根据 score2 表建立一个视图 score_view,视图中包含的字段与 score2 表相同,但视图中只能查询到积分
3、小于 1500 的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按“积分”升序存入表 v2。 (2)建立一个菜单 filemenu,包括两个菜单项“文件”和“帮助”,“文件”将激活子菜单,该子菜单包括“打开”、“存为”和“关闭”3 个菜单项;“关闭”使用 SET SYSMENU TO DEFAULT 命令返回到系统菜单,其他菜单项的功能不作要求。(分数:40.00)_三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有学生成绩数据库 xuesheng3,包括如下所示 3 个表文件以及相关的索引文件: xs.dbf(学生文件:学号 C8,姓名 C8,性别 C2,
4、班级 C5;另有索引文件 xs.idx,索引键:学号) cj.dbf(成绩文件:学号 C8,课程名 C20,成绩 N5,1;另有索引文件 cj.idx,索引键:学号) cjb.dbf(成绩表文件:学号 C8,姓名 C8,班级 C5,课程名 C12,成绩 N5.1) 设计一个名为 xs3 的菜单,菜单中有两个菜单项“计算”和“退出”。 程序运行时,单击“计算”菜单项应完成下列操作: 将所有选修了“计算机基础”的学生的“计算机基础”成绩,按“成绩”由高到低的顺序填到成绩表文件cjb.dbf 中。 (首先须将文件中原有数据清空) 单击“退出”菜单项,程序终止运行。 (注:相关数据表文件存在于考生文件
5、夹下)(分数:30.00)_二级 VISUAL+FOXPRO 机试 3 答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.注意:基本操作题为 4 道 SQL 题,请将每道题的 SQL 命令粘贴到 sql_al.txt 文件,每条命令占一行,第 1 道题的命令是第 1 行,第 2 道题的命令是第 2 行,以此类推;如果某道题没有做,相应行为空。 在考生文件夹下完成下列操作: (1)利用 SQL SELECT 命令将表 stock_sl.dbf 复制到 sto,ck_bk.dbf。 (2)利用 SQL INSERT 命令插入记录(“60
6、0028“,4.36,4.60,5500)到 stock_bk.dbf 表。 (3)利用 SQL UPDATE 命令将 stock_bk.dbf 表中“股票代码”为“600007”的股票“现价”改为 8.88。 (4)利用 SQL DELETE 命令删除 stock_bk.dbf 表中“股票代码”为“600000”的股票。(分数:30.00)_正确答案:()解析:请查看 sql_al.txt 文件,其中的 4 条语句分别为: (1)SELECT * FROM stock_sl INTO TABLE stock_bk (2)INSERT INTO stock_bk VALUE(“600028“,
7、4.36,4.60,5500) (3)UPDATE stock_bk SET 现价=8.88 WHERE 股票代码=“600007“ (4)DELETE FROM stock_bk WHERE 股票代码=“600000“ 解析 本大题主要考查了 SQL 的操作功能,包括数据的插入(INSERT)、更新(UPDATE)和删除(DELETE)。复制表可以使用SQL 查询功能中表的去向语句来实现。二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)在考生文件夹下建立数据库 sc2,将考生文件夹下的自由表 score2 添加进 sc2 中。根据 score2 表建立一个视图 score_
8、view,视图中包含的字段与 score2 表相同,但视图中只能查询到积分小于 1500 的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按“积分”升序存入表 v2。 (2)建立一个菜单 filemenu,包括两个菜单项“文件”和“帮助”,“文件”将激活子菜单,该子菜单包括“打开”、“存为”和“关闭”3 个菜单项;“关闭”使用 SET SYSMENU TO DEFAULT 命令返回到系统菜单,其他菜单项的功能不作要求。(分数:40.00)_正确答案:()解析:在命令窗口输入命令:MODIFY DATABASE sc2,新建一个数据库文件,在数据库设计器中将考生文件夹下的自由表 sco
9、re2 添加到数据库中,如图 3-1 所示。 利用菜单命令或常用工具栏中的按钮,打开“新建”对话框,新建一个视图文件,将数据表 score2 添加到视图设计器中。视图设计器中有 6 个选项卡,根据题意,在“字段”选项卡中,单击“全部添加”命令按钮,将“可用字段”列表框中的 3 个字段全部添加到右边的“选定字段”列表框中,接着在“筛选”选项卡中的“字段名”下拉框中选择“score2.积分”字段,在“条件”下拉框中选择“”,在“实例”文本框中输入“1500”,然后在“排序依据”选项卡中,将“可用字段”列表框中的“score2.积分”字段添加到右边的“选定字段”列表框中,在“排序选项”中选择“升序”
10、单选项,将视图文件以 score_view 名保存在考生文件夹下,如图 3-2 所示。 因为视图设计器中没有“查询去向”的问题,因此要将查询结果保存在数据表中,必须利用查询设计器来完成。在“新建”对话框中选择“查询”单选项,打开查询设计器,将视图 score_view添加到查询设计器中,如图 3-3 所示。 在查询设计器的“字段”选项卡中,单击“全部添加”命令按钮,将“可用字段”列表框中的字段全部添加到“选定字段”中,然后执行菜单命令“查询”“查询去向”,系统弹出“查询去向”对话框,在对话框中单击“表”按钮,在“表名”文本框中输入保存查询结果的表名 v2,单击“确定”按钮关闭对话框。 执行菜单
11、命令“查询”“运行查询”,查询结果将自动保存到数据表 v2 中。 (2)在命令窗口输入命令:CREATE MENU filemenu,系统弹出一个“新建”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“文件”和“帮助”,在“结果”下拉框中全部选择“子菜单”。单击“文件”名行中的“创建”按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每个子菜单项的名称“打开”、“存为”和“关闭”,如图 3-4 所示。根据题意,系统不再要求设计下级菜单,因此在 3 个子菜单的“结果”对话框中选择“过程”或“命令”。最后在“关闭”菜单项的“命令”文本框中
12、编写程序代码:SET SYSMENU TO DEFAULT。要回到上级菜单,只要从窗口的“菜单级”下拉框中选择“菜单栏”即可。选择菜单命令“菜单”“生成”,生成一个菜单文件 filemenu.mpr,如图 3-5 所示。 解析 本大题 1 小题考查的主要是视图的建立及查询,我们可以在视图设计器中根据题意为自由表建立一个视图文件 score_view,并在视图设计器的对应选项卡中为视图设置条件,然后通过查询设计器完成视图的查询,并决定输出去向为表。2 小题中主要是考查菜单设计器的“结果”下拉框中各项的使用功能,例如要建立下级菜单,在“结果”下拉框中就必须选择“子菜单”,而要执行某条菜单命令,就应
13、该选择“命令”或“过程”。三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有学生成绩数据库 xuesheng3,包括如下所示 3 个表文件以及相关的索引文件: xs.dbf(学生文件:学号 C8,姓名 C8,性别 C2,班级 C5;另有索引文件 xs.idx,索引键:学号) cj.dbf(成绩文件:学号 C8,课程名 C20,成绩 N5,1;另有索引文件 cj.idx,索引键:学号) cjb.dbf(成绩表文件:学号 C8,姓名 C8,班级 C5,课程名 C12,成绩 N5.1) 设计一个名为 xs3 的菜单,菜单中有两个菜单项“计算”和“退出”。 程序运行时,单击“
14、计算”菜单项应完成下列操作: 将所有选修了“计算机基础”的学生的“计算机基础”成绩,按“成绩”由高到低的顺序填到成绩表文件cjb.dbf 中。 (首先须将文件中原有数据清空) 单击“退出”菜单项,程序终止运行。 (注:相关数据表文件存在于考生文件夹下)(分数:30.00)_正确答案:()解析:在命令窗口输入命令:CREATE MENU xs3,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“计算”和“退出”,接着在“计算”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”
15、选项(可参考二大题 2 小题的设计过程)。 单击“计算”菜单行中的“创建”按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段: *“计算”菜单命令的程序设计* SET TALK OFF OPEN DATABASE xuesheng3 SELECT cj.学号,xs.班级,xs.姓名,cj.课程名,cj.成绩; FROM xuesheng3!xs INNER JOIN xuesheng3!cj; ON xs.学号=cj.学号; WHERE cj.课程名=计算机基础; ORDER BY cj.成绩 DESC; INTO ARRAY AFields Value DELETE FROM cjb
16、INSERT INTO cjb FROM ARRAY AFields Value CLOSE ALL USE cjb PACK USE 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”“生成”,生成一个菜单文件“xs3.mpr”。关闭设计窗口,在命令窗口输入命令:DO xs3.mpr,看到 Visual FoxPro 的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 解析 本大题考查的主要是通过学生表和成绩表的连接,将符合要求的记录添加到新的数据表中。在菜单的“计算”菜单命令设计过程中,在“结果”下拉框选项中应该选择“过程”选项,然后进行查询程序的编辑,在程序设计过程中,可以使用 SQL 查询语句及插入语句来完成设计过程。