1、国家二级 VF机试(操作题)-试卷 258及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下已有 customers(客户)、orders(订单)、orderitems(订单项)和 goods(商品)四个表。(1)创建一个名为“订单管理”的数据库,并将已有的 customers表添加到该数据库中。 (2)利用表设计器为 customers表建立一个普通索引,索引名为 bd,索引表达式为“出生日期”。 (3)在表设计器中为customers表的“性别”字段设置有效性规则,规则表达式为:性别$“男女“,出错提示信息是:“性别必须是男或女
2、”。 (4)利用 INDEX命令为 customers表建立一个普通索引,索引名为 khh,索引表达式为“客户号”,索引存放在 customerscdx 中。然后将该 INDEX命令存入命令文件 poneprg 中。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在“学籍”数据库中有 student、score 和 collie三个表,使用菜单设计器制作一个名为 menu1的菜单,菜单只有一个“查询”菜单项。该菜单项中有“按学号”、“按课程号”和“退出”3 个子菜单。“按学号”和“按课程号”子菜单分别使用 SQL语句的 AVG函数统计各学生和课程的平均成绩。统计结果中
3、分别包括“学号”、“姓名”、“平均成绩”和“课程编号”、“平均成绩”。“退出”子菜单负责返回到系统菜单。 (2)在数据库“图书”中建立视图“tsview”,显示表 loans中的所有记录,并按“借书日期”降序排序。建立表单 form1,在表单上添加“表格”控件显示新建立的视图的记录。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.编写程序并执行,计算“0l“组(歌手编号的前 2位)歌手的得分并将结果存入自由表 finaldbf 中。finaldbf 包含“歌手姓名”和“得分”两个字段,“得分”取各评委所打分数的平均值。finaldbf中的结果按“得分”降序、“歌手姓名”降序
4、排列。请将程序存储在 twoprg 中,否则不得分。 新建一个文件名和表单名均为 score form的表单,向表单添加一个命令按钮 Command1,标题为“计算”,为该命令按钮的 Click事件增加命令,调用 twoprg 程序执行。最后运行该表单,并单击“计算”按钮执行 two程序。 新建一个项目文件 score project,将自由表“歌手表”、“评委表”和“评分表”以及表单文件 score form加入该项目,然后将项目文件连编成应用程序文件 score app。(分数:2.00)_国家二级 VF机试(操作题)-试卷 258答案解析(总分:6.00,做题时间:90 分钟)一、基本操
5、作题(总题数:1,分数:2.00)1.在考生文件夹下已有 customers(客户)、orders(订单)、orderitems(订单项)和 goods(商品)四个表。(1)创建一个名为“订单管理”的数据库,并将已有的 customers表添加到该数据库中。 (2)利用表设计器为 customers表建立一个普通索引,索引名为 bd,索引表达式为“出生日期”。 (3)在表设计器中为customers表的“性别”字段设置有效性规则,规则表达式为:性别$“男女“,出错提示信息是:“性别必须是男或女”。 (4)利用 INDEX命令为 customers表建立一个普通索引,索引名为 khh,索引表达式
6、为“客户号”,索引存放在 customerscdx 中。然后将该 INDEX命令存入命令文件 poneprg 中。(分数:2.00)_正确答案:(正确答案:(1)命令窗口执行: MODIEY DATABASE 订单管理 ,新建数据库并打开数据库设计器。 在数据库设计器中右击,选择【添加表】,在“打开”对话框中双击 customers表添加到数据库中。 (2)在数据库设计器中右击 customers表,选择【修改】,打开表设计器,“字段”选项卡中选“出生日期”,“索引”列中选择“升序”,“索引”选项卡中,修改“索引名”为“bd”。 (3)接上题,在 customers表设计器的“字段”选项卡中选
7、中“性别”,“字段有效性”的“规则”文本框中输入:性别$“男女“,在“信息”文本框中输入:”性别必须是男或女”,单击“确定”按钮保存表结构的修改。 (4)命令窗口执行:MODIFY COMMAND pone,新建程序文件并打开程序编辑器。输入命令:INDEX ON 客户号 TAG_khh。 单击“常用”工具栏中的“运行”保存并运行程序。)解析:解析:本题考查了数据库的建立和数据库设计器的使用;索引的建立;字段有效性规则的设置。 在表设计器中对字段建立有效性规则和设置默认值注意先选中需要建立有效性规则的字段。 在表设计器的“字段”选项卡中,可以通过选择“排序”下拉框中的“排序”下拉框中的“升序”
8、或“降序”为指定的字段建立一个索引名与索引表达式相同的普通索引,在“索引”选项卡中可修改索引名或索引类型。 也可以用命令建立索引,后缀名为CDX 的索引是复合索引,本题要求建立的 customercdx 索引文件与customers表同名,属于结构符合索引,建立结构符合索引的命令格式是:INDEX ON 索引关键字 TAG索引名。二、简单应用题(总题数:1,分数:2.00)2.(1)在“学籍”数据库中有 student、score 和 collie三个表,使用菜单设计器制作一个名为 menu1的菜单,菜单只有一个“查询”菜单项。该菜单项中有“按学号”、“按课程号”和“退出”3 个子菜单。“按学
9、号”和“按课程号”子菜单分别使用 SQL语句的 AVG函数统计各学生和课程的平均成绩。统计结果中分别包括“学号”、“姓名”、“平均成绩”和“课程编号”、“平均成绩”。“退出”子菜单负责返回到系统菜单。 (2)在数据库“图书”中建立视图“tsview”,显示表 loans中的所有记录,并按“借书日期”降序排序。建立表单 form1,在表单上添加“表格”控件显示新建立的视图的记录。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: CREATE MENU menu1 ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 2:在菜单设计器“菜单名称”
10、列的文本框中输入“查询”,“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第 1、2、3 行文本框中依次输入子菜单名“按学号”、“按课程号”和“退出”,将 3个子菜单的“结果”都设置为“命令”,然后在 3个菜单命令的“选项”文本框中分别输入相应的命令。如图34 所示。 步骤 3:三条命令语句如下: “按学号”菜单命令: SELECT 学号,AVG(成绩)FROM score GROUP BY学号。 “按课程号”菜单命令: SELECT 课程号,AVG(成绩)FROM score GROUP BY 课程号。 “退出”菜单命令: SET SYSMENU TO
11、DEFAULT。 步骤 4:执行【菜单】【生成】菜单命令,在弹出的 VisualFoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 步骤 5:在命令窗口执行命令: DO menu1napr ,运行菜单查看结果(注意:执行文件时,文件扩展名不能缺省)。 (2)步骤 1:在命令窗口执行命令: OPEN DATABASE 图书 ,打开“图书”数据库环境。 步骤 2:继续在命令窗口执行命令:CREATE VIEW,打开视图设计器。在“添加表或视图”对话框中双击 loans表,将表添加到视图设计器中。 步骤 3:在“字段”选项卡中单击“全部
12、添加”按钮,将“可用字段”中的全部字段添加到“选定字段”中;在“排序依据”选项卡中双击“选定字段”列表框中的“loans借书日期”字段,将字段添加到“排序条件”列表框中,在“排序选项”中选择“降序”单选项;单击“常用”工具栏中的“运行”按钮查看结果,将视图文件以文件名tsview保存(视图设计器的操作界面与查询设计器类似,部分操作界面可参考查询设计器图示)。 步骤4:在命令窗口执行命令: CREATE FORM form1 ,打开表单设计器。右击表单选择【数据环境】快捷菜单命令,打开表单数据环境,在“添加表或视图”对话框单击“视图”选项,然后双击 tsview视图文件,将视图添加到表单数据环境
13、中;将表单数据环境中的 tsview视图文件拖放到表单中,会出现一个表格控件自动显示视图中的数据。如图 35 所示。 步骤 5:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。 )解析:解析:(1)本题考查了菜单设计器的使用;SQL 分组与计算查询。 进入菜单设计器界面,首先设计的是主菜单内容,即本题中的“查询”菜单项,设计完主菜单项后,再创建每个菜单栏的弹出菜单,即本题中的“按学号”、“按课程号”和“退出”3 个子菜单,如果要通过子菜单返回到上级菜单,则需要选择“菜单设计器”右侧的“菜 单级”下拉框选项返回。 本题中 sQL分组与计算查询语句设计也比较简单,使用 A
14、VG()函数可以求平均值,根据题意可知,“按学号”菜单命令中应按“学号”字段分组,而“按课程号”菜单命令中则按“课程号”分组进行计算,这两个查询都可以基于 score表完成。 (2)本题考查的是视图设计器的使用及表单数据环境的使用。由于视图只能保存在数据库中,因此要先打开用于保存视图的数据,然后再建立视图。 在表单设计器中,向表单数据环境添加数据表或视图后,可拖动表、视图或字段名到表单中,形成相应的表单控件,同时,系统会自动将控件的相关属性与数据环境中表数据相结合,用来显示表中的数据,一般情况下,拖动表或视图到表单中会形成一个表格控件。三、综合应用题(总题数:1,分数:2.00)3.编写程序并
15、执行,计算“0l“组(歌手编号的前 2位)歌手的得分并将结果存入自由表 finaldbf 中。finaldbf 包含“歌手姓名”和“得分”两个字段,“得分”取各评委所打分数的平均值。finaldbf中的结果按“得分”降序、“歌手姓名”降序排列。请将程序存储在 twoprg 中,否则不得分。 新建一个文件名和表单名均为 score form的表单,向表单添加一个命令按钮 Command1,标题为“计算”,为该命令按钮的 Click事件增加命令,调用 twoprg 程序执行。最后运行该表单,并单击“计算”按钮执行 two程序。 新建一个项目文件 score project,将自由表“歌手表”、“评
16、委表”和“评分表”以及表单文件 score form加入该项目,然后将项目文件连编成应用程序文件 score app。(分数:2.00)_正确答案:(正确答案:步骤 1:命令窗口执行:MODIFY COMMAND two,打开程序文件编辑器。输入如下程序代码并保存(以下 SQL查询语句是通过查询设计器生成): 1 SELECT 歌手姓名,AVG(分数)AS 得分 FROM歌手表,评分表; 2 WHERE 歌手表歌手编号=评分表歌手编号 AND LEFT(歌手表歌手编号,2)=“01“; 3 GROUP BY 歌手表歌手编号; 4 ORDER BY 得分 DESC,歌手姓名 DESC INTO
17、TABLE final 步骤 2:命令窗口执行: CREATE FORM score_form ,打开表单设计器新建立表单。 步骤 3:向表单添加一个命令按钮。修改表单(Form1)的 Name属值为:score_form,命令按钮(Command1)的 Caption属性值为:计算。 步骤 4:命令按钮(Command1)Click 事件代码: DO two 。单击“常用”工具栏中的“运行”查看结果,保存表单。 步骤 5:命令窗口执行命令: CREATE PROJECTscore_project ,新建一个项目管理器。在“数据”选项卡中选“自由表”,单击右边的“添加”按钮,将考生文件夹下的“
18、歌手表”、“评委表”和“评分表”依次加入到项目中;以同样的方法,在“文档”选项卡中,将 score_form表单添加到项目中。 步骤 7:单击项目管理器右侧的“连编”按钮打开“连编选项”对话框,选中“连编应用程序”,单击“确定”,在“另存为”对话框的“应用程序名”中输入:score app,单击“保存”按钮。)解析:解析:本题主要考查了程序文件的建立与运行;SQL 分组计算查询;连编应用程序等。 关键是 SQL分组计算查询的设计,可参照以下步骤: SELECT 短语中指定要输出的字段,包括通过 AVG()函数计算生成的新字段。FROMJOINON等短语指定查询数据源,并建立表间联系,查询源表为“歌手”表和“评分”表,两个表的联接字段为“歌手编号”。GROUP BY 短语对表记录分组,分组字段为“歌手编号”。ORDER BY短语设置两个字段的排序方式。ASC 表示升序,为系统默认的排序方式,可省略;DESC 短语表示降序,不可缺省。 最后将查询结果通过 INTO ZABLE命令输出到指定的数据表中。 调用程序文件的命令是 DO;连编应用程序可通过单击项目管理器右侧的“连编”命令打开“连编选项”对话框完成。