一.程序填空(改错)题:在考生文件夹的paper子文件夹中,已有文件Modify.prg,请自己打开文件,在标记&&之前填写所缺代码、调试、保存,并完成以下功能1、显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录SETTALKOFFCLEARINPUTM=TOMN=MDOWHILEINT(N)!=N&&______1N=N*10ENDDOSTOREMOD(N,10)TOD,X&&______2DOWHILEN0&&_______3R=MOD(N,10)&&______4IFRDD=RENDIFIFRXX=RENDIFN=INT(N/10)&&_______5ENDDO?M,中位值最大的数码是:+STR(D,1)+,最小的数码是:+STR(X,1)+。SETTALKON2.已知:在考生目录的Paper子目录中已有学生表(学生.dbf)(学号,姓名,性别,出生年月,简历,奖学金,照片)要求:显示“学生”表中的全部字段名。SETTALKOFFCLEARUSE学生*****1*****FORN=1TORECCOUNT()FCOUNT()*****2*****FOUND(N)?FIELDS(N)ENDFORUSESETTALKON3.将给定的正整数数值表达式的值分解因子,并输出各个质数因子。如24的因子有:2、2、2和3SETTALKOFFSETESCAPEOFFCLEAR?按ESC键结束操作DOWHILE.T.INPUTM=TOMIFINT(M)!=MORABS(M)!=M?输入的数据不符合题目要求!LOOPENDIF?ALLTRIM(STR(M,19))+的质数因子有:I=2DOWHILEI=MIFM%I=0??STR(I,6)****************************M=MOD(M,I)M=INT(M/I)LOOPENDIFI=I+1ENDDOIFINKEY(0)=27EXITENDIFENDDOSETTALKONSETESCAPEON4.要求:显示输出“学生”表中的1971年或以前出生的学生姓名和出生年月SETTALKOFFCLEARUSE学生*****1*****LOCATEFOR出生年月=1971{^1971-12-31}DOWHILE!EOF()?姓名,出生年月*****2*****SKIPcontinueENDDOUSESETTALKON5.求当1!+3!+5!+…+n!的值不超过10的20次幂时的临界值及n的值。SETTALKOFFCLEAR*****1*****S=0S=1STORE1TOT,NDOWHILES=1E+20T=T*(N+1)*(N+2)S=S+T*****2*****N=N+1N=N+2ENDDO?S=,S-T?N=,N-2SETTALKON6.1)设计一个显示不同颜色和半径的圆的表单2)利用计时器时间产生半径递增的圆,其颜色是随机产生的3)在单击“暂停”时停止画圆,此时该命令按钮变成“画圆”,再次单击“画圆”时,继续前面的画圆过程。******************LOCALradpublicradthis.rad=2rad=2thisform.timer1.interval=1007.显示指定表中的全部字段名,并有用户输入显示表信息的条件,最后列表显示满足条件的记录(在考生文件夹paper子文件夹中存在学生.dbf,课程.dbf,成绩.dbf。)SETTALKOFFDOWHILE.T.CLEARACCEPT请输入表名(扩展名略):TOTBNIFFILE(&TBN..DBF)USE&TBN..DBF&&_________1ELSEWAIT指定的表不存在!TIMEOUT5LOOPENDIF?表中的全部字段名列表:FORN=1TOfcount()&&_________2?fields(n)&&________3ENDFORACCEPT请输入显示表信息的条件表达式:TOEXPRlistfor&expr&&_________4WAIT是否还要显示其他表文件中的内容?Y/N:TOYNIFUPPER(YN)!=Yexit&&_________5ENDIFENDDOUSESETTALKON8.1)从键盘输入一元二次方程的三个系数a,b,c,三个系数只能输入数字2)若方程有实根,则在屏幕上打印出实根,否则打印方程无实根3)从键盘输入Q后退出程序运行,输入其他键继续求解下一个方程实根**本程序用于求解一元二次方程ax^2+bx+c=0CLEARALL**循环,条件恒真DOWHILE.T.CLEARINPUT输入一元二次方程的二次项系数a(a不能为0)=?TOaIFa=0LOOPENDIFINPUT输入一元二次方程的一次项系数b=?TObINPUT输入一元二次方程的常数项c=?TOc**把判别式的运算结果保存到内存变量panbie中STOREb*b-4*a*cTOpanbie**显示一个空行?**判断判别结果是否小于0IFpanbie0**若小于0显示无实数解?无实数解!ELSE**判断判别结果是否等于0IFpanbie=0**若等于0,计算并显示两个相同的实数根?有两个相等的实数根x1=x2=,-b/(2*a)ELSE**大于0时分别计算并显示两个不等的实数根?有两个不等的实数根:“&&_____1?x1=”,allt(str((-b+sqrt(panbie))/(2*a),19)),;”x2=”,allt(str((-b-sqrt(panbie))/(2*a),19))&&______2ENDIFENDIF?**等待从键盘输入单个字符,并保存到内存变量tuichu中WAITQ=退出,其它键继续......TOtuichu**把用户输入的单字符先转换成大写,再与大写“Q”比较ifupper(tuichu)=”Q”&&_____3**若tuichu中为“Q”,清屏、退出DOWHILE循环clear&&______4exit&&______5ENDIF**返回到DOWHILE继续循环ENDDO**返回调用程序RETURN9.1)利用列表框接受用户在文本框中的多次输入2)用户在文本框输入数据后,通过回车向列表框增加内容,而且还可以通过鼠标双击,移除列表框所选定的内容List1的Dbclick事件:ifthis.listindex0********************this.removeitem(this.select)(this.listindex)endifList1的GotFocus事件:this.valuethis.value=thidform.text1.valuetext1的KeyPress事件:LPARAMETERSnKeyCode,nShiftAltCtrl*********ifnKey=13IFnKeyCode=13if!empty(this.value)thisform.list1.additem(this.value)elseMessagebox(输入不能为空,0+16,错误信息)This.setfocusEndifThis.Value=Endif10.单击表单FORM1的“确定”按钮,弹出一对话框,并释放表单Command1的Click事件:cText=考试开始cCode=0+64cMessage=信息窗口*************Msg(cCode,cText,cMessage)MESSAGEBOX(cText,cCode,cMessage)*************thisform.activatethisform.release11.要求:x^1+x^2+^3+x^4+。。。。+x^n的值。n,x从键盘输入。SETTALKOFFCLEARINPUTN=TONINPUTX=TOXS=0*****1*****T=0T=1FORI=1TONT=T*XS=S+TENDFOR*****2*****?S=+S?”S=”,SSETTALKON12.1)大小写字母的转换2)利用文本框输入字母,利用标签显示转换成大写后的内容Text1的KeyPress事件:LPARAMETERSnKeyCode,nShiftAltCtrlXI=Thisform.text1.valueifnkeycode=13************************thisform.label2.caption=输出效果为:+allt(Lower(xi))UPPERthis.selstart=0this.sellength=len(allt(this.value))endif13.已知:在考生目录的Paper子目录中已有学生表(学生.dbf)(学号,姓名,性别,出生年月,简历,奖学金,照片)要求:将“学生”表中指定学生(由键盘输入)的奖学金加10元,并显示该学生的奖学金SETTALKOFFCLEARUSE学生ACCEPT请输入学生学号:TOXHINPUT*****1*****SEEK学号=XHIF!EOF()*****2*****REPLACEALL奖学金WITH10REPLACEALL奖学金WITH奖学金+10?学号,姓名,奖学金ELSE?没有找到!ENDIFUSESETTALKON14.计算N(从键盘输入的正整数)个实数(从键盘输入)去掉其中的最大和最小数之后的平均值SETTALKOFFCLEARINPUTN=TONINPUT“A=”TOA&&_______1STOREATOX,YS=AP=N-2FORI=2TONINPUTB=TOBS=S+B&&_______2IFXBX=B&&_______3ENDIFIFYB&&_______4Y=BENDIFENDFORR=S-X-Y&&________5?R/PSETTALKON15.要求:从键盘输入一个数值(0~9),要求输入其对应的中文大写数字(零~玖)。SETTALKOFFCLEARC=零壹贰叁肆伍陆柒捌玖*****1*****ACCEPTN=TONINPUTN=TON*****2*****?N,--+STR(C,2*N-1,2)?N,--+SUBSTR(C,2*N+1,2)SETTALKON16.已知:在考生目录的Paper子目录中已有学生表(学生.dbf)(学号,姓名,性别,奖学金)要求:1)求学生表中指定班级(如951或953班,学号字段的前3个字符表示班级)所有学生的奖学金总额2)将金额(保留两位小数)以中文大写形式显示输出(例如:19642.36显示输出为:壹万九仟陆百肆拾贰元叁角陆分)。SETTALKOFFSETESCAPEOFFCLEARUSE学生?************按ESC键结束操作************DOWHILE.T.ACCEPT输入指定的班级(如:951或953):TOBJLOCATEFORLEFT(学号,3)=BJIFFOUND()SUM奖学金TOJXJFORLEFT(学号,3)=BJ?BJ+班全体学生的奖学金总额为:+STR(JXJ,5,2)+,中文大写为:+JEZH(JXJ)ELSE?指定班级不存在!ENDIFIFINKEY(0)=27EXITENDIFENDDOUSESETTALKONSETESCAPEONFUNCTIONJEZHPARAMETERSXC1=零壹贰叁肆伍陆柒捌玖C2=分角元拾佰仟万拾佰仟亿M=ROUND(X,2)M=M*100I=0C=SPACE(0)DOWHILE.T.N=MOD(M,10)&&1--------------------P1=SUBSTR(C1,2*N+1,2)P2=SUBSTR(C2,2*I+1,2)C=P1+P2+C&&2-------------------I=I+1M=INT(M/10)&&3------------------IFM=0EXITENDIFENDDORETURNCENDFUNC17.已知:在考生目录的paper子目录中已有学生表(学生.Dbf)(学号,姓名,性别,出生年月,简历,奖学金,照片)