(1)在“学籍”数据库中有student、score和course三个表,使用菜单设计器制作一个名为menu1的菜单,菜单只有一个“查询”菜单项。该菜单项中有“按学号”、“按课程号”和“退出”3个子菜单。“按学号”和“按课程号”子菜单分别使用SQL语句的A

admin2013-03-31  22

问题 (1)在“学籍”数据库中有student、score和course三个表,使用菜单设计器制作一个名为menu1的菜单,菜单只有一个“查询”菜单项。该菜单项中有“按学号”、“按课程号”和“退出”3个子菜单。“按学号”和“按课程号”子菜单分别使用SQL语句的AVG函数统计各学生和课程的平均成绩。统计结果中分别包括“学号”、“姓名”、“平均成绩”和“课程编号”、“平均成绩”。“退出”子菜单负责返回到系统菜单。
    (2)在数据库“图书”中建立视图“tsview”,显示表loans中的所有记录,并按“借书日期”降序排序。建立表单form1,在表单上添加“表格”控件显示新建立的视图的记录。

选项

答案步骤1:在命令窗口执行命令:CREATE MENU menul,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤2:在菜单设计器“菜单名称”列的文本框中输入“查询”,“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第1、2、3行文本框中依次输入子菜单名“按学号”、“按课程号”和“退出”,将3个子菜单的“结果”都设置为“命令”,然后在3个菜单命令的“选项”文本框中分别输入相应的命令。如图2-4所示。 [*] 步骤3:三条命令语句如下: “按学号”菜单命令:SELECT 学号,AVG(成绩)FROM score GROUP BY学号。 “按课程号”菜单命令:SELECT 课程号,AVG(成绩)FROM score GROUP BY课程号。“退出”菜单命令:SET SYSMENU TO DEFAULT。 步骤4:执行【菜单】→【生成】菜单命令,在弹出的Visual FoxPro对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 步骤5:在命令窗口执行命令:DO menu1.mpr,运行菜单查看结果(注意:执行文件时,文件扩展名不能缺省)。 (2)步骤1:在命令窗口执行命令:OPEN DATABASE图书,打开“图书”数据库环境。 步骤2:继续在命令窗口执行命令:CREATE VIEW,打开视图设计器。在“添加表或视图”对话框中双击loans表,将表添加到视图设计器中。 步骤3:在“字段”选项卡中单击“全部添加”按钮,将“可用字段”中的全部字段添加到“选定字段”中;在“排序依据”选项卡中双击“选定字段”列表框中的“loans.借书日期”字段,将字段添加到“排序条件”列表框中,在“排序选项”中选择“降序”单选项;单击“常用”工具栏中的“运行”按钮查看结果,将视图文件以文件名tsview保存(视图设计器的操作界面与查询设计器类似,部分操作界面可参考查询设计器图示)。 步骤4:在命令窗口执行命令:CREATE FORM form1,打开表单设计器。右击表单选择【数据环境】快捷菜单命令,打开表单数据环境,在“添加表或视图”对话框单击“视图”选项,然后双击tsview视图文件,将视图添加到表单数据环境中;将表单数据环境中的tsview视图文件拖放到表单中,会出现一个表格控件自动显示视图中的数据。如图2-5所示。 步骤5:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。 [*]

解析 (1)本题考查了菜单设计器的使用;SQL分组与计算查询。
    进入菜单设计器界面,首先设计的是主菜单内容,即本题中的“查询”菜单项,设计完主菜单项后,再创建每个菜单栏的弹出菜单,即本题中的“按学号”、“按课程号”和“退出”3个子菜单,如果要通过子菜单返回到上级菜单,则需要选择“菜单设计器”右侧的“菜单级”下拉框选项返回。
    本题中SQL分组与计算查询语句设计也比较简单,使用AVG()函数可以求平均值,根据题意可知,“按学号”菜单命令中应按“学号”字段分组,而“按课程号”菜单命令中则按“课程号”分组进行计算,这两个查询都可以基于score表完成。
    (2)本题考查的是视图设计器的使用及表单数据环境的使用。由于视图只能保存在数据库中,因此要先打开用于保存视图的数据,然后再建立视图。
    在表单设计器中,向表单数据环境添加数据表或视图后,可拖动表、视图或字段名到表单中,形成相应的表单控件,同时,系统会自动将控件的相关属性与数据环境中表数据相结合,用来显示表中的数据,一般情况下,拖动表或视图到表单中会形成一个表格控件。
转载请注明原文地址:https://kaotiyun.com/show/Ywsp777K
0

最新回复(0)