在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图2.11所示。 菜单命令“计算”和“返回”的功能都通过执行过程完成。

admin2015-08-20  23

问题 在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图2.11所示。
    菜单命令“计算”和“返回”的功能都通过执行过程完成。   

    菜单命令“计算”的功能是从xuesheng表和chengji表中找出所有满足如下条件的学生:其在每门课程上的成绩都大于等于所有同学在该门课程上的平均分。并把这些学生的学号和姓名保存在表table2中(表中只包含学号和姓名两个字段)。表table2中各记录应该按“学号”降序排序。
    提示:各门课程的平均分可用下面SQL语句获得:
    select avg(数学),avg(英语),avg(信息技术)fromchengji into array tmp,菜单命令“返回”的功能是恢复标准的系统菜单。
    菜单程序生成后,运行菜单程序并依次执行“计算”和“返回”菜单命令。

选项

答案步骤1:在命令窗口执行命令:CREATE MENU mymenu.mnx,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤2:在菜单设计器“菜单名称”列的文本框中输入“考试",“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第1、2行文本框中依次输入子菜单名“计算”、“返回”,将两个子菜单的“结果”都设置为“过程”,分别单击两个子菜单行的“创建”命令按钮,打开过程编辑框编写过程代码。 步骤3:两个子菜单的过程代码如下: *****“计算”子菜单的过程代码***** 1 select aVg(数学),avg(英语),avg(信息技术); 2 from chengj i into array ttt 3 select xuesheng.学号,姓名; 4 from xuesheng join chengji; 5 on xuesheng.学号=chengji.学号; 6 where数学>=ttt(1); 7 and英语>=ttt(2); 8 order by xuesheng.学号desc; 9 into table table2 *****“返回”子菜单的过程代码***** 1 SET SYSMENU NOSAVE 2 SET sYSMENU TO DEFAULT 步骤4:执行【显示】→【常规选项】菜单命令,在“位置”区域选中“追加”单选项,则新建立的子菜单会在当前Visual FoxPro系统菜单后显示。 步骤5:执行【菜单】→【生成】菜单命令,在弹出的Visual.FoxPro对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 步骤6:在命令窗口执行命令:DO mymenu.mpr,运行菜单,并执行“统计”菜单命令。

解析 本大题考查了菜单的建立及使用;SQL简单连接查询。   
    菜单的建立属于比较基本的操作,注意向系统菜单追加菜单项时,应在菜单设计器中打开矗常规选项”对话框进行设置。
    本题的关键是SQL简单连接查询,用来查询的数据表是xuesheng表和chengji,连接字段是“学号”;在筛选条件中,根据题意,可将本题的筛选要求看成是“数学”大于数学平均分,且“英语”大于英语平均分,且“信息技术”大于信息技术平均分,同时满足这3个条件就相当于每门课程的成绩都大于等于所有同学在该门课程上的平均分,利用SQL简单计算查询可以得到每门课程的平均分,计算函数为AVG。
转载请注明原文地址:https://jikaoti.com/ti/MIv0FFFM
0

最新回复(0)