VFP程序设计典型例题汇总

合集下载

《vfp实验题整理》word版

《vfp实验题整理》word版

Visual FoxPro实验题汇总★顺序结构程序设计1.用过程化编成方式编写本题。

求解一元二次方程〔JFC.PRG〕a=1b=4c=4x1=<-b+SQRT<b^2-4*a*c>>/<2*a>x2=<-b-SQRT<b^2-4*a*c>>/<2*a>?"方程的一个根是:",x1,space<10>,"另一个根是:",x22.理解大小写转换函数。

在文本框中输入文本串,按"转大写"按钮,文本中的英文字母变为大写,按"转小写"按钮,文本中的英文字母变为小写〔如图所示〕。

<FORM><load>:Public a<text1><interactiveChange>:Thisform.text1.value=a<大写><click>:Thisform.text1.value=upper<a><小写><click>:Thisform.text1.value=lower<a><复原><click>:Thisform.text1.value=a3.班上集体购买课外读物,在文本框中输入3种书的单价、购买数量,计算并输出所用的总金额。

<总计><click>:a=val<thisform.text1.value>b=val<thisform.text2.value>c=val<thisform.text3.value>d=val<thisform.text4.value>e=val<thisform.text5.value>f=val<thisform.text6.value>thisform.text7.value=a*b+c*d+e*f4. 在文本框中输入小时、分、秒,化成共有多少秒,然后输出之。

VFP程序设计题汇总

VFP程序设计题汇总

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
请编写:
(1) 表单Form1的Init事件代码: 单击“选中”界面 表单设计界面 this.text1.value="学生学号" &&文本框显示初值“学生学号” bel2.visible=.f. &&标签label2不可见 this.timer1.enabled=.f. &&计时器timer1不可用 this.timer1.interval=10 &&计时器时间间隔为10/1000 秒(即0.01秒)
13. 编制一个表单完成表文件“学生.dbf”内容的只读浏览显示功能;表 单初始显示内容为表文件“学生.dbf”的首记录;当按前翻、后翻、 首记录、末记录按钮时,表单将自动显示相应记录的内容;当翻至 表头或表尾时,将自动设置相应按钮不可访问。参见下面的表单设 计及运行示意图。

VFP常见编程实例及模拟试卷4套

VFP常见编程实例及模拟试卷4套

VFP常见编程实例及模拟试卷4套1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上SCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来CLEARSCAN FOR 年龄<30DISPLAYENDSCANRETURN7、查找男性职工** 查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE NOT EOF()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE &&记住最后一个ELSE语句后面不需要条件表达式 CANCELENDIFCONTINUEENDDO** 查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayendifendscanclose databaseuseset talk onreturn8、新值换旧值** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo"一年共出生兔子:",creturn9、多位整数各个位数相加** 求多位整数各个位数之和CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to sf=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1ELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1 &&这个表达式可有可无,为了省事完全省略也可以。

VFP程序设计题集

VFP程序设计题集

VFP程序设计题集1、求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。

set talk offclears=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0n=n+xendifendforxset talk onreturn答案:2362、求[10,1000]内所有能同时被7和9整除的整数之和。

set talk offclears=0for x=10 to 1000if mod(x,7)=0 and mod(x,9)=0s=xendifendforxset talk onreturn答案:75603、求[10,1000]内所有能被6整除但不能被9整除的整数之和。

set talk offclears=0for x=10 to 1000if mod(x,6)=0 or mod(x,9)=0x=s+xendifendforsset talk onreturn答案:554404、求[10,1000]内所有能被6和9中的一个且只有一个数整除的整数的个数。

set talk offclearn=0for x=10 to 1000if mod(x,6)=0 and mod(x,9)!=0 and mod(x,6)!=0 and mod(x,9)=0 n=xendifendfornset talk onreturn答案:1655、求[100,800]内所有既不能被5整除也不能被7的整数的个数。

set talk offclearn=0for x=100 to 800if mod(x,5)=0 and mod(x,7)<>0n=x+1endifendforxset talk onreturn答案:4806、求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。

