利用表设计器在考生文件夹下建立表table3,表结构如下: 学号   字符型(10) 姓名   字符型(6) 课程名  字符型(8) 分数   数值型(5,1) 然后编写程序prog1.prg,在xuesheng表和chengji表中查询所有成绩不及格(分

admin2013-04-27  22

问题 利用表设计器在考生文件夹下建立表table3,表结构如下:
学号   字符型(10)
姓名   字符型(6)
课程名  字符型(8)
分数   数值型(5,1)
然后编写程序prog1.prg,在xuesheng表和chengji表中查询所有成绩不及格(分数小于60)的学生信息(学号、姓名、课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。要求查询结果按分数升序排列,分数相同则按学号降序排列。
要求在程序中用SET RELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DO WHILE循环语句实现规定的功能。最后运行程序。

选项

答案【操作步骤】 步骤1:通过前面所学的知识,按照题目的要求新建一个表"table3"。 步骤2:新建程序prog1.prg,输入下列命令语句,保存并运行该程序。 *********prog1.prg中的代码********* SET TALK OFF OPEN DATABASE cj_m SELECT * FROM table3 WHERE .f. INTO TABLE temp SELECT 1 USE xuesheng INDEX ON 学号 TAG 学号 SELECT 2 USE chengji INDEX ON 学号 TAG 学号 SET RELATION TO 学号 INTO xuesheng GO TOP DO WHILE .NOT.EOF() IF chengji.数学<60 INSERT INTO temp Values (xuesheng.学号,xuesheng.姓名,’数学’,chengji.数学) ENDIF IF chengji.英语<60 INSERT INTO temp Values (xuesheng.学号,xuesheng.姓名,’英语’,chengji.英语) ENDIF IF chengji.信息技术<60 INSERT INTO temp Values (xuesheng.学号,xuesheng.姓名,’信息技术’,chengji.信息技术) ENDIF SKIP ENDDO SELECT * FROM temp ORDER BY 分数,学号 DESC INTO ARRAY arr INSERT INTO table3 FROM ARRAY arr CLOSE DATABASE CLOSE TABLES ALL DROP TABLE temp SET TALK ON RETURN **********************************

解析
转载请注明原文地址:https://kaotiyun.com/show/7rsp777K
0

最新回复(0)