综合应用(1小题,计30分)
利用表设计器在考生目录下建立表table3,表结构如下:
学号 字符型(10)
姓名 字符型(6)
课程名 字符型(8)
分数 数值型(5,1)
然后编写程序prog1.prg,从xuesheng表和chengji表中找出所有成绩不及格(分数小于60)的学生信息(学号、姓名、课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。表table3中的各记录应该按分数升序排序,分数相同则按学号降序排序。要求在程序中用SET RELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DO WHILE循环语句实现规定的功能。最后运行程序。
解题思路:
一、建立表文件,首先建立一个题目中要求的表。然后新建一个程序文件,编写如下的程序代码,最后保存为prog1.prg并运行,代码如下:(同学们如果记不住,代码可以不写了,不过你必须要把前面的两大题给全部练熟)
clear
close all
select 0
use table3
dele all
pack
copy to ttt
select 0
use ttt
select 0
use xuesheng
index on 学号 tag 学号
select 0
use chengji
set relation to 学号 into xuesheng
go top
do while .not.eof()
if 数学<60
select ttt
append blank
replace 学号 with xuesheng.学号,姓名 with xuesheng.姓名
replace 课程名 with "数学",分数 with chengji.数学
select chengji
endif
if 英语<60
select ttt
append blank
replace 学号 with xuesheng.学号,姓名 with xuesheng.姓名
replace 课程名 with "英语",分数 with chengji.英语
select chengji
endif
if 信息技术<60
select ttt
append blank
replace 学号 with xuesheng.学号,姓名 with xuesheng.姓名
replace 课程名 with "信息技术",分数 with chengji.信息技术
select chengji
endif
skip
enddo
select ttt
sort on 分数,学号/d to ttt1
select table3
append from ttt1
close all