等级考试VFP.doc

上传人:本田雅阁 文档编号:2076244 上传时间:2019-02-10 格式:DOC 页数:29 大小:12.93MB
返回 下载 相关 举报
等级考试VFP.doc_第1页
第1页 / 共29页
等级考试VFP.doc_第2页
第2页 / 共29页
等级考试VFP.doc_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《等级考试VFP.doc》由会员分享,可在线阅读,更多相关《等级考试VFP.doc(29页珍藏版)》请在三一文库上搜索。

1、一、 程序调试1 请务必仔细阅读下列信息,单击“回答”按钮,进行VFP调试1考试。在考生文件夹的PaperVFP1子文件夹中已有Modify.prg文件。说明: 在标记“&”之前填写所缺代码、调试、保存,并完成以下功能。要求:(1) 计算算式(M!+N!)/(M-N)!+MN+MM)M/N的值(2) M、N的值从键盘输入。注意:(1)仅在标记“&”之前填写所缺代码,不能添加或删除程序。SET TALK OFFCLEARINPUT M= TO MINPUT N= TO NSM=MDO JC WITH SMSN=NDO JC WITH SNSMN=M-NDO JC WITH SMNCMN=NDO

2、MC WITH M,CMNDO MC WITH M,M &_ 1?(SM+SN)/(SMN+CMN+M)SET TALK ONPROC JCPARA X &_ 2T=1FOR I=1 TO XT=T*IENDFORX=T &_ 3RETURNPROC MCPARA X,Y &_ 4T=1FOR J=1 TO YT=T*XENDFORY=T &_ 5RETURN2.要求:(1)求学生表中指定班级(如951或952班,学号字段的前3个字符表示班级)所有学生的奖学金总额。 (2)将金额(保留两位小数)以中文大写形式显示输出(如:19642.36显示输出为:壹万玖仟陆佰肆拾贰元叁角陆分) SET TA

3、LK OFF SET ESCAPE OFF CLEAR USE 学生?*按ESC键结束操作*DO WHILE .T. ACCEPT 输入指定的班级(如:951或953): TO BJ LOCATE FOR LEFT(学号,3)=BJ IF FOUND() SUM 奖学金 TO JXJ FOR LEFT(学号,3)=BJ ?BJ+班全体学生的奖学金总额为:+STR(JXJ,5,2)+,中文大写为:+JEZH(JXJ) ELSE ?指定班级不存在! ENDIF IF INKEY(0)=27 EXIT ENDIF ENDDO USE SET TALK ON SET ESCAPE ON FUNCTIO

4、N JEZH PARAMETERS X C1=零壹贰叁肆伍陆柒捌玖C2=分角元拾佰仟万拾佰仟亿M=ROUND(X,2)M=M*100I=0C=SPACE(0)DO WHILE .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+1 M=INT(M/10) &3- IF M=0 EXIT ENDIF ENDDO RETURN C ENDFUNC3要求:输出正整数表达式(正整数由用户从键盘输入)的质数因子连乘式。SET TALK OFFCLEARINPUT “请输入一个正整数” TO X

5、 &_ 1S=STR(X,5)+=P=0FOR I=2 TO XIF X%I=0 &_ 2P=1S=S+STR(I,3)+*X=X/I &_ 3I=I-1 &_ 4ENDIFENDFORIF P=1 &_ 5?LEFT(S,LEN(S)-1)ELSE?STR(X,5)+ 没有因子!ENDIFSET TALK ON4要求:输出给定的正实数值表达式的值中组成数码的最大数码和最小数码。(冽如:数值2345.105中最大数码为5,而最小数码为0)SET TALK OFFCLEARINPUT M= TO MN=MDO WHILE MOD(N,1)0 &_ 1N=N*10ENDDOSTORE N%10 T

