1、上机操作题-试卷 62 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开招生数据库 sdb,完成如下操作: (1)在 ksb 表中增加一个名为“备注”的字段、字段数据类型为“字符”、宽度为 30。 (2)在考生成绩表 kscljb 中给成绩字段设置有效性规则和默认值,成绩=0 AND 成绩=0 AND 成绩=150:默认值为 0。 (3)通过“考生号”字段建立 ksb 表和 kscib 表间的永久联系,并为该联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“忽略”。 (4)使用报表向导建立一个简单报
2、表。要求选择考生表:ksb 中所有字段;记录不分组;报表样式为“随意式”;列数为 1,字段布局为“列”,方向为“纵向”;排序字段为“考生号”(升序);报表标题为“考生成绩一览表”;报表文件名为 onefrx。(分数:2.00)_正确答案:(正确答案:本大题考查了表结构的修改;有效性规则的建立及参照完整性的设置;报表向导的使用。 对表中字段建立有效性规则和设置默认值是在表设计器中操作的,在操作时要注意先选中需要建立有效性规则的字段。 参照完整性是针对两个表进行设置的,在建立参照完整性前要先建立两个表的关联,且有一个表中必须建立关联字段的主索引(或候选索引),另一个表要建立普通索引,建立两个表联系
3、后要先清理数据库,然后再设置参照完整性。 利用报表向导制作报表属于比较简单的操作,可以通过“新建”对话框打开报表后,根据向导提示一步步完成即可。 【操作步骤】 (1)在命令窗口执行命令:MODIFY DATABASE sdb,打开数据库设计器。 在数据库设计器中,右击 ksb 表,选择【修改】快捷菜单命令,打开 ksb 表设计器,在“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“备注”,在“类型”下拉框中选择“字符型”,在“宽度”文本框中输入“30”,单击“确定”按钮保存表结构修改。如图所示。 )解析:二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下,打开招生数据库
4、 sdb,完成如下简单应用:(1)使用一对多表单向导选择 ksb 表和kscjb 表生成一个名为 two 的表单。要求从父表 ksb 中选择所有字段,从子表 kscljb 中选择所有字段,使用“考生号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自ksb),升序;表单标题为“考生数据输入维护”。(2)在考生文件夹下打开命令文件 threeprg,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表 three 中。注意,该命令文件在第 3 行、第 6 行、第 9 行有错误,打开该命令文件,直接在错误处修改,不可改变 SQL语句的结
5、构和短语的顺序,不允许增加、删除或合并行。(分数:2.00)_正确答案:(正确答案:(1)【审题分析】本题主要考查的是表单向导的使用。操作比较简单,只需根据向导提示一步步完成操作即可。 【操作步骤】 步骤 l:在命令窗口执行命令:OPEN DATABASE sdb,打开SDB 数据库。 步骤 2:执行【文件】一【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“表单”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多表单向导”项,单击“确定”按钮,启动表单向导。如图 3-38 所示。 )解析:三、综合应用题(总题数:1,分数:2.00)3.
6、在考生文件夹下,打开招生数据库 sdb,完成如下综合应用: 创建文件名为 form 的表单,将表单标题改为:录取研究生。 在表单中设计“录取”和“退出”两个按钮。两个按钮功能分别如下: 在“录取”按钮(Commandl)中,编写程序,查询总成绩大于或等于 330 分的考生的“考生号”、“姓名”、“性别”、“单位”和该生的“政治成绩”、“外语成绩”、“高数成绩”(即高等数学成绩)、“专业课成绩”、“总成绩”,并将结果按“总成绩”降序排序存储到表 four 中。表 four(需要自己创建或生成)的字段名为:“考生号”、“姓名”、“性别”、“单位”、“政治成绩”、“外语成绩”、“高数成绩”、“专业课
7、成绩”、“总成绩”(各成绩字段的类型为 N(5,1),其他字段的类型与原表中一致)。单击“退出”按钮(Command2)时,关闭表单。 表单设计完成后,运行表单,单击“录取”按钮进行统计,然后单击“退出”按钮关闭表单。 注:在考试科目代码表 dm 中存储了各考试科目与考试科目名对应关系。(分数:2.00)_正确答案:(正确答案:本题主要考查的是表单的建立、常用属性的设置、DO WHILE 循环结构和 SQL分组计算查询、SQL 定义功能、visual FoxPro 修改记录命令。 对本题操作时,首先建立表单及其表单控件,并修改对象的属性值,然后对命令按钮编写事件代码。 本题所设计的的程序代码有
8、些难度,需要考生好好掌握。基本解题思路可按以下步骤进行: 第一步,根据 ksb 和 ksc 两张表,利用分组计算查询求出总成绩大于等于 330 分的考生的考生号、姓名、性别、单位和总成绩,将结果保存到一个临时表 templ 中。这里,总成绩用 sUM 函数实现。 第二步,通过临时表 templ 查找出考生号、姓名、性别、单位四个字段,并按总成绩降序排序,将结果保存到表 FOUR 中。在这里,这四个字段正是题目中要求的 FOUR 表的前四个字段。 第三步,分别用五个 ALTER TABLE 语句为 FOUR 表增加五个字段:政治成绩、外语成绩、高数成绩、专业课成绩和总成绩。注意,这里为表增加字段
9、的关键字是ADD。此时,题目所要求的 FOUR 表的结构已经完成,并且前四个字段的值也已经按要求完成了,下面的任务就是将后五个字段的值填充完整。 第四步,根据 dm 和 ksc 两张表求出所有考生的考 生号、考试科目名和成绩,将结果保存到临时表 temp2 中。 第五步,将 FOUR 表作为当前表,将记录指针指向文件首,然后开始执行 DO WHILE 循环对 FOUR 表中的每条记录进行处理。DO WHILE 语句的循环条件是当记录指针没有到达 FOUR 表末尾时,执行循环体中的语句。循环体功能:用 SQI简单查询从临时表 temp2 中求出与 FOUR 表当前所指记录“考生号”相同并且“考试
10、科目名”是“政治”的“成绩”字段值,将该值保存到数组 a1 中,再通过 REPLACE 命令修改 four 表当前记录的“政治成绩”字段值。参照以上操作,可以将 four 表当前记录的“外语成绩”、“高数成绩”和“专业课成绩”三个字段值进行修改。而当前记录的“总成绩”字段值可以由当前记录的“政治成绩”、“英语成绩”、“高数成绩”和“专业课成绩”的和得到。修改完毕后,four 表的记录指针指向下一条记录,又开始继续表指针是否到达表末尾,如果没有,则进入循环体继续同样的操作,直到 four 表的记录指针指向表末尾,处理完 four 表中的所有记录,程序结束。 【操作步骤】 步骤 1:在命令窗口执行命令:CREATE FORM form,打开表单设计器新建表单。从“表单工具栏”中依次向表单添加两个命令按钮。步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 319。)解析: