一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
1、在考生文件夹下建立项目MARKET。
2、在项目MARKET中建立数据库PROD_M。
3、把考生文件夹中自由表CATEGORY和PRODUCTS加入到PROD_M数据库中
4、为CATEGORY表建立主索引,索引名为primarykey,索引表达式为分类编码;为
PRODUCTS表建立普通索引,索引名为regularkey,索引表达式为分类编码。
本题的主要考核点:
项目的建立、在项目中创建数据库、将自由表添加到数据库中、主索引,普通索引的建立。
解题思路:
1.建立项目
创建项目可用"文件"菜单中的"新建"命令。
2.在项目中创建数据库:
在项目管理器的"数据"选项卡选择数据库,单击"新建"。
3.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。
4.在CATEGORY表设计器中的索引选项卡输入索引名primarykey,索引表达式为分类编码,索引类型为主索引。在PRODUCTS表设计器中的索引选项卡建立索引名为regularkey,索引表达式为分类编码的普通索引。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个数据库SDB,其中STUDENT表结构如下:
STUDENT(学号C(2),姓名C(8),年龄N(2),性别C(2),院系号C(2)),现在
要对STUDENT表进行修改,指定学号为主索引,索引名和索引表达式均为学
号;指定院系号为普通索引,索引名和索引表达式均为院系号;年龄字段的
有效性规则在12至30之间(含12和30),默认值是16,性别字段有效性规则
是'男'或'女',默认值是'男'。
2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE。
表结构如下:
STUDENT(学号,姓名,年龄,性别,院系号)
SC(学号,课程号,成绩,备注)
COURSE(课程号,课程名,先修课程号,学分)
在考生文件夹下有一个程序test.prg,该程序的功能是检索选修课程门数等
于3门或3门以上,每门课程成绩大于或等于70分的每个学生的学号、姓名、
性别、平均成绩、最低分和选课门数,并将结果存放到表new_test中。请修
改程序中的错误,并调试该程序,使之正确运行。考生不得增加或删减程序
行。
第1题,本题的主要考核点是建立索引和有效性规则。
建立索引是在表设计器中的索引选项卡建立,建立有效性规则在表设计器中的字段选项卡完成。选定"年龄"字段,在"规则" 栏中输入"年龄=>12.AND.年龄<=30"(或用表达式生成器生成),"默认值"栏输入"16"。选定"性别"字段,在"规则"栏中输入"性别="男".OR.性别="女""(或用表达式生成器生成)"默认值"栏输入"男"。
第2题,本题是一个程序修改题。
第一个错误在"WHILE STUDENT.学号 = SC.学号 AND 成绩 >= 70"行,"WHILE"是循环语句,不能用在此处,设置查询条件的语句是"WHERE"。第二个错误在"SUM(课程号) >= 3",因为题目要求是选课门数大于等于3,不应用SUM,应改为COUNT。第三个错误在"TO NEW_TEST",此处要导入表NEW_TEST,正确的命令格式是"INTO TABLE NEW_TEST"。
三、综合应用(1小题,计30分)
在考生文件夹下有学生管理数据库stu_five
(1)CHENGJI表(学号C(9)、课程号C(3)、成绩I)用于记录学生的考试成绩,其中
一个学生可以有多项记录(登记一个学生的多门成绩)。
(2)KECHENG表(课程号C(3)、课程名 C(10)、最高分I、学号C(9))的内容是所开
课程,一门课程只有一个记录(表中有固定的已知数据)。
请编写并运行符合下列要求的程序:
设计一个名为form_my的表单,表单中有两个命令按钮,按钮的名称分别为
cmdYes和cmdNo,标题分别为"统计"和"关闭"。
程序运行时,单击"统计"按钮应完成下列操作:
(1)计算每门课程的最高分,并将结果存入KECHENG表的最高分字段,同时将得
此最高分的学生的学号存入该表的学号字段。
(2)根据上面的计算结果,生成一个新的表jiangli,该表按顺序含有来自
KECHENG表的课程名和最高分两个字段,并且按最高分降序排序。
单击"关闭"按钮,程序终止运行。
本题主要考核点:
表单的建立、程序设计中循环结构、条件结构的应用、SELECT语句的应用等知识点
解题思路:
第一步:利用表单设计器建立所要求的表单,将在表单上添加两个按钮控件。分别设置两个按钮控件的标题和名字属性。
第二步:双击标题为"统计"的按钮控件,在新打开的窗口中添加此按钮的CLICK事件代码:
SET TALK OFF
SELECT 2
USE KECHENG
&&在B工作区打开KECHENG表
INDEX ON 课程号 TO KC
&&以课程号为排序的依据对表KECHENG进行排序
SELECT 1
USE CHENGJI
&&在A工作区打开CHANEGJI表
DO WHILE NOT EOF() &&遍历CHENGJI表
SELECT 2
SEEK A->课程号 &&在KECHENG表中查找当前成绩表所在的课程号
IF 最高分
REPLACE 最高分 WITH A->成绩,学号 WITH A->学号
ENDIF
SELECT 1
SKIP
ENDDO
SELECT 课程名,最高分 FROM KECHENG ORDER BY 最高分 INTO TABLE JIANGLI
&&SELECT语句的ORDER BY 子句可以指定查询结果的排序依据,默认是以指定排序依据的升序排序,
&&如果要指定为降序需要用DESC;INTO TABLE 表名 可以将结果集放入一个永久表中。结果集也可以
&&放入一个临时表中:INTO CURSOR 临时表名 ,也可以放入一个数组之中:INTO ARRAY 数组变量名
SET TALK ON
第三步:为标题为"退出"的按钮控件加入CLICK事件代码:
THISFORM.RELEASE &&退出表单
第三步:以form_my保存表单
责任编辑:小草