set talk offclears=0for x=101 to 299if mod(x,2)=0 and not mod(x,3)=0 and mod(x,5)=0x=s+xendifendforsset talk onreturn答案:186307、求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。

VFP编程题及参考答案(可打印修改)

VFP编程题及参考答案(可打印修改)

VFP编程题及参考答案1.输入圆的半径,求圆的周长和面积并输出。

解:编写程序如下:clearinput “请输入圆的半径:” to rl=2*3.14159*rs=3.14159*r*r? “圆的周长为:”,l? “圆的面积为:”,s2.输入梯形上底、下底和高的值,求梯形面积并输出。

解:编写程序如下:clearinput "请输入梯形的上底:" to shdinput "请输入梯形的下底:" to xdinput "请输入梯形的高:" to gs=(shd+xd)*g/2? "梯形的面积为:",s3.输入三角形的三边长(设输入的三边a、b、c能构成三角形),求三角形的周长和面积并输出。

(提示:面积=半周长*(半周长-a)*(半周长-b)*(半周长-c)的平方根)解:编写程序如下:clearinput "请输入三角形的第一条边长:" to ainput "请输入三角形的第二条边长:" to binput "请输入三角形的第三条边长:" to cL=(a+b+c)/2s=sqrt(L*(L-a)*(L-b)*(L-c))? "三角形的周长为:",2*L? "三角形的面积为:",s4.输入2个实数,要求按由小到大的次序输出这两个数。

解:编写程序如下:clearinput "请输入第一个实数:" to num1input "请输入第二个实数:" to num2if (num1>num2)? num2,num1else? num1,num2endif5.请编写一个“A类邮件”计费程序,求出邮件的邮资费并输出:“A类邮件”计费规定:当邮件重量小于等于200克时,邮资费为每克0.06元;当邮件重量超过200克时,其中200克,按每克0.06元计费,超过200克的重量,按每克0.03元计费。

VFP程序设计典范例题汇总

VFP程序设计典范例题汇总

clear
input "Enter year number please!" to y
if y%4=0 and y%100<>0 or y%400=0
? y,"is a leap year!"
else
? y,"is not leap year."
Endif
&&运行前单击教学管理数据库
(x<1)
(1≤x<10)
2.有一函数:
编写程序,输入 x,输出 y 的值。
clear
input "Enter x please!" to x
if x<1
y=x
else
if x<10
y=2*x-1
else
y=3*x-11
,x,'y=',y
y= 2x-1
x
3x-11 (x≥10)
3.编写程序,从键盘输入一个年份,判断它是否闰年。
4.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、 “E”。90 分以上为“A”,80~89 分为“B”,70~79 分为“C”,60~69 分为 “D”,60 分以下为“E”。
clear input “请输入一百分制成绩” to cj do case
case cj>=90 ?” A”
Visual FxoPro 程序设计题
1.编写程序,从键盘输入一个日期,查询 STUDENT 表中该日期以后出生的学
生信息并显示在浏览窗口中。
use student
input “请输入某日期:” to rq
*输入时有提示,或 input to rq 输入时无提示,输{^1987-01-01}

vfp常见20道编程题

vfp常见20道编程题

vfp常见20道编程题VFP常见20道编程题1、求解AX^2 BX C=0的根、其中A、B、C三个参数由键盘输入。

一元二次方程的求根公式是:X=-b±√b2-4ac/2acleartext一元二次方程求解ax^2 +bx+ c=0endtextinput '请输入a的值:' to ainput '请输入b的值:' to binput '请输入c的值:' to cm=b*b-4*a*cif m>=0x1=(-b sqrt(m))/(2*a)x2=(-b-sqrt(m))/(2*a)'x1的值是:',x1'x2的值是:',x2else'此方程无实根!'endif2、编写程序将1-100之间所有能被7和3整除的整数输出clearfor i=1 to 100if i%3=0 and i%7=0iendifendfor3、编写程序计算e,e的近似值计算公式为:e=1 1/1! 1/2! 1/3! ... 1/n!,直到1/n!<0.000001为止e=1n=1do while .t.k=1for i=1 to nk=k*iendform=1/ke=e mif m<0.000001exitendifn=n 1enddo'e=1 1/1! 1/2! 1/3! … 1/n!=',e4、编写程序,计算1!2!3! .......N!=?clearinput '请输入n的值:' to ns=0t=1for i=1 to nt=t*is=s tendfor'1!2!3! .......N!=',s5、从键盘输入十个数,将它们进行降序排列。

