程序填空[1] 下载本文

*请按照题目要求,在下面编写程序代码。

*-------------------------------------------------------

SET TALK OFF

SET LOGERRORS ON ?FUN(345) YZJ() RETURN

FUNC FUN(N) S=\

**********Program**********

********** End ********** RETURN S SET TALK ON

FUNC YZJ()

DO YZJ22 WITH FUN(785) RETURN

---------------------- sn=str(n,3) b=left(sn,1) s=subs(sn,2,1) g=right(sn,1) s=b+'+'+s+'+'+g

*------------------------------------------------------- *【程序设计】

*-------------------------------------------------------

*题目:三个数据表分别为学生库(STUDENT.DBF)、选课程库(XK.DBF) * 和课程库(KC.DBF),将所有选必修课的记录内容生成新库

* STUDENT1.DBF,新库中包括学号、姓名、课程号、课程名称、 * 课程类型字段。

* 请按照题目要求,在下面编写程序代码。

*-------------------------------------------------------

SET TALK ON

SET LOGERRORS ON CLEAR

**********Program**********

********** End **********

CLOSE DATA

SET LOGERRORS OFF SET TALK OFF ---------------------- SELE 1 USE XK SELE 2 USE KC

JOIN WITH XK TO XK1 FIELDS A.学号,课程号,课程名称,课程类型 FOR 课程号=A.课程号 .AND. 课程类型=\选修 \SELE 3 USE XK1 SELE 4

USE STUDENT

JOIN WITH XK1 TO STUDENT1 FIELDS 学号,姓名, C.课程号,C.课程名称,C.课程类型 FOR 学号=C.学号 SELE 5

USE STUDENT1 LIST

---------------------- SELE 1 USE XK SELE 2 USE KC

JOIN WITH XK TO XK1 FIELDS A.学号,课程号,课程名称,课程类型 FOR 课程号=A.课程号 .AND. 课程类型=\选修 \SELE 3 USE XK1 SELE 4

USE STUDENT

JOIN WITH XK1 TO STUDENT1 FIELDS 学号,姓名, C.课程号,C.课程名称,C.课程类型 FOR 学号=C.学号 SELE 5

USE STUDENT1 LIST

---------------------- USE STUDENT

DO WHILE .NOT. EOF()

IF 笔试>=80 .AND. 上机>=80 REPL 等级 WITH \优秀\ENDIF SKIP ENDD LIST

------------------------------------------------------- *【程序设计】

*-------------------------------------------------------

*题目:有学生数据表student.dbf,其中编号字段的值从1开始 * 连续排列。欲按编号的1,4,7,10,...规律抽取学生 * 参加比赛,并将满足条件的记录保存到st1.dbf中,请编 * 程完成。

* (用do while ..endd和scatter、gather语句完成) * 请按照题目要求,在下面编写程序代码。

*-------------------------------------------------------

SET TALK ON

SET LOGERRORS ON clear sele 1

use student sele 2 use st1 zap

**********Program**********

********** End ********** sele 2 list

close data

SET LOGERRORS OFF SET TALK OFF ---------------------- sele 1

do while .not. eof()

if mod(编号,3)=1 scatter to arry sele 2 appe blan

gather from arry endif sele 1 skip endd

*------------------------------------------------------- *【程序设计】

*-------------------------------------------------------

*题目:编程计算三位正整数num的各位上的数字之积。 * 例如,若输入:434,则输出应该是:48。 * 将结果存入变量OUT中。

* 请按照题目要求,在下面编写程序代码。

*-------------------------------------------------------

SET TALK ON

SET LOGERRORS ON ?\输入正整数num=434\num=434 OUT=-1

**********Program**********

********** End **********

DO YZJ WITH OUT SET LOGERRORS OFF SET TALK OFF ---------------------- b=int(num/100)

s=int((num-b*100)/10) g=num out=b*s*g ? out

------------------------------------------------------- *【程序设计】

*-------------------------------------------------------