6、O D,X &_ 2DO WHILE N0 &_ 3R=N%10 &_ 4IF RDD=RENDIFIF RB & 2T=AA=BB=TENDIFIF AC & 3T=AA=CC=TENDIFIF BC & 4T=BB=CC=TENDIF?A,B,C & 5SET TALK ON6要求:从键盘输入一个数值(09),要求输出其对应的中文大写数字(零玖)。(错误行位于“*”标记下)SET TALK OFFCLEARC=零壹贰叁肆伍陆柒捌玖*1*ACCEPT N= TO N 改成 INPUT “N=” TO N *2*?N,-+ STR(C,2*N-1,2) 改成 ?N,-+ STR(C,2*N+1

7、,2) SET TALK ON7.要求:显示“学生”表中的全部字段名。(错误行位于“*”标记下)SET TALK OFFCLEARUSE 学生*1*FOR N = 1 TO RECCOUNT() 改成 FOR N = 1 TO FCOUNT() *2* FOUND(N) 改成 ?FOUND(N) ENDFORUSESET TALK ON8求x1+x2+x3+x4+xn的值,x,n从键盘输入(在标记“*”行下修改程序)SET TALK OFFCLEARINPUT N= TO NINPUT X= TO XS=0*1*T=0 改成 T=1 FOR I=1 TO NT=T*XS=S+TENDFOR*2

8、*?S=+S 改成 ?S=,S9求:当1! +3!+5!+n!的值不超过10的20次方时的临界值及n的值。(程序中的错误行在标记“*”行下)SET TALK OFFCLEAR*1*S=0 改成 S=1 STORE 1 TO T,NDO WHILE S=90DC=优CASE CJ=80DC=良 CASE CJ=70DC=中CASE CJ=60DC=及格 OTHERWISE &_ 3 DC=不及格 ENDCASE &_ 4?XH,CJ,DCENDIF &_ 5USESET TALK ON12要求:输出给定的正整数值表达式的值是否完数。完数是指该数的值刚好等于其所有质数因子相加(包括1)例如:6=1

9、+2+3SET TALK OFFCLEARINPUT M= TO MS=0 &_ 1FOR I=M TO 1 &_ 2 IF M%I=0 &_ 3S=S+I &_ 4ENDIFENDFOR IF S=M &_ 5?M,是完数!ELSE?M,不是完数!ENDIFSET TALK ON13通过字符串变量的操作,使得竖向显示“伟大祖国”,横向显示“祖国伟大”。(错误行在“*”标记行下)SET TALK OFF STORE 伟大祖国TO XY CLEAR N=1DO WHILE N8 ? SUBSTR(XY,N,2) * N=N+1 改成N=N+2ENDDO ? SUBSTR(XY,5,4)?SUBS

10、TR(XY,1,4)RETURN14要求:对表“工资表.dbf”按部门汇总分别求出奖金、工资,扣款的值,最后再写入临时表gzhz.dbf。*本程序按部门汇总分别求出奖金,工资,扣款的值,最后再写入临时表gzhz.dbf中 CLEAR ALLSET SAFETY OFFSET TALK OFFUSE 工资表*按部门SORT TO GZPX ON 部门代码 & _1USE gzpxBROWSE*把3个数值字段求和,并保存在内存变量中gz,jj,kk,为总计作准备SUM 奖金,工资,扣款 TO jj, gz,kk&_2*按部门分类汇总,汇总结果为每个部门作为一条记录放入汇总表文件gzhz.dbfTO

11、TAL ON 部门代码 FIELDS 部门代码,奖金,工资,扣款 TO GZHZ&_3*打开汇总表文件USE gzhzGO BOTTOM&_4*尾部追加一条空记录,准备放总计APPEND BLANK*把准备好的总计值放入相应字段REPLACE 部门代码 WITH 总计,奖金WITH JJ,工资 WITH ,扣款 WITH KK&_5BROWSE*关闭打开的表文件CLEAR ALLERASE gzpx.dbfERASE gz0.dbf15要求:浏览指定的表文件内容,表文件名由用户从键盘输入,程序自动判断用户指定的表文件存在与否,存在则浏览,否则给出提示信息。(书上P107)SET TALK OF

12、F DO WHILE .T. & 1 CLEAR ACCEPT 请输入要显示的表文件名(扩展名略): TO TN NM=TN+”.DBF” & 2 IF FILE(NM) USE (NM) & 3 BROWSE ELSE ?您所指定的表文件并不存在! ENDIF WAIT 是否还要查看其他表文件?Y/N: TO YN IF UPPER(YN)=Y LOOP & 4 ELSE EXIT & 5 ENDIF ENDDO USE SET TALK ON 16要求:计算N(从键盘输入的正整数)个实数(从键盘输入)去掉其中的最大和最小数之后的平均值。 SET TALK OFFCLEARINPUT N=

13、TO NINPUT A= TO A &_ 1STORE A TO X,YS=AP=N-2FOR I=2 TO NINPUT B= TO BS=S+B &_ 2IF XB &_ 4 Y=BENDIFENDFORR=S-X-Y &_ 5?R/PSET TALK ON17要求:(1)从键盘输入一元二次方程的三个系数A,B,C三个系数只能输入数字。(2)若方程有实根,则在屏幕上打印实根,否则打印方程无实根。(3)从键盘输入Q后退出程序运行,输入其它键继续求解下一个方程实根。*本程序用于求解一元二次方程ax2+bx+c=0CLEAR ALL*循环,条件恒真DO WHILE .T.CLEAR INPUT

14、输入一元二次方程的二次项系数a(a不能为0)=? TO aIF a=0LOOPENDIFINPUT 输入一元二次方程的一次项系数b=? TO bINPUT 输入一元二次方程的常数项c=? TO c*把判别式的运算结果保存到内存变量panbie中STORE b*b-4*a*c TO panbie*显示一个空行?*判断判别结果是否小于0IF panbie0*若小于0显示无实数解? 无实数解!ELSE *判断判别结果是否等于0IF panbie=0*若等于0,计算并显示两个相同的实数根? 有两个相等的实数根x1=x2=,-b/(2*a)ELSE*大于0时分别计算并显示两个不等的实数根? 有两个不等的

