INPUT \输入一个数\ TO A(I) ENDFOR
MAX=A(1) &&给存放最大数的变量MAX赋初值 FOR I=2 TO N
IF A(I) >MAX MAX=A(I) ENDIF ENDFOR
?”MAX=”,MAX SET TALK ON RETURN
4?打开STUD表,分别统计所有姓“张”学员的平均年龄和所有姓“王”学员的平均年龄?
SET TALK OFF CLEAR CNTZH=0 SUMZH=0 CNTWANG=0 SUMWANG=0
DO WHILE NOT EOF() IF 姓名=”张” CNTZH=CNTZH+1 SUMZH=SUMZH+(YEAR(DATE())-YEAR(出生日期)) ENDIF
IF 姓名=”张” CNTWANG=CNTWANG+1 SUMWANG=SUMWANG+(YEAR(DATE())-YEAR(出生日期)) ENDIF ENDDO
? “张姓学员的平均年龄为:”,SUMZH/CNTZH
? “王姓学员的平均年龄为:”,SUMWANG/CNTWANG SET TALK ON RETURN
5?有如下售书数据表BOOK.DBF,BOOK.DBF中的记录如下:
书号 单价 数量 总计 B0168 19.8 3 B6915 12.6 36 B9023 40.0 100 B4682 18.0 40 B6329 28.0 56 B8127 2.0 20
要逐条计算总计并填入“总计”字段之中,计算按照如下规则: 若数量小于等于10,总计等于“单价*数量” 若数量大于50,总计等于“单价*数量*(1-5/100)”
若数量在11与50之间,总计等于“单价*数量(1-10/100)”
11 / 15
SET TALK OFF CLEAR USE BOOK
DO WHILE NOT EOF() IF 数量<=10 REPLACE 总计 WITH 单价*数量 ENDIF
IF 数量>50 REPLACE 总计 WITH 单价*数量*(1-5/100) ENDIF
IF 数量>=11 AND 数量<=50 REPLACE 总计 WITH 单价*数量*(1-10/100) ENDIF SKIP ENDDO
SET TALK ON RETURN
6?从键盘输入任一自然数N,求小于等于N的自然数之和? SET TALK OFF CLEAR
S=0 T=0
INPUT “N=?” TO N DO WHILE T S=S+T ENDDO ?”S=”,S SET TALK ON RETURN 7?根据表SCORE(学号,课程号,成绩)中的数据,统计选修课程号分别为“000002”?“000005”和“000008”课程的人数以及这些课程的平均分? SET TALK OFF STORE 0 TO S2,S5,S8 STORE 0 TO N2,N5,N8 USE SCORE SCAN DO CASE CASE 课程号=”000002” N2=N2+1 S2=S2+成绩 CASE 课程号=”000005” N5=N5+1 S5=S5+成绩 12 / 15 CASE 课程号=”000008” N8=N8+1 S8=S8+成绩 ENDCASE ENDSCAN P2=S2/N2 P5=S5/N5 P8=S8/N8 ? “000002号课程选课人数”,N2, “000002号课程平均分”,P2 ? “000005号课程选课人数”,N5, “000005号课程平均分”,P5 ? “000008号课程选课人数”,N8, “000008号课程平均分”,P8 USE SET TALK ON RETURN 8?设有一成绩表score.dbf,它由以下字段组成:姓名(C,8)?平时成绩(N,6.2)?期末成绩(N,6.2)?总成绩(N,6.2)?等级(C,6)?其中前3项已有数据,用SCAN循环编写程序计算并填写每一记录的“总成绩”和“等级”字段,他们的计算方法分别为: 1)总成绩计算方法:总成绩=平时成绩×30%+期末成绩×70% 2)等级计算方法: 总成绩≥90 “等级”为“优秀”; 75≤总成绩<90 “等级”为“良好”; 60≤总成绩<75 “等级”为“合格”; 总成绩<60 “等级”为“不合格”? SET TALK OFF CLEAR USE SCORE SCAN REPLACE 总成绩 WITH 平时成绩*0.3+期末成绩*0.7 IF 总成绩>=90 REPLACE 等级 WITH “优秀” ENDIF IF 总成绩>=75 AND 总成绩<90 REPLACE 等级 WITH “良好” ENDIF IF 总成绩>=60 AND 总成绩<75 REPLACE 等级 WITH “合格” ENDIF IF 总成绩<60 REPLACE 等级 WITH “不及格” ENDIF ENDSCAN SET TALK ON RETURN 9?从键盘输入任一小于10的自然数N,求N的阶乘? 13 / 15 SET TALK OFF CLEAR S=1 INPUT “N=?” TO N FOR T=1 TO N S=S*T ENDFOR ?”S=”,S SET TALK ON RETURN 10?set talk off clear open database student use stud accept “请输入学生的姓名:” to xm locate for 姓名=xm ? “学生”+xm+”的基本情况如下:” ? “学号”+学号 ? “性别”+性别 ? “班级名”+班级名 ? “地址”+地址 Close database Set talk on return 11?set talk off clear open database student use stud accept “请输入待查学生姓名:” to aaa locate for 姓名=aaa if found() ? “姓名:”+姓名 ? “性别:”+性别 ? “出生日期:”+dtoc(出生日期) Else ? “查无此人!” Endif Close database Set talk on return 12?set talk off clear open database student use stud 14 / 15 do while .not.eof() if 性别=”男” display endif skip enddo close database set talk on return 15 / 15