首先利用表设计器在考生文件夹下建立表table3,表结构如下: 民族 字符型(4) 数学平均分 数值型(6,2) 英语平均分 数值型(6,2) 然后在考生文件夹下创建一个下拉式菜单mymenu.

admin2013-03-31  35

问题 首先利用表设计器在考生文件夹下建立表table3,表结构如下:
    民族          字符型(4)
    数学平均分    数值型(6,2)
    英语平均分    数值型(6,2)
    然后在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图1-22所示。

    菜单命令“计算”和“返回”的功能都通过执行过程完成。
    菜单命令“计算”的功能是根据xuesheng表和chengji表分别统计汉族学生和少数民族学生在“数学”和“英语”两门课程上的平均分,并把统计数据保存在表table3中。表table3的结果有两条记录:第1条记录是汉族学生的统计数据,“民族”字段填“汉”;第2条记录是少数民族学生的统计数据,“民族”字段填“其他”。
    菜单命令“返回”的功能是恢复标准的系统菜单。
    菜单程序生成后,运行菜单程序并依次执行“计算”和“返回”菜单命令。

选项

答案步骤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命令修改字段值,完成记录的添加。
转载请注明原文地址:https://kaotiyun.com/show/uusp777K
0

最新回复(0)