clear dime a(10)for i=1 to 10input '请输入一个数:' to a(i)'降序排列为:'for i=1 to 9for j=i 1 to 10if a(i)<a(j)< p="">k=a(i)a(i)=a(j)a(j)=kendifendforalltrim(str(a(i))) ' 'endforalltrim(str(a(i)))6、(1)输出有*号组成的图形:*************************clearfor i=-3 to 3space(abs(i))for j=1 to 7-abs(i)*2 ??'*' endforendfor(2)********************clearfor i=1 to 5space(5-i)for j=1 to 2*i-1 ??'*'endforendfor7、编写一个程序产生一个有20项的Fibonacci数列并输出。

VFP程序设计复习题集

VFP程序设计复习题集

VFP程序设计复习题集一、选择题1. VFP中,以下哪个选项是数据库管理系统(DBMS)的英文缩写?A. SQLB. DBMSC. RDBMSD. ODBC2. 在VFP中,以下哪个命令用于显示当前表单的属性?A. DISPLAYB. SHOW GETC. SHOW WINDOWD. DISPLAY GET3. VFP中,以下哪个函数用于计算两个日期之间的天数差?A. DATE()B. DATEDIFF()C. DATEADD()D. DATEDIFFERENCE()4. 在VFP中,以下哪个属性用于设置表单的标题?A. CaptionB. NameC. TitleD. Label5. VFP中,以下哪个命令用于打开一个表单?A. DOB. DISPLAYC. SHOWD. OPEN二、填空题6. VFP是一种______数据库管理系统。

7. 在VFP中,一个表可以包含多个______,每个字段可以存储不同类型的数据。

8. VFP提供了多种数据类型,包括数值型、字符型、日期型等,其中数值型数据类型用______表示。

9. 在VFP中,可以使用______语句来定义变量的类型和存储的数据。

10. VFP中的表单设计器提供了丰富的控件,如标签、文本框、命令按钮等,这些控件可以通过______属性来设置其显示的文本。

三、简答题11. 简述VFP中表单与报表的区别。

12. 解释VFP中的事件驱动编程是什么,并给出一个简单的例子。

13. 描述VFP中如何使用SQL语句进行数据查询。

14. 说明VFP中如何实现数据的排序和筛选。

15. 阐述VFP中如何使用循环结构进行数据处理。

四、编程题16. 编写一个VFP程序,实现以下功能:输入一个学生的姓名和分数,然后输出该学生的姓名和分数。

17. 编写一个VFP程序,实现对一个班级学生的成绩进行排序,并输出排序后的成绩列表。

18. 设计一个VFP表单,包含文本框、标签和命令按钮,实现用户输入数据后,点击按钮将数据保存到数据库中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Visual FxoPro程序设计题
1.编写程序,从键盘输入一个日期,查询STUDENT表中该日期以后出生的学生信息并显示在浏览窗口中。

use student &&运行前单击教学管理数据库
input “请输入某日期:” to r q
*输入时有提示,或input to rq输入时无提示,输{^1987-01-01}
browse for 出生日期>rq
2.有一函数:
x (x<1)
y= 2x-1 (1≤x<10)
3x-11 (x≥10)
编写程序,输入x,输出y的值。

clear
input "Enter x please!" to x
if x<1
y=x
else
if x<10
y=2*x-1
else
y=3*x-11
endif
endif
'x=',x,'y=',y
3.编写程序,从键盘输入一个年份,判断它是否闰年。

clear
input "Enter year number please!" to y
if y%4=0 and y%100<>0 or y%400=0
y,"is a leap year!"
else
y,"is not leap year."
Endif
4.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。

90分以上为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”。

