利用表设计器在考生文件夹下建立表。table3,表结构如下: 学号 字符型(10) 姓名 字符型(6) 课程名 字符型(8) 分数 数值型(5,1) 然后编写程序progl.prg,从xueshe

admin2015-08-20  41

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

选项

答案步骤1:在命令窗口执行命令:CREATEtable3,打开数据表设计器新建表。 步骤2:根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗?”,本题不需要录入数据,单击“否”按钮。 步骤3:在命令窗口执行命令:MODIFY COMMAND prog1,打开程序文件编辑器。 步骤4:在编辑器中输入如下程序代码: CLEAR CLOSE DATA ALL。 SELECT 0 USE TABLE3 DELE ALL PACK COPY TO TTT SELECT 0 USE TTT SELECT 0 USE XUE SHENG INDEX ON学号TAG学号 SELECT 0 USE CHENGJI SET RELATION TO学号INTO XUESHENG GO TOP DO WHILE.NOT.EOF() IF数学<60 SELECT TTY。 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 DATA ALL. 步骤5:在命令窗口执行命令:DO prog1,执行文件。

解析 本大题考查了表的基本操作;程序文件的建立及运行;表间关联;表记录的插入及物理排序,务件程序结构和DO WHLIE程序结构设计。本题所涉及的知识点比较多,需要考生非常清楚解题流程。基本解题思路可按以下步骤进行:
    表的建立和程序的建立都属于比较基本的操作。本题的关键是程序文件代码的设计。编写程序代码基本思路如下:
    根据题意,首先初始化数据表table3(将记录清空,避免下次执行程序时,重复追加记录),然后将该表复制一个新的表文件ttt,并在新的工作区中打开该表文件。
    建立表间关联。在两个不同的工作区中打开xueshenq表和chengji表,并为两个表建立索引,通过索引表达式对两个表建立关联。
查找chengji表中不及格的成绩记录。利用DOWHILE循环对chengji表中的记录逐条处理,通过IF条件语句判断将不及格的记录,将其添加到ttt表中。这里特别要注意的是不能将判断条件放在一个IF语句中,因为题目要求“若一个学生有多门课程不及格,在表table3中就会有多和己录”,而chengji表中共有3门课程,因此,依次需要编写3个IF条件语句分别判断每个科目的不及格情况。
  保存查询结果。将所有不及格记录排序输出到ttt1表之后,再将ttt1表的记录全部追力口到table3表中。
转载请注明原文地址:https://kaotiyun.com/show/9WEp777K
0

最新回复(0)