在考生文件夹下有学生成绩数据库xuesheng3,包括如下所示3个表文件以及相关的索引文件: xs.dbf(学生文件:学号C8,姓名C8,性别C2,班级C5;另有索引文件xs.idx,索引键:学号) cj.dbf(成绩文件:学号C8,课程名C20,成绩N5,1;另有索引文件cj.idx,索引键:学号) cjb.dbf(成绩表文件:学号C8,姓名C8,班级C5,课程名C12,成绩N5.1) 设计一个名为xs3的菜单,菜单中有两个菜单项“计算”和“退出”。 程序运行时,单击“计算”菜单项应完成下列操作: 将所有选修了“计算机基础”的学生的“计算机基础”成绩,按“成绩”由高到低的顺序填到成绩表文件cjb.dbf中。 (首先须将文件中原有数据清空) 单击“退出”菜单项,程序终止运行。 (注:相关数据表文件存在于考生文件夹下)
参考答案:
解析:在命令窗口输入命令:CREATE MENU xs3,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“计算”和“退出”,接着在“计算”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”选项(可参考二大题2小题的设计过程)。 单击“计算”菜单行中的“创建”按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段: **********“计算”菜单命令的程序设计********** SET TALK OFF OPEN DATABASE xuesheng3 SELECT cj.学号,xs.班级,xs.姓名,cj.课程名,cj.成绩; FROM xuesheng3!xs INNER JOIN xuesheng3!cj; ON xs.学号=cj.学号; WHERE cj.课程名=’计算机基础’; ORDER BY cj.成绩DESC; INTO ARRAY AFields Value DELETE FROM cjb INSERT INTO cjb FROM ARRAY AFields Value CLOSE ALL USE cjb PACK USE 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”—“生成”,生成一个菜单文件“xs3.mpr”。关闭设计窗口,在命令窗口输入命令:DO xs3.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 本大题考查的主要是通过学生表和成绩表的连接,将符合要求的记录添加到新的数据表中。在菜单的“计算”菜单命令设计过程中,在“结果”下拉框选项中应该选择“.过程”选项,然后进行查询程序的编辑,在程序设计过程中,可以使用SQL查询语句及插入语句来完成设计过程。