- 365网友提供计算机信息管理试题
- 发布日期时间:2007-1-14 来源:网络 点击数: 作者:佚名
SE KCCJ
INDEX ON XH TO KCCJID
SELECT A
USE ST
? '学号'+SPACE(4)+'姓名'+SPACE(4)+'平均成绩'
SET RELATION TO XH INTO KCCJ
SCAN
SELECT KCCJ
AVERAGE CJ TO PCJ WHILE XH=ST->XH
SELECT ST
? XH+SPACE(4)+XM+SPACE(4)+STR(PCJ,3)
ENDSCAN
SET RELATION TO
CLOSE ALL
SET TALK ON
RETURN
6.现已存在两个数据库,学生信息数据库ST.DBF,其字段有:
XH (学号,字符型) ,?XM (姓名,字符型) ,?DZ (地址,字符型)
成绩数据库CJ.DBF,其字段有:
XH (学号,字符型) , SJK (数据库,数值型) , GLXX (管理信息,数值型)
按下列要求编写程序文件P13.PRG ,?其功能是从键盘输入一姓名,?在ST.DBF和CJ.DBF
中查找该学生的成绩,
若找不到,则显示“查无此学生”。
若查找到,则在屏幕中按下列格式显示该学生的成绩:
学号?姓名?数据库?管理信息
XXXX?XXX?XX?XX
「解答」
将库ST作为当前库,学号XH作为主键,输入被查找的学生姓名,保存在变量MXM中。
在库ST中进行查找,当找到时,将用该学生的学号XH再次作为查找对象,在库CJ中,
对外部键XH查找所对应的记录,这样就可以在库CJ中查到了该学生的SJK及GLXX成绩。
用命令MODIFY COMMAND P13?来建立程序文件P13.PRG ,参考程序如下:
SET TALK OFF
CLEAR
CLEAR ALL
SELECT A
USE ST
ACCEPT '请输入姓名' TO MXM
LOCATE FOR XM=ALLTRIM(MXM)
IF FOUND()
SELECT B
USE CJ
LOCATE FOR XH=ST->XH
SELECT A
? '学号'+SPACE(4)+'姓名'+SPACE(4)+'数据库'+SPACE(4)+'管理信息'
? XH+SPACE(4)+XM+SPACE(4)+STR(CJ->SJK,3)+SPACE(4)+STR(CJ->GLXX,3)
ELSE
? '查无此人'
ENDIF
CLOSE ALL
SET TALK ON
RETURN
当然,如果按主键XH将ST与CJ进行关联,只需将上述程序修改一下即可,参考程序如下:
SET TALK OFF
CLEAR
CLEAR ALL
SELECT B
USE CJ
INDEX ON XH TO CJID
SELECT A
USE ST
SET RELATION TO XH INTO CJ
ACCEPT '请输入姓名' TO MXM
LOCATE FOR XM=ALLTRIM(MXM)
IF FOUND()
? '学号'+SPACE(4)+'姓名'+SPACE(4)+'数据库'+SPACE(4)+'管理信息'
? XH+SPACE(4)+XM+SPACE(4)+STR(CJ->SJK,3)+SPACE(4)+STR(CJ->GLXX,3)
ELSE
? '查无此人'
ENDIF
SET RELATION TO
CLOSE ALL
SET TALK ON
RETURN
7.现已存在两个课程数据库KC1.DBF和KC2.DBF?(内容不完全相同) ,它们具有相同的结构,
其字段有:?KCM (课程名,字符型) ,?XS (学时数,数值型) ,?ZL (专业,字符型)
按下列要求编写程序文件P14.PRG,其功能为查找并显示同时出现在库KC1和库KC2中
的课程名KCM .
「解答」
将库KC1作为当前库,把库KC2的全部记录添加到KC1的尾部,再按课程名KCM进行索引,
这样可以按课程名不相同的分类集中在一起。?然后,再统计每一类课程名的数量TJ .
若TJ=2 ,则说明了该类课程名是同时出现在两个数据库中。
用命令MODIFY COMMAND P14?来建立程序文件P14.PRG ,参考程序如下:
SET TALK OFF
CLEAR
CLEAR ALL
USE KC1
APPEND FROM KC2
INDEX ON KCM TO KCMID
DO WHILE NOT EOF()
MKCM=KCM
COUNT TO TJ WHILE KCM=MKCM
IF TJ=2
?‘同时出现在KC1和KC2中的课程名有:’+ MKCM
ENDIF
ENDDO
USE
S
INDEX ON XH TO KCCJID
SELECT A
USE ST
? '学号'+SPACE(4)+'姓名'+SPACE(4)+'平均成绩'
SET RELATION TO XH INTO KCCJ
SCAN
SELECT KCCJ
AVERAGE CJ TO PCJ WHILE XH=ST->XH
SELECT ST
? XH+SPACE(4)+XM+SPACE(4)+STR(PCJ,3)
ENDSCAN
SET RELATION TO
CLOSE ALL
SET TALK ON
RETURN
6.现已存在两个数据库,学生信息数据库ST.DBF,其字段有:
XH (学号,字符型) ,?XM (姓名,字符型) ,?DZ (地址,字符型)
成绩数据库CJ.DBF,其字段有:
XH (学号,字符型) , SJK (数据库,数值型) , GLXX (管理信息,数值型)
按下列要求编写程序文件P13.PRG ,?其功能是从键盘输入一姓名,?在ST.DBF和CJ.DBF
中查找该学生的成绩,
若找不到,则显示“查无此学生”。
若查找到,则在屏幕中按下列格式显示该学生的成绩:
学号?姓名?数据库?管理信息
XXXX?XXX?XX?XX
「解答」
将库ST作为当前库,学号XH作为主键,输入被查找的学生姓名,保存在变量MXM中。
在库ST中进行查找,当找到时,将用该学生的学号XH再次作为查找对象,在库CJ中,
对外部键XH查找所对应的记录,这样就可以在库CJ中查到了该学生的SJK及GLXX成绩。
用命令MODIFY COMMAND P13?来建立程序文件P13.PRG ,参考程序如下:
SET TALK OFF
CLEAR
CLEAR ALL
SELECT A
USE ST
ACCEPT '请输入姓名' TO MXM
LOCATE FOR XM=ALLTRIM(MXM)
IF FOUND()
SELECT B
USE CJ
LOCATE FOR XH=ST->XH
SELECT A
? '学号'+SPACE(4)+'姓名'+SPACE(4)+'数据库'+SPACE(4)+'管理信息'
? XH+SPACE(4)+XM+SPACE(4)+STR(CJ->SJK,3)+SPACE(4)+STR(CJ->GLXX,3)
ELSE
? '查无此人'
ENDIF
CLOSE ALL
SET TALK ON
RETURN
当然,如果按主键XH将ST与CJ进行关联,只需将上述程序修改一下即可,参考程序如下:
SET TALK OFF
CLEAR
CLEAR ALL
SELECT B
USE CJ
INDEX ON XH TO CJID
SELECT A
USE ST
SET RELATION TO XH INTO CJ
ACCEPT '请输入姓名' TO MXM
LOCATE FOR XM=ALLTRIM(MXM)
IF FOUND()
? '学号'+SPACE(4)+'姓名'+SPACE(4)+'数据库'+SPACE(4)+'管理信息'
? XH+SPACE(4)+XM+SPACE(4)+STR(CJ->SJK,3)+SPACE(4)+STR(CJ->GLXX,3)
ELSE
? '查无此人'
ENDIF
SET RELATION TO
CLOSE ALL
SET TALK ON
RETURN
7.现已存在两个课程数据库KC1.DBF和KC2.DBF?(内容不完全相同) ,它们具有相同的结构,
其字段有:?KCM (课程名,字符型) ,?XS (学时数,数值型) ,?ZL (专业,字符型)
按下列要求编写程序文件P14.PRG,其功能为查找并显示同时出现在库KC1和库KC2中
的课程名KCM .
「解答」
将库KC1作为当前库,把库KC2的全部记录添加到KC1的尾部,再按课程名KCM进行索引,
这样可以按课程名不相同的分类集中在一起。?然后,再统计每一类课程名的数量TJ .
若TJ=2 ,则说明了该类课程名是同时出现在两个数据库中。
用命令MODIFY COMMAND P14?来建立程序文件P14.PRG ,参考程序如下:
SET TALK OFF
CLEAR
CLEAR ALL
USE KC1
APPEND FROM KC2
INDEX ON KCM TO KCMID
DO WHILE NOT EOF()
MKCM=KCM
COUNT TO TJ WHILE KCM=MKCM
IF TJ=2
?‘同时出现在KC1和KC2中的课程名有:’+ MKCM
ENDIF
ENDDO
USE
S
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
文章转载请注明来源于:汕头自考网
网友评论
|
|



