1、上机操作题模拟试卷 70及答案与解析 一、基本操作题 1 在 “住宿管理 ”数据库中有 “学生 ”表和 “宿舍 ”表。用 SQL语句完成查询,结果为学生姓名及所住的宿舍电话号码,并将结果存放于表。 result中,将 SQL语句保存在 result.prg文件中。 二、简单应用题 2 首先利用表设计器在考生目录下建立表 newcj.dbf,表结构如下: 民族 字符型 (4) 语文平均分 数值型 (7,2) 数学平均分 数值型 (7,2) 然后在考生文件夹下创建一个下 拉式菜单 smenu.mnx,并生成菜单程序smenu.mpr。运行该菜单程序时会在当前 Visual FoxPro系统菜单的末
2、尾追加一个“考试测试 ”菜单。 菜单命令 “统计 ”和 “返回 ”的功能都通过执行过程完成。 菜单命令 “统计 ”的功能是根据 xs表和 cj表分别统计汉族学生和少数民族学生在 “语文 ”和 “数学 ”两门课程上的平均分,并把统计数据保存在表 newrcj中。表newcj的结果有两条记录:第 1条记录是汉族学生的统计数据, “民族 ”字段填“汉 ”;第 2条记录是少数民族学生的统计数据, “民族 ”字段填 “其 他 ”。 菜单命令 “返回 ”的功能是恢复标准的系统菜单。 菜单程序生成后,运行菜单程序并依次执行 “统计 ”和 “返回 ”菜单命令。 三、综合应用题 3 (1)modil.prg程序
3、文件中 SQL SELECT的功能是查询哪些零件 (零件名称 ),目前用于 3个项目,并将结果按升序存入文本文件 results.txt。给出的 SQL SELECT语句在第 1、 3、 5行各有一个错误,请改正运行程序 (不得增加 )。 (2)根据项目信息 (一方 )和使用零件 (多方 )两个表,利用一对多报表向导建立一个报表,报表内容包括 项目号、项目名、项目负责人、 (联系 )电话、使用的零件号和数量等 6个字段,按项目号升序排列,报表样式为经营式,在总结区域 (细节和总结 )包含零件使用数量的合计,报表标题为 “项目使用零件信息 ”,报表文件名为report。 上机操作题模拟试卷 70
4、答案与解析 一、基本操作题 1 【正确答案】 步骤 1:单击工具栏上的 新建 按钮,然后打开 新建 对话框,在文件类型 区中选择 “程序 ”,单击 新建文件 ,打开程序文件编辑窗口,在编辑窗口中输入以下程序代码: SELECT 姓名,电话 FROM 学生,宿舍 WHERE 学生 .宿舍编号 =宿舍 .宿舍编号 INTO TABLE result 步骤 2:单击工具栏上的 保存 按钮,在打开的 另存为 对话框中将文件名命名为“result”,然后关闭窗口。 步骤 3:单击工具栏上的 执行 按钮,随即运行程序。 【知识模块】 上机操作题 二、简单应用题 2 【正确答案】 步骤 1:单击工具栏上的
5、新建 按钮,在 新建 对话框的 文件类型 中选择表,单击 新建文件 。在弹出的 创建 对话框中输入表名 “newcj”,单击 保存 按钮,打开表设计器。 步骤 2:在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击 确定 按钮,此时系统会弹出一个对话框询问 “现在输入数据记录吗 ?”,单击否 按钮。 步骤 3:单击工具栏 新建 按钮,在弹出的 新建 对话框 文件类型 中选择 “菜单 ”,单击 新建文件 ,在弹出的对话框中选择 菜单 按钮,打开菜单设计器。在菜单设计器 “菜单名称 ”列的文本框中输入 “考试测试 ”, “结果 ”下拉框中选择为 “子菜单 ”,单击 创建 按钮进入
6、下级菜单设计,在 “菜单名称 ”列的第 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 SE
7、LECT XS.民族, AVG(CJ.语文 ) AS 语文平均分, AVG(CJ.数学 ) AS 数学平均分 FROM XS; INNER JOIN CJ ON XS.学号 =CJ.学号 ; WHERE XS.民族 !=“汉 “ INTO ARRAY ARR INSERT INTO TABLE NEWCJ FROM ARRAY ARR UPDATE NEWCJ SET 民族 =其他 WHERE 民族 !=“汉 “ 返回 SET SYSMENU TO DEFAULT 步骤 5:选择菜单栏 显示 常规选项 ,在弹出的 常规选项 对话框 位置 区域选中 “追加 ”单选项。单击 确定 按钮,单击工具栏
8、的 保存 按钮。 步骤 6:选择 菜单 生成 ,在 生成菜单 对话框中选择生成的菜单保存的位置,单击 生成 按钮生成一个可执行的菜单文件。选择菜单栏 程序 运行 ,在弹出的 运行 对话框中选择 “smenu.mpr”,单击 运行 按钮。最后执行 “统计 ”和 “返回 ”菜单命令。 【知识模块】 上机操作题 三、综合应用题 3 【正确答案】 本题中 modil.prg程序的内容 如下: SELECT 零件名称 FROM 零件信息 WHERE 零件号 =; (SELECT 零件号 FROM 使用零件 ; ORDER BY 项目号 HAVING COUNT (项目号 )=3); ORDER BY 零
9、件名称 ; INTO FILE results (1)由于子查询的返回值可能有多个,因此第 1行不可以用 “=”,只能用集合运算符 “IN”、 “=ANY”或 “=SOME”来实现。在子查询中求出每种零件应用在哪几个项目中,应根据零件号进行分组,故每三行中的 “GROUP BY项目号 ”应改为 “GROUP BY 零件号 ”。最后的结果保存到文本文件中去,应使用 “TO 文件名 ”短语,不能用“INTO”。 改错后正确的程序如下: SELECT 零件名称 FROM 零件信息 WHERE 零件号 IN; (SELECT 零件号 FROM 使用零件 ; GROUP BY 零件号 HAVING CO
10、UNT (项目号 )=3); ORDER BY 零件名称 ; TO FILE results (2)步骤 1:单击工具栏的 新建 按钮,打开 新建 对话框。在 文件类型 中选择“报表 ”,单击 向导 按钮,将会出现 向导选取 对话框。选中 “一对多报表向导 ”,按 确定 按钮,出现 步骤 1从父表中选择字段 对话框。在该对话框 数据库和表 下拉列表框后面的按钮上单击,在出现的 打开 对话框中找到表 “项目信息 ”后单击确定 按钮,然后单击 可用字段 中的 “项目号 ”,再单击 添加 按钮,把 “项目号 ”添加到 选定字段 。使用同样的方法把项目信息表中所有需要用到的字段移到 选定字段 列表框中
11、,然后单击 下一步 按钮,此时出现 步骤 2从子表中选择字段 对话框。 步骤 2: 单击 “数据库和表 ”下拉列表框后面的按钮,在出现的 打开 对话框中找到表 “使用零件 ”后按 确定 按钮,把 “使用零件 ”表中可用字段 “零件号 ”和 “数量 ”字段移动到 选定字段 列表框中,然后单击 下一步 按钮,出现 步骤 3为表建立联系 对话框。采用默认的连接,单击 下一步 按钮,出现 步骤 4排序记录 对话框。在 可用字段或索引标识 列表框中选中 “项目号 ”字段,单击 添加 按钮把它移动到 选定字段 列表框中,选中 升序 单选钮,再单击 下一步 按钮,出现 步骤5选择报表样式 对话框。在该对话框中选中 “经营式 ”, 接着单击 总结选项 按钮,在出现的总结选项对话框中设计总结信息,对本对话框的设置,设置好后按确定 按钮。然后按 下一步 按钮,将出现 步骤 6完成 对话框。在该对话框中设置报表标题为 “项目使用零件信息 ”后单击 完成 按钮,将会出现 另存为 对话框,输入文件名为 “report”。 【知识模块】 上机操作题