重点提示参见第一套题目:
一、在考生文件夹下,打开招生数据库SDB,完成如下操作:
    1.在KSB表中增加一个名为"备注"的字段、字段数据类型为"字符"、宽度为30
    2.在考生成绩KSCJB中给成绩字段设置有效性规则和默认值,成绩>=0 AND 成绩<=150;默认值为0
    3.通过"考生号"字段建立KSB表和KSCJB表间的永久联系,并为该联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"忽略"
    4.使用报表向导建立一个简单报表。要求选择考生表KSB中所有字段;记录不分组;报表样式为随意式;列数为1,字段布局为"",方向为"纵向";排序字段为"考生号"(升序);报表标题为"考生成绩一览表";报表文件名为ONE.FRX
    本题的主要考核点:字段的添加、字段有效性规则的建立、默认值的设置、建立两个表之间的联系、设置参照完整性、使用报表向导制作报表。
    解题思路:
    1、打开KSB表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型和宽度。
    2、打开KSCJB表设计器,选择"成绩"字段,在其字段有效性规则栏中输入:成绩>=0.AND.成绩<=150,在默认值栏中输入:0
    3、在数据库设计器中,选中KSB表中的索引"考生号"并拖动到KSCJB表的"考生号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两处表的"考生号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"忽略",单击"确定"保存所编辑的参照完整性。
    4、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,然后按照向导提示操作即可。
二、在考生文件夹下,打开招生数据库SDB,完成如下简单应用:
    1.使用一对多表单向导选择KSB表和KSCJB表生成一个名为TWO的表单。要求从父表KSB中选择所有字段,从子表KSCJB中选择所有字段,使用"考生号"建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自KSB),升序;表单标题为"考生数据输入维护"
    2.在考生文件夹下打开命令文件THREE.PRG,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表THREE中。
    注意:该命令文件在第3行、第6行、第9行有错误,打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。
   
答案: 第3行应改为: into array tem
      第6行应改为: where not exists;
      第9行应改为: where 成绩<tem(1) and 考生号=ksb.考生号);
  本题主要考核点:使用表单向导制作表单、修改程序文件。
    解题思路:
    1题:启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮,在"向导选取"对话框中选择"一对多表单向导",然后按照表单向导操作即可。
    2题:利用"文件"菜单下的"打开"命令打开程序文件THREE.PRG。将命令文件修改为:
    SELECT AVG(成绩);
    FROM kscjb;
    INTO ARRAY tem
    SELECT 考生号,姓名;
    FROM ksb;
    WHERE not exists;
    ( SELECT *;
      FROM kscjb;
      WHERE 成绩<tem(1) and 考生号=ksb.考生号);
    INTO TABLE three
三、在考生文件夹下,打开招生数据库SDB,完成如下综合应用:
    1.创建文件名为form的表单,将表单标题改为:录取研究生。
    2.在表单中设计"录取""退出"两个按钮。两个按钮功能分别如下:
    1)在"录取"按钮(Command1)中,编写程序,查询总成绩大于或等于330分的考生的考生号、姓名、性别、单位和该生的政治成绩、外语成绩、高数成绩(即高等数学成绩)、专业课成绩、总成绩,并将结果按总成绩降序排序存储到表FOUR中。
      FOUR(需要自己创建或生成)的字段名为:考生号、姓名、性别、单位、政治成绩、外语成绩、高数成绩、专业课成绩、总成
绩(各成绩字段的类型为N(5,1),其他字段的类型与原表中一致)。
    2)单击"退出"按钮(Command2)时,关闭表单。
    3.表单设计完成后,运行表单,单击"录取"按钮进行统计,然后单击"退出"按钮关闭表单。
注:在考试科目代码表DM中存储了各考试科目与考试科目名对应关系。
    本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用。
    解题思路:
    ①建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATE FORM打开表单设计器。
    ②在表单上添加两个命令按钮,并进行适当的布置和大小调整。
    ③设置窗体和命令按钮的Caption属性值。
    ④设置"录取"按钮的Click事件代码:
    select 考生号, 姓名, 性别, 单位 from ksb into table aa.dbf
alter table aa add 政治成绩 n(5,1)
alter table aa add 外语成绩 n(5,1)
alter table aa add 高数成绩 n(5,1)
alter table aa add 专业课成绩 n(5,1)
输入准考证号查询成绩alter table aa add 总成绩 n(5,1)
select kscjb.考生号,成绩 as 政治成绩 from kscjb,aa where  kscjb.考生号 = aa.考生号 and 考试科目 = "101" into cursor bb
do while not eof()
update aa set 政治成绩=bb.政治成绩 where 考生号=bb.考生号
skip
enddo
select kscjb.考生号,成绩 as 外语成绩  from kscjb,aa where  kscjb.考生号=aa.考生号 and 考试科目 = "102" into cursor bb
do while not eof()
update aa set 外语成绩=bb.外语成绩 where 考生号=bb.考生号
skip
enddo
select kscjb.考生号,成绩 as 高数成绩 from kscjb ,aa  where  kscjb.考生号 = aa.考生号 and 考试科目 = "103" into cursor bb
do while not eof()
update aa set 高数成绩=bb.高数成绩 where 考生号=bb.考生号
skip
enddo
select kscjb.考生号,成绩 as 专业课成绩 from kscjb,aa where  kscjb.考生号 = aa.考生号 and 考试科目 = "104" into cursor bb
do while not eof()
update aa set 专业课成绩=bb.专业课成绩 where 考生号=bb.考生号
skip
enddo
update aa set 总成绩=政治成绩+外语成绩+高数成绩+专业课成绩
select * from aa where 总成绩>=330 order by 总成绩 desc into table four
    ⑤设置"退出"按钮的Click事件代码:
    Release Thisform
    ⑥保存表单并运行,单击"录取"按钮,再单击"退出"按钮。