1、国家二级 VF 机试-试卷 76 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)打开数据库“外汇”,通过“外币代码”字段为“外汇代码”和“外汇账户”建立永久联系。 (2)新建一个名为“外汇管理”的项目文件,将数据库“外汇”加入“外汇管理”项目中。 (3)修改 mymenu菜单文件,为“文件”下的子菜单项“查找”设置访问键 F。 (4)修改 oneprg 中的 SQL 语句,使之正确(该语句的功能是从 rate 表中删除币种 1 代码为 14,并且币种 2 代码为 27 的记录)。(分数:2.00)
2、_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)用 SQL 语句完成下列操作:将选课在 5 门课程以上(包括 5 门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表 stu_temp 名为学号、姓名、平均分和选课门数)。 (2)建立一个名为 menu_lin 的下拉式菜单,菜单中有两个菜单项“查询”和“退出”。“查询”项下还有一个子菜单,子菜单有“按姓名”和“按学号”两个选项。在“退出”菜单项下创建过程,该过程负责使程序返回到系统菜单。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(
3、分数:2.00)_6.建立一个表单名和文件名均为 myform 的表单。表单的标题是“评委打分情况”,表单中有两个命令按钮(Command1 和 Command2)和两个单选钮(Option1 和 Option2)。Command1 和 Command2 的标题分别是“生成表”和“退出”,Opdon1 和 Option2 的标题分别是“按评分升序”和“按评分降序”。 为“生成表”命令按钮编写程序,程序的功能是根据简单应用题生成的 resultdbf 表按指定的排序方式生成新的表,单选钮选择“按评分升序”时,依次按“最高分”、“最低分”和“平均分”3 个字段升序排序生成表 six a,单选钮选择
4、“按评分降序”时,依次按“最高分”、“最低分”和“平均分”3 个字段降序排序生成表 six d。 运行表单,选择“按评分升序”单选钮,单击“生成表”命令按钮;再选择“按评分降序”单选钮,单击“生成表”命令按钮(注意:必须执行)。(分数:2.00)_国家二级 VF 机试-试卷 76 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)打开数据库“外汇”,通过“外币代码”字段为“外汇代码”和“外汇账户”建立永久联系。 (2)新建一个名为“外汇管理”的项目文件,将数据库“外汇”加入“外汇管理”项目中。 (
5、3)修改 mymenu菜单文件,为“文件”下的子菜单项“查找”设置访问键 F。 (4)修改 oneprg 中的 SQL 语句,使之正确(该语句的功能是从 rate 表中删除币种 1 代码为 14,并且币种 2 代码为 27 的记录)。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY DATABASE 外汇 ,打开数据库设计器。 在数据库设计器中,右击“外汇代码”表,选择【修改】快捷菜单命令,打开“外汇代码”表设计器,在“字段”选项卡中选中“外币代码”,在“索引”列中选择“升序”,然后在“索引”选项卡中修改“类型”为“主索引”,单击“确定”按钮保存表结构修改。
6、在数据库设计器中,右击“外汇账户”表,选择【修改】快捷菜单命令,打开“外汇账户”表设计器,选中“字段”选项卡中的“外币代码”,在“索引”列中选择“升序”,单击“确定”按钮保存表结构修改。 拖动“外汇代码”表“索引”下方的主索引“外币代码”到“外汇账户”表中“索引”下方的普通索引“外币代码”上,为两个表建立联系。(2)在命令窗口执行命令: CREATE PROJECT 外汇管理 ,新建一个项目管理器。 在项目管理器中,选中“数据”选项卡内的“数据库”项,然后单击“添加”按钮,在弹出的“打开”对话框中双击“外汇”数据库文件,将数据库添加到项目管理器中。如图 2-45 所示。 )解析:解析:本大题考
7、查了项目管理器的建立及使用、永久联系的建立、菜单设计器的使用和 SQL 查询语句。 建立两个表的永久联系时,有一个表中必须建立关联字段的主索引(或候选索引),另一个表要建立普通索引。本题中,应先以“外币代码”为关联字段在“外汇代码”表中建立主索引,在“外汇账户”表中建立普通索引,然后再建立联系。 在菜单设计器中,为菜单项设置访问键的方法是在要作为访问键的字符前加“”两个字符。注意:在对菜单进行修改后要保存并生成菜单程序文件。 SOL 语句中删除记录的命令是 delete from,删除条件应该用 where 短语。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)
8、_解析:4.(1)用 SQL 语句完成下列操作:将选课在 5 门课程以上(包括 5 门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表 stu_temp 名为学号、姓名、平均分和选课门数)。 (2)建立一个名为 menu_lin 的下拉式菜单,菜单中有两个菜单项“查询”和“退出”。“查询”项下还有一个子菜单,子菜单有“按姓名”和“按学号”两个选项。在“退出”菜单项下创建过程,该过程负责使程序返回到系统菜单。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: OPEN DATABASE 学生 ,打开“学生”数据库。步骤 2:在命令窗口执行
9、命令(以下程序是通过查询设计器生成): SELECT 学生学号,学生姓名,AVG(选课成绩) AS 平均分,;& AVG()函数用来求平均分 COUNT(选课课程号)AS 选课门数; &COUNT()函数用来统计每个学生选修课程数 FROM 学生!学生 INNERJOIN 学生!选课; ON 学生学号=选课学号; GROUP BY 选课学号; &按选课表的学号 字段对记录进行分组 HAVING COUNT(选课课程号)=5, &进一步限定分组后的条件,只求选课数在 4 门以上的学生成绩 ORDER BY 3 DESC; &按输出结果的第 3 列字段(即“平均分”字段)值降序排序 INTO TA
10、BLE STU_TEMPDBF (2)步骤 1:在命令窗口执行命令: CREATE MENU menu_lin ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 2:在菜单设计器“菜单名称”列的文本框中依次输入“查询”和“退出”两个主菜单名,“结果”下拉框中选择为“子菜单”,单击“查看”行的“创建”按钮进入下级菜单设计,在“菜单名称”列的第 1、2 行文本框中依次输入子菜单名“按姓名”和“按学号”。 步骤 3:通过“菜单级”下拉框返回主菜单项设计界面,选择“退出”菜单命令的“结果”项为“过程”,并通过单击“创建”按钮打开过程编辑器添加返回到系统菜单的命令: SET S
11、YSMENU TO DEFAULT。 步骤 4:执行【菜单】【生成】菜单命令,在弹出的 VisualFoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 步骤 5:在命令窗口执行命令: DO menu_linmpr ,运行菜单查看结果。)解析:解析:(1)本题主要考查了 SQL 分组与计算查询。本题的关键首先是要确定进行计算的字段有哪些、进行何种计算,然后判断根据哪个字段进行分组。根据题目要求,在输出字段中“学号”和“姓名”是表中原有的字段,而“平均分”和“选课门数”字段则需要通过计算得出,通过 AS 短语可指定输出新的字段名。 “
12、平均分”可以通过求每个学生“成绩”的平均值得到,使用 AVG 函数求平均值;而“选课门数”可以通过求每个学生选修的课程总数得到,在“选课”表中可以通过“选课号”的不同判断每个学生共选修了几门课程,使用 COUNT 函数可以进行计数统计,此处注意不要与求和函数 SUM 混淆。 从上面两个函数不难看出,这两个函数都是在针对每个学生进行操作的,因此可以通过“选课”表中的“学号”字段分组,将“学号”相同的记录分到一组再进行计算。 另外,题目还要求对选课在 4 门以上的学生成绩进行计算,因此,该条件必须通过 HAVING 子句对分组统计的结果做进一步限制,对满足该条件的学生才进行计算输出结果。此处不要将
13、 HAVING 条件短语与 WHERE 条件短语混淆,HAVING 短语是在进分组计算的基础上,对所得的结果做进一步的限制,而 WEHRE 条件短语基本与分组计算结果没有关系。 (2)本题考查的是菜单设计器的使用。设计过程中注意主菜单项与子菜单项的建立,本题属于比较简单的操作。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.建立一个表单名和文件名均为 myform 的表单。表单的标题是“评委打分情况”,表单中有两个命令按钮(Command1 和 Command2)和两个单选钮(Option1 和 Option2)。Command1 和 Command
14、2 的标题分别是“生成表”和“退出”,Opdon1 和 Option2 的标题分别是“按评分升序”和“按评分降序”。 为“生成表”命令按钮编写程序,程序的功能是根据简单应用题生成的 resultdbf 表按指定的排序方式生成新的表,单选钮选择“按评分升序”时,依次按“最高分”、“最低分”和“平均分”3 个字段升序排序生成表 six a,单选钮选择“按评分降序”时,依次按“最高分”、“最低分”和“平均分”3 个字段降序排序生成表 six d。 运行表单,选择“按评分升序”单选钮,单击“生成表”命令按钮;再选择“按评分降序”单选钮,单击“生成表”命令按钮(注意:必须执行)。(分数:2.00)_正确
15、答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORMmyform ,打开表单设计器新建表单。从“表单控件”工具栏中依次向表单添加一个选项按钮组和两个命令按钮控件。 步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 2-23。 )解析:解析:本大题考查了表单及控件的常用属性和方法的设置;IF 条件语句;SQL 简单的联接查询。 对本题操作时,首先根据题意新建表单、添加控件并修改相关属性。修改选项组单选按钮的标题属性值时,要注意选项组处于“编辑”状态。 由于查询是根据选项组中单个选项进行操作的,因此需要判断单击时被选定的是哪个单选项来执行相应的功能选项组中获得当前被选中单选项的返回值属性是 Value,进行代码设计时,可以通过 IF 条件语句判断当前被选定的是哪个单选项,并完成该单选项所对应执行的功能。SQL 程序设计部分考查的是 SQL 简单联接查询,语句比较简单,主要注意排序字段的设置,当对多个字段进行排序时,各字段之间要用逗号隔开,升序使用 ASC 短语(可省略),降序使用 DESC 短语。