数据库改错.docx
- 文档编号:3292462
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:18
- 大小:22.67KB
数据库改错.docx
《数据库改错.docx》由会员分享,可在线阅读,更多相关《数据库改错.docx(18页珍藏版)》请在冰豆网上搜索。
数据库改错
1、本程序用于输入一个表名,若表存在则打开表,并显示其各个字段名。
说明:
******N******标注的下一句有错,改正错误并调试运行。
不能删除******N******。
SETTALKOFF
CLEAR
DOWHILE.T.
ACCEPT"请输入表名:
(不含扩展名)"TOFNAME
******1******
IF.NOT.FILE(FNAME)
WAIT"此表不存在!
"
ELSE
USE&FNAME
ZDSM=FCOUNT()
******2******
?
"此表中的字段有:
"+ZDSM+"个"
FORI=1TOZDSM
?
STR(I)+""
******3******
?
?
NAME(I)
ENDFOR
ENDIF
WAIT"继续否?
(Y/N)"TOYN
IFUPPER(YN)="N"
EXIT
ENDIF
ENDDO
SETTALKON
2、本程序在屏幕上显示如下图形:
1
12
123
1234
12345
SETTALKOFF
CLEA
K=1
DOWHILK<=5
C=1
******1******
DOWHILC<=5
******2******
?
C
C=C+1
ENDDO
?
******3******
K=K-1
ENDDO
SETTALKON
3、本程序实现指定表指定条件的任意查询功能。
SETTALKOFF
CLEAR
ACCEPT"请输入表名:
(扩展名略)"TOFNAME
******1******
IF.NOT.FILE(FNAME)
WAIT"此表不存在!
"
ELSE
USE(FNAME)
ZDSM=FCOUNT()
?
"此表中的字段有:
"+STR(ZDSM)+"个"
FORI=1TOZDSM
?
STR(I)+""
?
?
FIELD(I)
******2******
ENDDO
ENDIF
ACCEPT"请输入显示表信息的条件表达式:
"TOEXP
******3******
LISTFOREXP
USE
SETTALKON
4、本程序将成绩表中成绩小于60分的学号、课程号及成绩显示出来。
SETTALKOFF
CLEAR
USE成绩
?
'------------------------------------------'
?
'不及格学生名单'
?
'------------------------------------------'
?
'学号课程号成绩'
******1******
GOBOTTOM
DOWHILE.NOT.EOF()
IF成绩<60
******2******
?
学号+SPACE(5)+课程号+SPACE(5)+成绩
ENDIF
SKIP
ENDDO
?
'---------------------------------------------'
******3******
?
'当前日期'+CTOD(DATE())
USE
SETTALKON
5、本程序用于计算S=1+2+3+…+N的和。
SETTALKOFF
CLEAR
******1******
ACCEPT“N=”TON
S=0
I=0
******2******
DOWHILEI<=N
I=I+1
S=S+I
ENDDO
******3******
?
“1+2+3+…+”+N+”=”+S
SETTALKON
6、本程序实现:
从键盘输入学生的学号,计算该生的平均成绩,并说明成绩的档次(优、良、中、及格和不及格)。
SETTALKOFF
CLEAR
USE成绩
C="不及格及格中良优"
******1******
INPUT"输入学号="TOXH
LOCATEFOR学号=XH
IFFOUND()
******2******
TOTAL成绩TOCJ
IFCJ<60
R=0
ELSE
R=INT(CJ/10)-5
ENDIF
******3******
DC=STR(C,6)
?
XH,CJ,DC
ELSE
?
'查无此人!
'
ENDIF
USE
SETTALKON
7、本程序实现:
输入三个正数,判定是否构成一个三角形,如果构成一个三角形,则返回.T.,否则返回.F.。
另外通过参数的引用将三角形的面积传回。
*主程序
SETTALKOFF
CLEAR
INPUT'X1='TOX1
INPUT'X2='TOX2
INPUT'X3='TOX3
******1******
IfTARER(X1,X2,X3)
?
"三角形面积为:
"+ALLTRIM(STR(X1,19,2))
endif
SETTALKON
*自定义函数
FUNCTIONTARER
******2******
PARAMETERSA,B
******3******
IFA>B>C
S=(A+B+C)/2
A=SQRT(S*(S-A)*(S-B)*(S-C))
RETURN.T.
ELSE
A=0
RETURN.F.
9、本程序输出一个对角线上元素为0,其它元素为1的6*6阶方阵。
输出时每个元素占2个字符。
SETTALKOFF
CLEAR
******1******
FUNCTIONA(6,6)
FORI=1TO6
FORJ=1TO6
******2******
IFI=J
A(I,J)=0
ELSE
A(I,J)=1
ENDIF
ENDFOR
ENDFOR
FORI=1TO6
FORJ=1TO6
******2******
?
A(I,J)
ENDFOR
?
ENDFOR
SETTALKON
10、本程序实现:
对输入的正整数,判别其中包含指定数码的个数(如2312132中包含数码1的个数为2)。
SETTALKOFF
CLEAR
INPUT'输入数值='TOM
INPUT'输入数码='TON
YSM=M
S=0
DOWHILE.T.
******1******
Y=MOD(M/10)
IFY=N
S=S+1
ENDIF
******2******
M=INT(M/N)
IFM=0
******3******
LOOP
ENDIF
ENDDO
?
ALLTRIM(STR(YSM,19))+"中包含数码"+STR(N,1)+"共"+ALLTRIM(STR(S,19))+"个。
"
SETTALKON
11、本程序实现:
对任意一个正数值型数据(该数可有小数若干位,整数部分不超过12位)自动进行小数部分四舍五入取2位,并将其转换为中文大写金额.
SETTALKOFF
CLEAR
C1="零壹贰叁肆伍陆柒捌玖"
C2="分角元拾佰仟万拾佰仟亿拾佰仟"
INPUT'输入一个正数='TOY
******1******
Y=STR(Y,2)
Y=Y*100
I=1
D=SPACE(0)
DOWHILEY>0
P=MOD(Y,10)
******2******
D=SUBSTR(C1,2*P-1,2)+SUBSTR(C2,2*I-1,2)+D
I=I+1
******3******
Y=INT(Y,10)
ENDDO
?
"转换的结果是:
"+D
SETTALKON
12、本程序实现:
将给定的正整数的值分解因子,并输出各个质数因子(如24的质数因子有2、2、2和3)(如果一个质数是某个数的约数,那么这个质数是这个数的质数因子)
SETTALKOFF
CLEAR
******1******
ACCEPT'M='TOM
IFINT(M)!
=MORABS(M)!
=M
?
'输入的数据不符合题目要求!
'
******2******
ENDIF
I=2
?
STR(M)+'的质数因子有:
'
DOWHILEI<=M
IFM%I=0
?
?
STR(I,6)
******3******
0
LOOP
ENDIF
I=I+1
ENDDO
ENDIF
SETTALKON
13、本程序是在屏幕上打印如下图形:
9876543
98765
987
9
SETTALKOFF
CLEAR
K=1
DOWHILEK<=4
C=1
******1******
DOWHILEC<=4
?
?
STR(10-C,3)
C=C+1
ENDDO
******2******
C=C+1
K=K+1
******3******
ENDFOR
SETTALKON
14、本程序实现:
对成绩.DBF(其中包含"学号"字段,并且以"学号"为关键字建立了索引标识“学号”)中学号相同的重复记录进行逻辑删除。
SETTALKOFF
CLEAR
SETDELETEDON
******1******
USE成绩
DOWHILENOTEOF()
XH=学号
SKIP
******2******
DOWHILE.NOT.EOF()
DELETE
******3******
CONTINUE
ENDDO
ENDDO
LIST
USE
SETTALKON
15、本程序求S=K!
+…+M!
(K SETTALKOFF CLEAR INPUT'K='TOK INPUT'M='TOM STORE0TOS,A I=K DOWHILEI<=M ******1****** DOSUBWITHA,I ******2****** S=S+A I=I+1 ENDDO ? S SETTALKON PROCSUB PARAP,N STOR1TOP,L ******3****** DOWHILEL<=I P=P*L L=L+1 ENDDO RETU 16、本程序输入一个一位数值(0-9),并把它转化为中文大写数字。 SETTALKOFF CLEAR X='零壹贰叁肆伍陆柒捌玖' ******1****** DOWHILENOTEOF() INPUT'N='TON ******2****** S=STUFF(X,N,2) ? STR(N,1)+"--->"+S WAIT'是否继续(Y/N)'TOT ******3****** IFUPPER(T)='n' EXIT ENDIF ENDDO SETTALKON 17.本程序用以判断输入的字符串是否是回文(回文是从左到右和从右到左读时都一样的一个字符串,不论大小写字母)。 SETTALKOFF CLEAR C=SPACE(0) ACCEPT'请输入字符串='TOST ******1****** I=LEFT(ST,1) J=1 DOWHILEJ<=I Q=SUBST(ST,J,1) ******2****** C=C+Q J=J+1 ENDDO ******3****** IFST=C ? ST,'是回文' ELSE ? ST,'不是回文' ENDIF SETTALKON 18.求3→200之间的素数。 SETTALKOFF CLEAR FORM=3TO200 ******1****** FORN=1TOM ******2****** IFM/2=INT(M/2) EXIT ENDIF ENDFOR ******3****** IFN>M ? ? M ENDIF ENDFOR SETTALKON 19.本程序显示下列的九九乘法表 123456789 1 24 369 481216 510152025 61218243036 7142128354249 816243240485664 91827364554637281 SETTALKOFF CLEAR FORI=1TO9 ******1****** ? I ENDFOR I=1 DOWHILEI<=9 ? ******2****** FORJ=1TO9 ? ? STR(I*J,4) ENDFOR I=I+1 ******3****** ENDFOR SETTALKON 20.程序是显示输出给定行数的对称菱形图案,如下图所示。 SETTALKOFF CLEAR INPUT"N="TON&&输入5 FORI=1TON *******1****** ? SPACE(N-I) *******2****** FORJ=1TON ? ? CHR(ASC("A")+I-1) ENDFOR ENDFOR FORP=N-1TO1STEP-1 ? SPACE(N-P+1) *******2****** FORK=1TO2*N-1 ? ? CHR(ASC('A')+P-1) ENDFOR ENDFOR SETTALKON 21.统计显示“课程”表中所有不同学期考试课和考查课的总学分数。 输出格式如下: 学期考试课总学分考查课总学分 *************************************** 1113 settalkoff clear use课程 indexon开课学期tokkxq ? "学期考试课总学分考查课总学分" ? "*******************************************" dowhile.not.eof() xq=开课学期 store0toks,kc *******1****** dowhile.T. if考查标志="1" *******2****** kC=kC+学分数 else kc=kc+学分数 endif *******3****** CONTINUE enddo ? xq+str(ks,19,2)+str(kc,19,2) enddo use settalkoff 22.输出3~M(M为正整数,从键盘输入)之间的素数和素数的个数。 SETTALKOFF CLEAR INPUT"M="TOM K=0 FORX=3TOM FORN=2TOX-1 *******1****** IFX/N=INT(X/N) EXIT ENDIF ENDFOR *******2****** IFN>X ? ? X *******3****** K=K+X ENDIF ENDFOR ? "共"+ALLTRIM(STR(K))+"个素数" SETTALKON 23.用带参调用实现: M! /(M-N)! *N! SETTALKOFF CLEAR INPUT"M="TOM INPUT"N="TON MJ=M *******1****** DOJC NJ=N DOJCWITHNJ *******2****** MNJ=0 DOJCWITHMNJ ? "S=",MJ/(NJ*MNJ) SETTALKON PROCEDUREJC PARAMETERSX T=1 FORI=1TOX T=T*I ENDFOR *******3****** X=i RETURN 24.求x1+x2+x3+x4++xn的值。 n,x从键盘输入。 settalkoff clear input"n="ton input"x="tox *******1****** s=1 t=1 I=1 DOWHILEI<=n *******2****** t=s*x s=s+t I=I+1 *******3****** endFOR ? "s=",s settalkoff 25.求当1! +3! +5! ++n! 的值不超过1020时的临界值及n的值。 settalkoff clear s=0 n=1 *******1****** dowhileI t=1 fori=1ton *******2****** t=i*i endfor s=s+t *******3****** n=n+1 enddo ? "n=",n-4 settalkon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 改错