38.数据库文件orders.dbf用于存放顾客的购物信息,其字段有:cname(顾客名,字符型),iname(商品名,字符型),num(数量,数值型)。下述程序的功能是按数量对orders.dbf中的记录以升序排列。请完成下述程序。 SET TALK OFF DIMENSION ary(3), tmp(3) USE orders FOR i=RECCOUNT( ) TO 1 STEP –1 GO i SCATTER TO ary (1) SCAN NEXT i IF (2) THEN (3) GATHER FROM ary FOR j=1 TO 3 ary(j)=tmp(j) ENDFOR ENDIF ENDSCAN GATHER FROM ary ENDFOR LIST USE RETURN (1) (2) (3) 五、综合题(本大题共2小题,每小题5分,共10分) 39.数据库文件hotel.dbf的字段有:roomno(房间号,字符型),roomtype(房间类型,字符型),roomprice(单价,数值型)和occupied(入住,逻辑型)。其中roomtype有"A"、 "B"、"C"、"D"四类房型。请说明函数occupy( ),roty( ),ropr( )的功能。 SET TALK OFF SET PROCEDURE TO stat USE hotel CLEAR ?? occupy ( ) ?? roty ( ) ?? ropr ( ) USE SET PROCEDURE TO RETURN 文件stat.prg的内容如下: FUNCTION occupy( ) PRIVATE num num=0 SCAN IF occupied THEN num=num+1 ENDIF ENDSCAN occupy=num/RECCOUNT( ) RETURN occupy FUNCTION roty( ) PRIVATE num1 num1=0 SCAN IF occupied .AND. roomtype="A"THEN num1=num1+1 ENDIF ENDSCAN roty=num1 RETURN roty FUNCTION ropr( ) PRIVATE num2 num2=0 SCAN IF occupied .AND. roomtype="B"THEN num2=num2+roomprice ENDIF ENDSCAN ropr=num2 RETURN ropr (1)函数occupy()功能: (2)函数roty()功能: (3)函数ropr()功能: 40.已知关系模式R(city, street, zip)其中city为城市编号,street为街道编号,zip为邮政编码,一个城市的一条街道只有一个邮政编码,一个邮政编码只属于一个城市。请写出R上成立的所有函数依赖及所有候选键,并说明R最高是第几范式。 |