问答题 利用表设计器在考生目录下建立表table3,表结构如下: 学号 字符型(10) 姓名 字符型(6) 课程名 字符型(8) 分数 数值型(5,1) 然后编写程序prog1.prg,从xuesheng表和chengji表中找出所有成绩不及格(分数小于60)的学生信息(学号、姓名、课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。表table3中的各记录应该按分数升序排序,若分数相同则按学号降序排序。 要求在程序中用SET RELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DO WHILE循环语句实现规定的功能,最后运行程序。
【正确答案】步骤1:通过前面所学的知识按照题目要求新建一个表table3。 步骤2:新建程序prog1.prg,输入下列命令语句,保存并运行该程序。 *********prog1.prg中的代码********* SETTALK OFF OPEN DATABASE cj_m SELECT*FROM table3 WHERE .F. INTO TABLE temp SELECT 1 USE xuesheng INDEXON学号TAG学号 SELECT 2 USE chengji INDEXON学号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 ********************************** @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
【答案解析】