ACCEPT "请输入专业名称:" GET ZY LOCATE FOR 专业=ZY IF ? "没有符合条件的记录,按任意键结束!" WAIT CLEAR RETURN ENDIF
* 逐条显示该专业所有学生的记录 DO WHILE .NOT.EOF() DISPLAY
ENDDO WAIT RETURN
4.在表 ABC.DBF 中查询“姓名”为李燕的记录。
SET TALK OFF
USE ABC
SEEK "李燕" IF FOUND() DISPLAY ELSE
?"库中没有李燕的记录!" ENDIF USE
RETURN
5.本程序是根据输入的表,在表中查找指定“姓名”的记录,如果找到则删除此记录。
SET TALK OFF
ACCEPT "输入数据库名:" TO KNAME USE
ACCEPT "姓名:" TO NAME LOCATE IF .NOT.
ELSE
? "查无此人" ENDIF USE
SET TALK ON RETURN
6.设学生的数学、物理、英语这三门课程的期末考试成绩存放在表 CJ.DBF 中。如果 某一学生三门课程的成绩均达到 85 分以上(包括 85 分在内),应在该学生记录的“等级” 这一字段中填入“优秀”。
SET TALK OFF
第二部分 《Visual FoxPro 程序设计(第二版)》复习提要与学习指导、习题及参考解答 127
128 Visual FoxPro 程序设计实训与考试指导(第二版)
USE CJ
DO WHIL.NOT.EOF() IF 数学>=85 SKIP ENDIF ENDDO USE
RETURN
7.在表 STUD.DBF 中查找总分最高者并输出其姓名、专业和总分。
USE TALK OFF
USE STUD XM=姓名 ZY=专业 ZF=总分
DO WHILE.NOT.EOF() IF ZF<总分
ENDIF ENDDO CLEAR
?XM, ZY, ZF USE
RETURN
8.设成绩表 CJK.DBF 中“数学”(数值型字段)这门课程的学分为 4,的方法如下: 数学≥90,学
分值为 4;
80≤数学<90,学分值为 3; 70≤数学<80,学分值为 1;
60≤数学<70,学分值为 1; 数学<60,学分值为 0。 计算任一学数学这门课程的学分值的程序如下:
SET TALK OFF USE CJK
ACCEPT"输入学号:"TO XH XF=0 && 存放学分值 LOCATE FOR 学号=XH DO CASE CASE XF=4 CASE XF=3
其学分值计算
CASE XF=2 CASE XF=1
OTHERWISE XF=0 ENDCASE ?"学号:",XF USE
RETURN
9.下列程序是用来求长方形面积,请将它写完整。
X=3 Y=5
S=AREA(X,Y) ? \RETURN
FUNCTION AREA S1=X*Y RETURN ENDFUNC
10.学生成绩表 score.dbf(学号(C/3),姓名(C/6),成绩(N/5/1),名次(n/2/0))的 记录如下:
学号 001 002 003 004 姓名 A B C D 成绩 56 78 90 60 名次
程序的功能是替换填写名次字段,要求成绩相同的同学的名次相同(已知:已建立了按 成绩降序的单索引文件 sc.idx)。
Set talk off
Use score index sc Sc=成绩 Mc=1
Do while .not.eof()
Replace 名次 with mc while 成绩=sc if Sc<>成绩 mc=mc+1 endif
Enddo Use
Set talk on return
第二部分 《Visual FoxPro 程序设计(第二版)》复习提要与学习指导、习题及参考解答 129
130 Visual FoxPro 程序设计实训与考试指导(第二版)
四、编程题
1.从键盘输入两个数 a、b,如果两数相等,则显示 a=b(如 5=5),如果两数不等,如
3 和 5,则显示 3<5 或 5>3。
1 1 1 1 1
FOR 循环、DO WHILE 循环编程。 2.求1 ? + ? … + ? 之值。分别用
2 3 4 99 100
3.编写一个过程,计算下面表达式的值:
s =
∑ 1 i(i + 1) i =1
n
在主程序中分别输出 n=10、100、1000 时 s 的值。
4.用 FUNCTION 语句定义以下函数:
10+x (0≤x<30) y= 20-(x-30) (30≤x<40)
10-(x-50) (40≤x<60)
编程序,从键盘输入 x 的值,程序输出 y 的值。
5.计算下列表达式之值:S=11+22+33+44+55+? 要求设计一个程序,根据输入的数字,显示计算结果。
6.打印“水仙花数”。“水仙花数”指一个三位数,其各位数字的立方和等于该数本 身。如 153=13+53+33。
7.编程输出如下图案.
8.打印如下杨辉三角形(打印 8 行)。
1
1 1
1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ??
9.一个四行五列的矩阵,求出其中最大元素的值,以及所在的行号与列号。 10 .设学生总成绩表 ZCJ.DBF ,共有若干条记录,其结构为:学号(C/10 )、姓名 (C/8)、性别(C/2)、数学(N/3)、英语(N/3)、总分(N/5/1)。
试设计一个程序完成以下功能:
(1)根据数学、英语成绩,计算每个同学的总分。 (2)分别用 DO 循环、FOR 循环和 SCAN 循环求出平均不及格的人数。