15、实数根:X1=”,(-B+SQRT(panbie)/(2*a)&_1? X1=”,(-B-SQRT(panbie)/(2*a)&_2ENDIFENDIF?*等待从键盘输入单个字符,并保存到内存变量tuichu中WAIT Q=退出,其它键继续 . TO tuichu*把用户输入的单字符先转换成大写,再与大写“Q”比较IF UPPER(tuichu)=”Q” &_3*若tuichu中为“Q”,清屏、退出DO WHILE 循环CLEAR &_4EXIT&_5ENDIF*返回到DO WHILE 继续循环ENDDO*返回调用程序RETURN18要求:显示输出“学生”表中的1971年或以前出生的学生姓名和

16、出生年月。SET TALK OFFCLEARUSE 学生 *1*LOCATE FOR 出生年月=1971 改成LOCATE FOR YEAR(出生年月)=1971DO WHILE !EOF() ?姓名,出生年月*2* SKIP 改成 CONTINUE ENDDOUSESET TALK ON19.要求:显示输出正整数M(从键盘输入)内的偶数及偶数和。SET TALK OFFCLEARINPUT M= TO MS=0FOR P=1 TO M*1*IF INT(P/2) 改成 IF INT(P/2) =P/2 ?P*2*S=S+1 改成S=S+P ENDIFENDFOR?SSET TALK ON20

17、.要求:将给定的正整数型数值表达式的值分解因子,并输出各个质数因子。例如:24的因子有2、2、2和3SET TALK OFF SET ESCAPE OFF CLEAR ?按ESC键结束操作DO WHILE .T. INPUT M= TO M IF INT(M)!=M OR ABS(M)!=M ?输入的数据不符合题目要求! LOOP ENDIF ?ALLTRIM(STR(M,19)+的质数因子有: I=2 DO WHILE I1E-5 &_ 1 STORE 1 TO T1,T2 FOR J=1 TO 2*I-1 T1=T1*X &_ 2 T2=T2*J &_ 3 T3=-T3 &_ 4 ENDF

18、OR S=S+T3*T1/T2 &_ 5 I=I+1ENDDO?SIN(+STR(X,6,4)+)=+LTRIM(STR(S,20,7)SET TALK ON22要求:译密码如果输入的字符串中只要出现英文字母(无论大小写)均转换为顺序排列在该字母后的第五个字母(26个字母首尾相接顺序转换),如果是非英文字母一律不转换。(书上P194)SET TALK OFFCLEARACCE P= TO PL=LEN(P) & -1C=FOR I=1 TO LA=SUBSTR(P,I,1) & -2DO CASECASE A=a AND A=A AND A=v AND A=V AND A+CSET TALK

19、ON23要求:输出素数及素数计数。输出1M(正整数,从键盘输入)中素数及素数计数。SET TALK OFFCLEARINPUT M= TO M S=0 &_ 1FOR I=M TO 1 STEP -1 IF SS(I) =.T. &_ 2 S=S+1 ?STR(I,5) ENDIFENDFOR &_ 3?STR(S,5)SET TALK ONFUNC SSPARA XFOR J=2 TO X-1 IF INT(X/J)=X/J EXIT &_ 4 ENDIFENDFOR IF J=X &_ 5 RETURN .T.ELSE RETURN .F.ENDIF24要求:显示输出“学生”表中每个班级的

20、男女同学的奖学金总额(学号字段的前三位代表班级)SET TALK OFFCLEARUSE 学生INDEX ON 学号 TO INN0 ?*各班男女奖学金总额统计*?班级 男同学奖学金总额 女同学奖学金总额 DO WHILE NOT EOF() &_ 1CLASS=LEFT(学号,3) STORE 0 TO BOYS,GIRLES &_ 2DO WHILE LEFT(学号,3)=CLASS IF 性别=.T. &_ 3BOYS=BOYS+奖学金 ELSEGRILES=GRILES+奖学金 &_ 4ENDIFSKIP &_ 5ENDDO?CLASS+STR(BOYS,19,2)+ STR(GIRL

21、S,19,2) ENDDOUSESET TALK ON25要求:给定一个年份(从键盘输入数值型数据),判断它是否闰年。闰年的条件是:能被4整除但不能被100整除,或能被100整除且能被400整除。SET TALK OFFCLEAR*1*ACCEPT Y= TO Y 改成 INPUT Y= TO Y *2*IF (Y%4 AND Y!%100) AND (Y%100 AND Y!%400) 改成IF (Y%4 AND Y!%100)OR (Y%100 AND Y!%400)?Y,是闰年!ELSE?Y,不是闰年!ENDIFSET TALK ON31.要求:从键盘输入数据A(可以是C、D、N或L等)

22、,通过类型判断,输出其数据类型的汉字说明。SET TALK OFFCLEARINPUT A= TO ADO CASE CASE TYPE(“A”)=”C” & 1?A,是字符型数据。 CASE TYPE(“A”)=”N” & 2?A,是数值型数据。 CASE TYPE(“A”)=”L” & 3?A,是逻辑型数据。 CASE TYPE(“A”)=”D” & 4?A,是日期型数据。ENDCASESET TALK ON32从键盘输入一串字符(口令),自动判断输入的口令是否与系统的口令(“MANAGER”)完全一致。若一致则显示相应的欢迎信息,否则有三次重试的机会。输入次数在三次以内,给予重输的提示,

23、输入次数超过三次,则提示“无权使用本系统”。SET TALK OFFCLEARC=FOR I=1 TO 3 & 1ACCEPT C+请输入口令: TO PSWIF PSW=” MANAGER” & 2?欢迎使用本系统! EXIT & 3ENDIFC=口令输入错误,再试一次!ENDFOR & 4IF I3 & 5?对不起,你无权使用本系统ENDIFSET TALK ON33.显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录。(书上P187)SET TALK OFFDO WHILE .T.CLEARACCEPT 请输入表名(扩展名略): TO TBNIF FILE

24、(&TBN.DBF) Use (TBN) &_ 1ELSE WAIT 指定的表不存在! TIMEOUT 5 LOOPENDIF?表中的全部字段名列表:FOR N = 1 TO FCOUNT() &_ 2?FIELD(N) &_ 3ENDFORACCEPT 请输入显示表信息的条件表达式: TO EXPRLIST FOR EVALUATE(EXPR) &_ 4WAIT 是否还要显示其他表文件中的内容?Y/N: TO YNIF UPPER(YN)!= Y EXIT &_ 5ENDIFENDDOUSESET TALK ON34.要求:显示“学生”表中的全部字段名。(书上P160)SET TALK OF

25、FCLEARUSE 学生*1*FOR N = 1 TO RECCOUNT() 改成 FOR N = 1 TO FCOUNT() *2* FOUND(N) 改成 ?FIELD(I) ENDFORUSESET TALK ON二、表单类程序调试在考生文件夹的PaperVFP1子文件夹中已有Modify.scx和Modify,jpg文件说明:表单事件代码只在“*”标记下的程序行有错误,请自己打开文件修改、调试、保存程序,完成以下功能。1要求:(1)设计一立体彩色变化字幕效果的表单。 (2)利用表单控件复选框来控制颜色的变化,选项组按钮决定字幕的显示效果。(3) 程序的错误行位于表单Form1的Activate的事件代码中。*Thisform.Label1.Visible=.f. Thisform.Timer1.InterVal=500 Thisform.Timer1.Enabled=.f.2要求:(1)按要求输入规则字符的表单设计。(2)根据选项组的控制,对文本框进行有效性的输入,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1