A. vfp 改错题
VFP改错题
浏览次数:次悬赏分:10
|
离问题结束还有
4
天
1
小时
|
提问者:知识总掌门
6.student.dbf
库结构中含有姓名(C,6)、总成绩(N,3,0)字段。要求能反复根据用户输入的姓名,查阅student库中的姓名
和总成绩。
SET
TALK
OFF
CLEAR
USE
student
INDEX
ON
姓名
TO
name
**********found**********
WAIT
'请输入学生姓名'
TO
xm
DO
WHILE
.T.
CLEAR
**********found**********
SEEK
FOR
姓名=xm
IF
FOUND()
?'姓名:'+姓名,"
总成绩"+STR(总成绩,3)
ELSE
?'查无此人'
ENDIF
WAIT
'继续查询吗?(Y/N)'
TO
jx
IF
upper(jx)='Y'
CLEAR
ACCE
'请输入学生姓名'
TO
xm
LOOP
ELSE
**********found**********
cont
ENDIF
ENDDO
USE
SET
TALK
ON
RETURN
7.
职工:
仓库号C(4),职工号C(4),工资N(4);
订购单:职工号C(4),供应商号C(4),订购单号C(4),订购日期D,总金额N(10);
工资:
职工号C(4),工资N(4);
程序M.PRG功能:检索出与供应商S7、S4和S6都有业务联系的职工的职工号和工资,并存放到工资文件中。
set
talk
off
set
safety
off
close
all
clear
select
1
use
工资
zap
select
2
use
订购单
select
3
use
职工
store
.f.
to
x,y,z
scan
select
2
locate
for
职工号=c->职工号
*************found****************
do
while
.t.
do
case
case
供应商号="S7"
x=.t.
case
供应商号="S4"
y=.t.
case
供应商号="S6"
z=.t.
endcase
*************found****************
skip
enddo
if
x.and.y.and.z
select
1
append
blank
replace
职工号
with
c->职工号,工资
with
c->工资
endif
store
.f.
to
x,y,z
select
3
*************found****************
loop
select
1
list
close
database
set
talk
on
set
safety
on
8.能够根据给定的几个库文件XS.DBF、KC.DBF和CJ.DBF
,不限次数地按键入的学号查询输出该生各门课的分数,直到输
入的学号为"Q"或"q"时才退出查询。
set
talk
off
set
safe
off
use
xs
inde
on
学号
to
xh00
sele
b
use
kc
inde
on
课程号
to
kch00
sele
c
use
cj
set
rela
to
学号
into
a,课程号
into
b
do
while
.t.
clear
x="
"
@
5,6
say
"学号(Q:Exit):
"
get
x
**********found**********
menu
to
if
"Q"$x
.or.
"q"$x
**********found**********
loop
endif
loca
for
学号=x
@
7,6
say
a.姓名+":
"
do
while
found()
?
b.课程名称
??
分数
**********found**********
skip
enddo
wait
enddo
@
9,6
say
"再见!"
close
database
set
talk
on
set
safe
on
return
B. VFP程序改错:表文件st.dbf含有xh(学号)和xm(姓名)字段,现由用户输入学号,自动输出姓名。
endfor 改为 endif
C. 数据库vf程序改错程序改错
SET TALK OFF
USE D:考生文件夹D1
STORE "李明" TO XMM
INDE ON XM TO XMSY
SEEK XMM
IF FOUND()
DISP
ELSE
? "无此学生"
ENDIF
USE
SET TALK ON
RETU
D. VFP 改错,并编制子程序。
错误的地方有
1. 程序中的英文引号你用成了中文引号
2. 你的程序设计有误,部分设计可能会进入死循环
应该这样改:
Set talk off
Clear
do while .t.
Input"请输入一位整数,0表示退出:"to j
do case
case j>=10.or.j<0
@0,20 say "请输入10以下的正整数!"
loop
case j=0
Exit
endcase
clear
@1,20 say j
k=0
FOR i=1 TO j*2-1
IF i>j
k=k-1
else
k=k+1
endif
?REPLICATE(" ",j-k)
??REPLICATE(ALLTRIM(STR(k)),(k-1)*2+1)
ENDFOR
enddo
set talk on
return
E. 全国计算机二级考试VFP程序改错题
上面显示的是不能用缩写吗?还是显示其他的错误,或者不是因为缩写出错,是因为其他错误。我之前没遇到过这样的问题,而且我也是一直用的缩写。如果可以,可以截图给我看看。
F. VFP高手请进,程序改错
(一)CLEAR
DIME arrp[100]
i=1
n=2
DO WHILE i<=100
IF checkp (n)
arrp[i]=n
?? arrp[i]
i=i+1
ENDIF
n=n+1
ENDDO
FUNCTION checkp
PARA pn
IF pn=2
return .t.
ENDIF
m=.T.
FOR j=2 TO CEILING (SQRT(pn)) && CEILING (n)是取不小于n的最小整数
*IF pn%j<>0 && 错
*m=.T. && 错
IF pn%j=0
m=.F.
ENDIF
ENDFOR
RETURN m
ENDFUNC
(二)
CLEAR
DIME arrPrime[100]
i=1
n=2
DO WHILE i<=100
isPrime=.t.
FOR j=2 TO INT(SQRT(n))
*IF n%j!=0 && 错
IF n%j=0
isPrime=.f.
EXIT
ENDIF
ENDFOR
IF isPrime
arrPrime[i]=n
?? arrPrime[i]
IF i%5=0
?
ENDIF
i=i+1
*ENDF && 错
ENDIF
n=n+1
ENDDO
G. vfp程序改错题
CLEAR
SETTALKOFF
SETDEVICETOprint
SETPRINTERto~aa.txt
FORi=1to33
FORj=1to50
FORk=1to100
IFi+j+k=100andi*3+j*2+k*0.5=100
@row(),col()saySTR(i,4)+STR(j,4)+STR(k,4)
ENDIF
ENDFOR
ENDFOR
ENDFOR
SETPRINTERtoprn
MODIFYCOMMAND~aa.txt
RETURN
23068
52570
82072
111574
141076
17578
H. VF程序改错,十进制数转换成二进制数
dimension s(t)
你的T初值是1,也就是说你定义的数组dimension s(1),当然是下标超界了。改为:dimension s(n)
改后程序如下回:我已经验证答过了。
set talk off
clear
t=1
input "请输入一个十进制数:" to n
dimension s(n) &&此行有改动
do while n!=0
s(t)=n%2
n=int(n/2)
t=t+1
enddo
?"n的二进制数为:"
for i=t-1 to 1 step -1 &&此行有改动
??s(i) &&此行有改动
endfor
set talk on
return
I. 一般大学计算机VFP期末考试,在最后的程序改错题中,都绝对是**FOUND**下面一行是错的
废话。
***FOUND***本来就意味着“(请)找出(下面这行的错误之处)”。
要适当学一点英语啊……
J. 求高手解答vfp程序改错题!
二级
VF
上机考试程序改错题精选
程序改错题
1
:
(
5
)
在考生文件夹下完成如下简单应用:
1 . modi1.prg
程序文件中
SQLSELECT
语句的功能
是查询目前用于
3
个项目的零件
(零件名称)
,
并将结果
按升序存入文本文件
results.txt
中.
给出的
SQL
SELECT
语句中在第
l
、
3
、
5
行各有一处错误,请改正并运行
程序(不得增、删语句或短语,也不得改变语句行)
。
***********
程序提供的代码
***********
SELECT
零件名称
FROM
零件信息
WHERE
零件号
=
(SELECT
零件号
FROM
使用零件
;
GROUP BY
项目号
HAVING COUNT(
项目号
) = 3)
ORDER BY
零件名称
INTO FILE results
************************************
其中,
第
1
行中的
"="
需改为
"IN"
;
第
3
行中的
"GROUP BY
项目号
"
需改为
"GROUP
BY
零件号
"
;
第
5
行中的
"INTO FILE"
需改为
"TO FILE"
。
程序改错题
2
:
(
34
)
在考生文件夹下完成如下简单应用:
1
.
程序文件
rate_pro
的功能是计算出
"
林诗因
"
所持有
的全部外币相当于人民币的数量,
summ
中存放的是结
果。注意:某种外币相当于人民币数量的计算公式:人
民币数量=该种外币的
"
现钞买入价
"*
该种外币的
"
持有
数量
"
。请在指定位置修改程序语句,不得增加或删除程
序行,并保存所做的修改。
步骤
1
:打开程序
rate_pro
。修改程序如下:
第
1
处错误改为:
locate for
姓名
="
林诗因
"
第
2
处错误改为:
do while not eof()
第
3
处错误改为:
summ
=
summ
+
a[1] * currency_sl.
持有
数量
步骤
2
:保存并运行程序。
程序改错题
3
:
(
56
)
打开程序文件
cylinder.prg
,该程序的功能是根据输
入的半径和高计算圆柱体表面积,其中函数定义中有错
误,
请在
******found*******
的下一行进行修改使之能正
确运行
(
不得增加语句,不得删除语句
)
。
打开程序文件
cylinder.prg
,程序修改如下:
第
1
处改为:
PARAMETERS a,b
第
2
处改为:
RETURN c
程序改错题
4
:
(
8
)
test.prg
中的第
2
条语句是错误的,修改该语句
(注意:只能修改该条语句)
,使得程序执行的结果是在
屏幕上显示
10
到
1
,如下图所示。
打开程序
test
,将
第二行语句改为:
DO WHILE i>=1
保存并运行程序,查看运行结果。
程序改错题
5
:
(
8
)
修改并执行程序
temp
。该程序的功能是根据
"
教师表
"
和
"
课程表
"
计算讲授
"
数据结构
"
这门课程,并且
"
工资
"
大于等于
4000
的教师人数.注意,只能修改标有错误的
语句行,不能修改其他语句。
********************************
错误
1
:将
TO
改为
INTO
。
错误
2
:将
OPEN
改为
USE
。
错误
3
:将
SCAN OF
改为
SCAN FOR
。
错误
4
:将
OR
改为
AND
。
错误
5
:将
sum+1
改为
sum=sum+1
。
程序改错题
6
:
(
9
)
给定表单
modi2.scx
,功能是:要求用户输入一个
正整数,然后计算从侄四该数字之间有多少偶数、多少
奇数、多少能被
3
整除的数,并分别显示出来,最后统
计出满足条件的数的总数量.请修改并调试该程序,使
之能够正确运行。
改错要求:
"
计算
"
按钮的
Click
事件代码中共有
3
处错误,请修改
"*** found ***
下面语句行的错误,必
须在原来位置修改,不能增加或删减程序行(其中第一
行的赋值语句不许减少或改变变量名)
。
"
退出
"
按钮的
Click
事件代码中有一处错误,该按
钮的功能是关闭并释放表单.
步骤
1
:打开表单
modi2
,修改
"
计算
"
命令按钮的
Click
事件。
错误
1
:改为
STORE 0 TO x,s1,s2,s3
。
错误
2
:改为
x=val(thisform.text1.value)
。
错误
3
:改为
if mod(x,3)=0
。
步骤
2
:以同样的方法修改
"
退出
"
按钮的
Click
事件
代码为
"Thisform.Release"