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