问题 问答题

首先利用表设计器在考生目录下建立表 newcj.dbf,表结构如下:
民族字符型(4)
语文平均分 数值型(7,2)
数学平均分 数值型(7,2)
然后在考生文件夹下创建一个下拉式菜单smenu.mnx,并生成菜单程序smenu.mpr。运行该菜单程序时会在当前VisualFoxPro系统菜单的末尾追加一个“考试测试”菜单。
菜单命令“统计”和“返回”的功能都通过执行过程完成。
菜单命令“统计”的功能是根据xs表和cj表分别统计汉族学生和少数民族学生在“语文”和“数学”两门课程上的平均分,并把统计数据保存在表newcj中。表newcj的结果有两条记录:第1条记录是汉族学生的统计数据,“民族”字段填“汉”;第2条记录是少数民族学生的统计数据,“民族”字段填“其他”。
菜单命令“返回”的功能是恢复标准的系统菜单。
菜单程序生成后,运行菜单程序并依次执行“统计”和“返回”菜单命令。

答案

参考答案:步骤1:单击工具栏[新建]按钮,在[新建]对话框的[文件类型]中选择表,单击[新建文件]。在弹出的[创建]对话框中输入表名“newcj”,单击[保存]按钮,打开表设计器。
步骤2:在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击[确定]按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗”.单击[否]按钮。
步骤3:单击工具栏[新建]按钮,在弹出的[新建]对话框[文件类型]中选择“菜单”,单击[新建文件],在弹出的对话框中选择[菜单]按钮,打开菜单设计器。在菜单设计器“菜单名称”列的文本框中输入“考试测试”,“结果”下拉框中选择为“子菜单”,单击[创建]按钮进入下级菜单设计,在“菜单名称”列的第1、2行文本框中依次输入子菜单名“统计”和“返回”,将两个子菜单的“结果”都设置为“过程”,分别单击两个子菜单行的[创建]命令按钮,打开过程编辑框编写过程代码。
步骤4:两个子菜单的过程代码如下:
统计:
SELECT XS.民族,AVG(CJ.语文)AS语文平均分,AVG(CJ.数学)AS数学平均分FROM XS:
INNER JOIN CJ ON XS.学号 = CJ.学号;
WHERE XS.民族="汉"INTO ARRAY ARR
INSERT INTO NEWCJ FROM ARRAY ARR
SELECT XS.民族,AVG(CJ.语文)AS语文平均分,AVG(CJ.数学)AS数学平均分FROM XS:
INNER JOIN CJ ON XS.学号=CJ.学号;
WHERE XS.民族!="汉"INTO ARRAY ARR
INSERT INTO TABLE NEWCJ FROMARRAY ARR
UPDATE NEWCJ SET民族=’其他’WHERE民族!="汉"
返回:
SET SYSMENU TO DEEAULT
步骤5:选择菜单栏[显示]|[常规选项],在弹出的[常规选项]对话框[位置]区域选中“追加”单选项。单击[确定]按钮,单击工具栏的[保存]按钮。
步骤6:选择[菜单]|[生成],在[生成菜单]对话框中选择生成的菜单保存的位置,单击[生成]按钮生成一个可执行的菜单文件。选择菜单栏[程序]|[运行],在弹出的[运行]对话框中选择“smenu.mpr”,单击[运行]。最后执行“统计”和“返回”菜单命令。

解析:本题主要考查的知识点有:新建表结构,新建追加式菜单。可以在“常规选项”对话框进行设置。

选择题
单项选择题 案例分析题