首先利用表设计器在考生文件夹下建立表table3,表结构如下: 民族 字符型(4) 数学平均分 数值型(6,2) 英语平均分 数值型(6,2) 然后在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图1-22所示。
【正确答案】正确答案:步骤1:在命令窗口执行命令: CREATE table3,打开数据表设计器新建表。 步骤2:根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗?”, 本题不需要录入数据,单击“否”按钮。 步骤3:在命令窗口执行命令: CREATE MENU mymenu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤4:在菜单设计器“菜单名称”列的文本框中输入“考试”,“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第1、2行文本框中依次输入子菜单名“计算”、“返回”,将两个子菜单的“结果”都设置为“过程”,分别单击两个子菜单行的“创建”命令按钮,打开过程编辑框编写过程代码。 步骤5:两个子菜单的过程代码如下: *****“计算”子菜单的过程代码***** CLOSE DATABASE ALL SELECT AVG(数学),AVG(英语)FROM XUESHENG; JOIN CHENGJI ON XUESHENG.学号=CHENGJI.学号; WHERE 民族="汉" INTO ARRAY TMP1 SELECT AVG(数学),AVG(英语)FROM XUESHENG; JOIN CHENGJI ON XUESHENG.学号 =CHENGJI.学号; WHERE民族<>"汉" INTO ARRAY TMP2 SELECT O USE TABLE3 APPEND BLANK REPLACE 民族 WITH”汉”,数学平均分 WITH TMP1(1),英语平均分WITH TMP1(2) APPEND BLANK REPLACE 民族 WITH "其他",数学平均分 WITH TMP2(1),英语平均分WITH TMP2(2) CLOSE DATA.ALL *****“返回”子菜单的过程代码***** SET SYSMENU NOSAVE SET SYSMENU TO DEFAULT 步骤6:执行【显示】→【常规选项】菜单命令,在“位置”区域选中“追加”单选项,则新建立的子菜单会在当前Visual FoxPro系统菜单后显示。 步骤7:执行【菜单】→【生成】菜单命令,在弹出的Vismd FoxPro对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 步骤8:在命令窗口执行命令: DO mymenu.mpr ,运行菜单,并执行“计算”菜单命令。
【答案解析】解析:本题考查了表的基本操作;菜单的建立及使用;SQL简单计算查询及数据表记录的修改。 表的建立和菜单的建立都属于比较基本的操作,注意向系统菜单追加菜单项时,应在菜单设计器中打开“常规选项”对话框进行设置。本题的关键是菜单命令中SQL查询、插入和更新语句的设计。编写程序代码基本思路如下: 首先利用SQL计算查询,统计“汉”族学生的“数学”和“荚语”平均成绩,将结果保存到数组中,再通过数组向table3表插入记录;以同样的方法再将非“汉”族学生的 “数学”和“英语”平均成绩插入到table3表中。 向表中添加记录时,可以先通过VFP的添加表记录命令Append Blank在表末尾先增加一个空白记录,然后通过replace命令修改字段值,完成记录的添加。