clear
input “请输入一百分制成绩” to cj
do case
case cj>=90
”A”
case cj>=80
”B”
case cj>=70
”C”
case cj>=60
”D”
otherwise
”E”
endcase
5.编写程序,从键盘输入一个正整数M,输出M内(包括M)所有偶数。

clear
input to m
for i=0 to m step 2
str(i,5)
Endfor
6.编写程序,从键盘输入一个正整数M,计算M内(包括M)所有偶数之和。

clear
input to m
s=0
for i=2 to m step 2
s=s+i
Endfor
s
7.编写程序,从键盘输入5个数,找出其中的最大数和最小数。

clear
input "请输入第一个数" to max
min=max
for i=2 to 5
"请输入第"+str(i,2)+"个数"
input to a
if a>max
max=a
endif
if a<min
min=a
endif
endfor
'max=',max
'min=',min
8.利用数组编写程序,从键盘输入10个数,再按逆序输出。

dime a(10)
for i=1 to 10
input to a(i)
endfor
for i=10 to 1 step -1
a(i)
endfor
9.编写程序,逐条显示STUDENT表中的男生记录(显示一个记录后,由用户按任意键来显示下一个记录)。

use student
scan for 性别=”男”
disp
wait
endscan
use
10.编写程序,自STUDENT表的最后一个记录开始向前逐个显示(显示一个记录后,由用户按任意键来显示上一个记录)。

use student
go bott
do while not bof()
disp
wait
skip -1
enddo
use
11.先在STUDENT表中插入一个新字段:平均成绩(数值型,6,2)。

然后编写程序,根据GRADE表统计每个学生的平均成绩,并填入新插入的字段中。

select 学号,avg(成绩)as 平均成绩from grade group by 学号into table t
use t
index on 学号to txh
sele 2
use student
index on 学号to sxh
set rela to 学号into t
repl all 平均成绩with t->平均成绩
12.写程序,输入一个三位自然数,判断该数是否为水仙花数。

所谓水仙花数是指一个三位自然数,其各位数字立方和等于该数本身。

例如,153是水仙花数,因为153=13+53+33。

input to zrs
gw=zrs%10
sw=int(zrs/10)%10
bw=int(zrs/100)
if bw**3+sw**3+gw**3=zrs
”yes!”
else
”no.”
Endif
13.编写一个自定义函数,判断一个三位自然数是否为水仙花数,若是,返回逻辑真,否则,返回逻辑假。

编写主程序,输入一个三位自然数,调用自定义函数判断该数是否为水仙花数。

clear
input to n
if sxh(n)
”yes”
else
function sxh
para zrs
gw=zrs%10
sw=int(zrs/10)%10
bw=int(zrs/100)
if bw**3+sw**3+gw**3=zrs
return .t.
else
return .f.
endif
endfu
14.编写程序,输入一个自然数,判断该数是否为素数。

clear
input to zrs
sf=.t.
for i=2 to sqrt(zrs)
if zrs%i=0
sf=.f.
exit
endif
endfor
if sf=.t.
”yes”
else
”no”
Endif
15.编写一个自定义函数,判断一个自然数是否为素数,返回一个逻辑值。

编写主程序,调用自定义函数求100~200间的所有素数。

for i=100 to 200
if prime(i)
i
endif
endfor
function prime
for j=2 to sqrt(zrs)
if zrs%j=0
sf=.f.
exit
endif
endfor
return sf
endfunc
16.九九乘法表
(1)矩形样式
Clear
For I=1 to 10 &&外循环I控制输出9行
For J=1 to 9 &&内循环J控制第I行输出9项
str(I,1)+”×”+str(J,1)+”=”+str(I*J,2) &&输出I*J项”“
Endfor
Endfor
Return
17.阶乘
(1)求单个数阶乘(以5为例)
Clear
J=1
I=1
Do while i<=5
J=j*i
I=i+1
Enddo
j
Return
(2)求阶乘和(求1到5阶乘的和)
Clear
S=0
I=1
J=1
Do while i<=5 J=j*i
S=s+j
I=i+1 Enddo
s
Return。

相关文档
最新文档