第八套
第一题:基本操作
1.在考生文件夹下新建一个名为"学校"的数据库文件,并将自由表"教师表"、"课程表"和"学院表"依次添加到该数据库中。
2.使用SQL语句ALTER TABLE...UNIQUE...将"课程表"中的"课程号"定义为候选索引,索引名是temp,并将该语句存储到文件one.prg中。
3.用表单设计器向导为"课程表"建立一个名为myform的表单,选定"课程表"中的全部字段,按"课程号"字段降序排列,其他选项选择默认值。
4.test.prg中的第2条语句是错误的,修改该语句(注意:只能修改该条语句),使得程序执行的结果是在屏幕上显示10到1,如下图所示。
答案:
【解题思路】在第2小题中,ALTER TABLE语句用于修改表的结构,其中ADD短语的功能是添加新的字段或索引,UNIQUE短语的功能是指建立候选索引(注意不是唯一索引),ADD UNIQUE连用表示新增一个候选索引,TAG短语用于指定索引名称。在第4小题中,由题意可知,DO...WHILE循环语句的格式为:
DO WHILE <条件>
<命令序列>
ENDDO
【操作步骤】
(1)在命令窗口输入:
Crea Data 学校
按下回车键执行语句,打开数据库设计器,将表"教师表"、"课程表"和"学院表"添加到数据库中。
(2)新建一个程序,输入:
ALTER TABLE 课程表ADD UNIQUE 课程号TAG temp
保存程序名为one,最后运行程序。
(3)通过表单向导新建一个表单,选定"课程表"的全部字段作为选定字段,选择按"课程号"降序排序,完成向导并输入表单文件名myform。
(4)打开程序test,将第二行语句改为:
DO WHILE i>=1
保存并运行程序,查看运行结果。
第二题:简单应用
在考生文件夹下完成下列操作:
1.修改并执行程序temp。该程序的功能是根据"教师表"和"课程表"计算讲授"数据结构"这门课程,并且"工资"大于等于4000的教师人数。注意,只能修改标有错误的语句行,不能修改其他语句。
2.在"学校"数据库中(在基本操作题中建立的),使用视图设计器建立视图teacher_v,该视图是根据"教师表"和"学院表"建立的,视图中的字段项包括"姓名"、"工资"和"系名",并且视图中只包括"工资"大于等于4000的记录,视图中的记录先按"工资"降序排列,若"工资"相同再按"系名"升序排列。
答案:
【解题思路】在第1小题中,对于SQL的查询语句,将查询结果保存到数组中应该使用INTO 短语,而不是TO;打开表的命令是"USE";SCAN循环语句表示条件的短语应该用FOR,而不是OF;由题意知,变量SUM用于统计满足条件的教师人数,故应使"每找到一条满足条件的记录,SUM值自动加1"。在第2小题中,视图设计器的使用同查询设计器,考生可以参考前面讲到的查询设计器来设计本题的视图。
(1)【操作步骤】
打开考生文件夹下的程序文件temp.prg,并按题目的要求进行改错,修改完成后运行程序文件,如下所示。
***********程序提供的代码***********
&&下句只有一处有错误
SELECT 课程号 FROM 课程表 WHERE 课程名="数据结构" TO ARRAY a
&&下句有错误
OPEN 教师表
STORE 0 TO sum
&&下句两处有错误
SCAN OF 课程号=a OR 工资>=4000
&&下句有错误
sum+1
ENDSCAN
?sum
********************************
错误1:将 TO 改为 INTO。
错误2:将 OPEN 改为 USE。
错误3:将 SCAN OF 改为 SCAN FOR。
错误4:将 OR 改为 AND。
错误5:将 sum+1 改为 sum=sum+1。
(2)【操作步骤】
步骤1:单击系统菜单中的"新建"命令,新建一个视图,将表"教师表"和"学院表"添加到新建的视图中。
步骤2:将"教师表.姓名"、"教师表.工资"和"学院表.系名"添加到选定字段中。
步骤3:在筛选选项卡中选择字段"教师表.工资",条件为">=",实例为"4000"。
步骤4:在排序选项卡中,设置按"工资"降序排序,再按"系名"升序排序。
步骤5:保存视图名为"teacher_v"。
第三题:综合应用
(1)在考生文件夹下建立一个文件名和表单名均为oneform的表单,该表单中包括两个标签(Label1和Label2)、一个选项按钮组(Optiongroup1)、一个组合框(Combo1)和两个命令按钮(Command1和Command2),Label1和Label2的标题分别为"工资"和"实例",选项组中有两个选项按钮,标题分别为"大于等于"和"小于",Command1和Command2的标题分别为"生成"和"退出",如下图所示。
(2)将组合框的RowSourceType和RowSource属性手工指定为5和a,然后在表单的Load事件代码中定义数组a并赋值,使得程序开始运行时,组合框中有可供选择的"工资"实例为3000、4000和5000。
(3)为"生成"命令按钮编写程序代码,其功能是:表单运行时,根据选项按钮组和组合框中选定的值,将"教师表"中满足工资条件的所有记录存入自由表salary.dbf中,表中的记录先按"工资"降序排列,若"工资相同"再按"姓名"升序排列。
(4)为"退出"命令按钮设置Click事件代码,其功能是关闭并释放表单。
(5)运行表单,在选项组中选择"小于",在组合框中选择"4000",单击"生成"命令按钮,最后单击"退出"命令按钮。
答案:
【解题思路】建立表单并添加控件,然后按要求修改各控件的属性;在表单的load事件中定义组合框的数据源,完成命令按钮的代码;当列表框要求为数组时,可以在表单的load事件中进行定义;为选项按钮组设置标题,需要右键单击选项按钮组控件,选择"编辑"命令。【操作步骤】
步骤1:在命令窗口输入:\
Create Form oneform
并按回车键,新建一个名为oneform表单。
步骤2:在表单控件中以拖拽的方式向表单中添加两个标签、一个选项组、一个组合框和两个命令按钮,并修改各控件的属性。
步骤3:双击表单空白处,编写表单的load事件代码:
********表单的load事件代码*********
public a(3)
a(1)="3000"
a(2)="4000"
a(3)="5000"
*************************
步骤4:双击命令按钮,分别编写"生成"和"退出"按钮的Click事件代码。
******"生成"按钮的Click事件代码*******
x=val(http://www.sodocs.net/doc/e61a7fc45fbfc77da269b1fd.htmlbo1.value)
if thisform.optiongroup1.value = 1
sele * from 教师表 where 工资 >= x order by 工资 desc,姓名 into table salary else
sele * from 教师表 where 工资 < x order by 工资 desc,姓名 into table salary endif
*************************************
******"退出"按钮的Click事件代码*******
ThisForm.Release
*************************************
步骤5:保存表单,并按题目要求运行表单。