VFP程序设计题汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.程序设计题汇总
1.通过输入学生的学号(字符型)查找学生,若找到该学生,先输出学号与姓名,然后输出“英语”和“计算机实用技术”成绩。若找不到该学生输出“查无该生”。(设表文件“学生信息”满足题目需要)
set talk off
clear
use 学生信息
accept "请输入学生学号:" to xh
locate for 学号==xh
if !eof()
?学号,姓名
list fiel 英语,计算机实用技术 for 学号=xh
else
?"查无该生"
endif
use
2.输入学生成绩,并要求:成绩小于60分时,输出“不及格”;成绩在60~69分之间时,输出“及格”;成绩在70~79之间时,输出“中”;当成绩在80~89之间时,输出“良”;当成绩在90~100之间时,输出“优”。
set talk off
clear
input "请输入成绩: " to cj
do case
case cj>=90
?"优秀"
case cj >=80
?"良好"
case cj >=70
?"中"
case cj >=60
?"及格"
case cj<60
?"不及格"
otherwise
?"数据有误"
endcase
set talk on
3.按学号在“学生信息.dbf”文件中查找并显示指定的记录。要求可以重复查询,找到则显示该生的记录,找不到则提示“查无此人!”,按非“Y”、“y”可结束查询。
SET TALK OFF
CLEAR
USE 学生信息 &&设当前目录下表文件存在
ACCEPT '学号查询吗(Y/N)?' TO cx &&循环条件的初始化
DO WHILE cx='Y'.OR.cx='y' &&大小写均可执行查询
CLEAR
ACCEPT '请输入学号:' TO xh
LOCATE ALL FOR 学号=xh &&此处ALL可以缺省,默认为在全部记录查找。 IF EOF()
?'查无此人!'
WAIT
ELSE
DISPLAY
ENDIF
ACCEPT '继续按学号查询吗(Y/N)?' TO cx &&修改循环条件
ENDDO
SET TALK ON
USE
4.逐条显示“学生信息.dbf”文件中“英语成绩”大于等于75的记录。
方法一:
SET TALK OFF
CLEAR
USE 学生信息
DO WHILE !EOF()
IF 英语成绩>=75
DISP
ENDIF
SKIP &&按默认值1向下移动记录指针
ENDDO
USE
SET TALK ON
方法二:
SET TALK OFF
CLEAR
USE 学生信息
locate for 英语成绩>=75
DO WHILE !EOF()
display
continue
ENDDO
USE
SET TALK ON
5.分别用DO循环和FOR循环求1+2+3+……+36的和值。用DO循环的写法:
SET TALK OFF
CLEAR
S=0
N=1
DO WHILE N<=36
S=S+N
N=N+1
ENDDO
? " 1+2+3+……+36的值为:", S
SET TALK ON
用FOR循环的写法:
SET TALK OFF
CLEAR
S=0
FOR N=1 TO 36
S=S+N
ENDFOR
? " 1+2+3+……+36的和值:", S
SET TALK ON
6.用“SCAN…ENDSCAN循环结构”显示“学生信息.dbf”文件中“英语成绩”大于等于75的记录。
SET TALK OFF
CLEAR
USE 学生信息
SCAN FOR 英语成绩>=75
DISPLAY
ENDSCAN
USE
SET TALK ON
7.求当1!+3!+5!+…+n!的值不超过10的20次幂时的临界值及n的值。
SET TALK OFF
CLEAR
S=1 &&初始化存放累加和的变量S为1
STORE 1 TO T,N &&初始化变量T,N的值为1
DO WHILE S<=1E+20
T=T*(N+1)*(N+2) &&从第二项开始,计算每一项阶乘。
S=S+T &&追加每一项阶乘
N=N+2 &&下一个奇数
ENDDO
?"S=",S-T &&最后一个S由于是多加了一个T后不满足条件,故减去。
?"N=",N-2 &&最后一个N由于是多加了一个2后不满足条件,故减去。
SET TALK ON
8.在程序所在的目录中已有学生表(学生.Dbf)(字段为:学号,姓名,性别,出生年月,简历,奖学金,照片)。要求:显示输出“学生”表中的1975年或以前出生的学生姓名和出生年月。
SET TALK OFF
CLEAR
USE 学生
LOCATE FOR 出生年月<={^1975-12-31} &&定位满足出生年月的记录
DO WHILE !EOF() &&如果没有到表尾,显示姓名与出生年月
?姓名,出生年月
CONTINUE &&继续指向满足条件的下一条记录
ENDDO
USE
SET TALK ON