ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:22.69KB ,
资源ID:11934401      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11934401.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VFP程序设计基础.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VFP程序设计基础.docx

1、VFP程序设计基础第三章 程序设计基础一、知识点:1、VFP命令的两种执行方式:交互方式和程序方式。2、程序与程序文件1)程序:完成某项指定的任务而须执行的命令序列。2)程序文件:以文件的形式存储在磁盘上的命令序列。3、结构化程序设计的三种基本结构.1) 顺序结构:简单的输入语句(如INPUT、ACCEPT、WAIT)。赋值语句(=、STORE、REPLACE、SCATER、GATHER)。简单的输出语句(?、?)。辅助语句(CLEAR、SUSPEND、CONTINUE、CANCEL、NOTE | *、&)。环境设置语句(如:、SET TALK ON/OFF 等)2) 选择结构(IFENDIF

2、、IFELSEENDIF、DO CASEENDCASE)3) 循环结构(DO WHILEloopexitENDDO、SCANENDSCAN、FORENDFOR)4、多种结构嵌套的原则:只能包含,不能交叉。5、子程序:相对与主程序而言的一个独立的程序文件,其建立方法与建立程序文件的法相同。子程序的调用与返回:调用:DOWITH返回:RETURNTO MASTER6、过程与过程文件1) 过程:以PROCEDURE开头,以ENDPROC结尾的子程序段。2) 过程文件:由若干个过程或自定义函数组成,以文件形式保存在外存的.prg文件;使用时要打开该文件,然后选择其中的过程或函数调用,不用时要关闭。3)

3、 过程文件的打开:SET PROCEDURE TO 4) 过程文件的关闭:SET PROCEDURE TO 或 CLOSE PROCEDURE7、参数的传递及作用域1) 利用内存变量的属性传递参数内存变量的属性小结 类型特点PUBLICPRIVATE(包括自然变量)LOCAL作用域(可见性)从定义处起有效从定义处起及下级子程序只在定义块中可见传递方向双向(向上、向下)单向(由主到子程序)不传递生存期整个应用系统(VFP环境中)从定义处起及下级子程序中随定义块执行结束而释放特殊作用用于参数传递或结果传递屏蔽上级程序中的同名变量屏蔽上级程序中的同名变量说明子程序中定义的全局变量,返回主程序时可见子

4、程序中定义的自然变量,返回主程序时不可见只在本块中可见,上下级中均不可见2) 利用DO WITH 传递参数传递参数命令格式:DO WITH 接收参数命令格式:PARAMETER参数传递与接收的规则:(1) 接收参数的命令必须出现在被调用程序(子程序)中的第一行;(2) 当WITH 中是简单内存变量列表时,称为传址或引用。这时,主调程序中的内存变量被隐含起来,其值随PARAMETER中对应变量的值的变化而变化;(3) 当WITH 中是内存变量表达式列表或当个内存变量用圆括号括起来(即为明表达式)时,称为传值。这时,主调程序中的内存变量不被隐含,其值也不随PARAMETER中对应变量的值的变化而变

5、化;(4) 对过程而言,传址或传值不受 SET UDFPARAMS TO VALUE/CONFERENCE 的影响。因为它是针对自定义函数的。8、自定义函数1)定义自定义函数可以是一个独立的命令文件(.PRG),也可以放在一个过程文件中。2)建立FUNCTION PARAMETER语句序列ENDFUNC与过程不同的是必须用RETURN 返回一个值。3) 自定义函数的调用与参数传递调用形式:自定义函数名(参数表达式列表)参数传送:既可以用传值方式,也可以用引用方式。具体规则如下:(1)如果变量在参数表达式列表中是以表达式的形式出现,那么是传值方式;(2)如果变量在参数表达式列表中是以单变量的形式

6、出现,那么取决于SET UDFPARAMS TO VALUE/CONFERENCE 的设置(缺省为传值方式); (3)无论SET UDFPARAMS TO 可以在单变量前冠以,以强制传址。如:S(A,B,C)二、要点与难点1、 INPUT、ACCEPT与WAIT这三个与输入有关的命令有何不同?INPUT命令可接受数值型、字符型、日期型等数据类型的输入,在输入时应根据数据类型加相应的定界符。ACCEPT命令只能接受字符串的输入,在输入时不必加定界符。WAIT命令只能接受单字符的输入,常用于表示程序是否继续、是否中断或是否结束的语句。2、 RETURN、RETRY、CANCEL和QUIT这四个命令

7、有何不同?RETURN命令:指的是返回到调用行的下一行。RETRY命令:返回到调用行本身,可实现程序的重复调用。CANCEL命令:中断、异常结束。并返回到系统命令窗口。QUIT命令:返回到操作系统。3、 SCATTER FIELDS TO 4、 GATHER FROM 5、 常见的环境设置语句:SET DEFAULT TO :将设置为系统缺省的路径。SET CONSOLE ON/OFF:激活或废止从程序中向VFP主窗口或活动的用户自定义窗口的输出。SET DELETE ON/OFF:决定是否忽略表中已做过删除标记的记录。SET EXACT ON/OFF:决定字符串比较运算符“=”两边内容是否必

8、须完全匹配,缺省是不必完全匹配。SET TALK OFF/ON:关闭或打开系统交互对话显示方式。缺省为打开显示。SET FILTER TO :指定访问当前表中记录时必须满足的条件。6、 FOR I=X TO Y SCAN语句系列 与 语句系列 有何不同?ENDFOR ENDSCAN前者主要处理普通内存变量循环有关的程序;后者主要处理表中满足条件的记录循环有关的程序。7、 内存变量的属性有那几种?它们间有何不同?参见上表。8、 利用DO WITH 传递参数与自定义函数中的参数传送有何不同。前者传递参数是在主程序与子程序之间进行调用和传递,可分为传值和引用两种方式:引用:WITH后的是内存变量列表

9、时,每个内存变量的值传给PARAMETERS中对应变量,调用程序中的变量被隐藏。当被调用的程序中形参的值发生改变时,调用程序中的变量也跟着发生相应的变化。传值:WITH后的是内存变量表达式或用括号将单个变量括起来时,每个内存变量表达式的值传给PARAMETERS中对应变量,调用程序中的变量不被隐藏。当被调用的程序中形参的值发生改变时,调用程序中的变量不会跟着发生相应的变化。后者是在函数内部实行变量间的参数传送,也有传值和引用两种方式。它调用方式为:自定义函数名 ()若中以表达式出现,则是以传值方式传送;若中以内存变量的形式出现,则缺省采用传值方式,若要采用引用方式,需在参数变量前加。9、 程序

10、设计中常用的函数有:(1) 数值函数 INT(X/Y)、MOD(X,Y)、X%Y、X-INT(X/Y)*Y(2)字符串函数SUBSTR(S,N1,N2)、LEN(S)(3)日期与时间函数: DATE()、DTOC(D)、YEAR(D)、MONTH(D)、DAY(D)、DOW(D)、CDOW(D)。(4)转换函数 UPPER(C)、LOWER(C)、CTOD(S)、DTOC(D)、ASC(C)、CHR(N)、STR(N,N1,N2)、VAL(S)(5)数据库函数: FCOUNT()字段个数函数、FIELD()字段名函数、BOF()、EOF()、DELETED()、RECCOUNT()、RECSI

11、ZE()、RECNO()、(6)IIF(条件表达式,满足条件时所取的值、不满足条件时所取的值)(7)测试函数:FOUND()测试是否找到相应的记录。10、程序设计的常用算法: 总原则:变量必须采用“先定义后使用”的原则,程序语句必须有输入和输出语句;函数采用有“先入口后出口”的原则。条件或循环语句必须配套使用,即IFENDIF、FORENDFOR。1、 累加:通常采用下列步骤(1) S=(2) :此时需定义一个循环变量,一般采用I或J,同时大多采用FORENDFOR语句来完成。(3) S=S+A(4) (5) 2、累乘:通常采用下列步骤(1)T=(2):此时需定义一个循环变量,一般采用I或J,

12、同时大多采用FORENDFOR语句来完成。(3)T=T*A(4)(5) 3、字符串的粘合:通常采用下列步骤(1)S=”或S=SPACE(0)(2):此时需定义一个循环变量,一般采用I或J,同时大多采用FORENDFOR语句来完成。(3)S=S+A 或S=A+S 前者采用字符串的顺序粘合,后者采用字符串的倒序粘合。(4)(5)4、自定义函数:通常采用下列步骤(1)PARAMETER (2)程序语句(3)RETURN :省略表示不带参数返回。三、程序阅读题。阅读下列程序,写出运行结果。1、 SET TALK OFFM=3DO WHILE M10N=2 DO WHILE NM IF INT(M/N)

13、=M/N EXIT ENDIF N=N+1 ENDDO IF N=M ?M ENDIF M=M+1ENDDOSET TALK ON2、 设N、P的输入值分别为6,3。注:字符”A”的ASCII码为65。SET TALK OFFCLEARINPUT N= TO NINPUT P= TO PFOR I=1 TO N ?SPACE(NI+1) IF I=P FOR J=1 TO 2*I1 ?CHR(ASC(A)+J1) ENDFOR ELSE FOR J=1 TO (2*I1)(IP) ?CHR(ASC(A)+J1) ENDFOR ENDIFENDFORSET TALK ON3、 注:字符”A”的A

14、SCII码为65。SET TALK OFFCLEARC=一二三四五六七八九十B=ABCDR=0L=LEN(B)FOR I=1 TO LW=SUBSTR(B,I,1)D=ASC(W)+R-65S=IF D+SR=R+11ENDFORSET TALK ON4、 设M的值分别为:12345,205354,105075,123450SET TALK OFFS=0DO WHILE .T. CLEAR INPUT M= TO M N=M DO WHILE .T. R=N-INT(N/10)*10 IF R=0 S=S+1 ENDIF N=INT(N/10) IF N=0 EXIT ENDIF ENDDO

15、IF S1 EXIT ENDIFENDDO?SSET TALK ON5、 SET TALK OFFA=ABCDEFGHIJKLMNOPQRSTUVWXYZB=LEN(A)X=X-Y=Y-I=1DO WHILE I=B J=I X=X+SUBSTR(A,I,1) IF I/2=INT(I/2) Y=Y+SUBSTR(A,I,1) I=I+1 LOOP ENDIF I=I+JENDDO?X?Y6、 设M的值为:10SET TALK ONCLEARINPUT M= TO MI=1S=0?DO WHILE I=M IF ZS(I) IF I*2=M ? STR(I*2,5) S=S+1 ELSE EX

16、IT ENDIF ENDIF I=I+1ENDDO?S=+STR(S,3)SET TALK ON*ZS.PRG*PARA XJ=2DO WHILE JX IF INT(X/J)=X/J EXIT ENDIF J=J+1 ENDDOIF J=X RETURN .T.ELSE RETURN .F.ENDIF7、 设N,M的值分别为6,8。SET TALK OFFCLEARINPUT N= TO NINPUT M= TO MX=MAX(N,M)FOR I=X TO M*N IF MOD(I,M)=0 AND MOD(I,N)=0 Y1=I EXIT ENDIFENDFOR?Y1=+ALLTRIM(S

17、TR(Y1,19)+,Y2=+ALLTRIM(STR(M*N/Y1,19)SET TALK ON8、N值为4,字符”A”的ASCII码为65。SET TALK OFFCLEARINPUT N= TO NFOR I=1 TO N ?SPACE(NI+1) FOR J=1 TO 2*I1 ?CHR(ASC(A)+J1) ENDFORENDFORFOR P=N-1 TO 1 STEP 1 ?SPACE(N-P+1) FOR K=1 TO 2*P1 ?CHR(ASC(A)+K1) ENDFORENDFORSET TALK ON9、 设A的值为:ABCDEFSET TALK OFFCLEARACCEPT

18、 A= TO AL=LEN(A)P=SPACE(0)I=1DO WHILE I+PSET TALK ON四、程序填空:四、程序填空说明:阅读下列程序说明和程序,将程序代码缺少的内容填入 中。1、 已知某系统的口令PASSWORD(存在内存变量文件PASS.MEM中)含多个非空格字符,判断口令是否正确只需比较其长度及第3个到第6个字符是否完全相等,允许操作者录入三次(口令录入时要求关屏),如果口令正确正常返回,否则给出提示信息。SET TALK OFFCLEARRESTORE (1) L= (2) TIME=1DO WHILE TIMEN,计算结果输出宽度10位,小数2位)。*MN.PRG*SE

19、T TALK OFFCLEARSET (1) INPUT “M=” TO MINPUT “N=” TO NSTORE 0 TO SM,SNDO JC2 WITH M,SM &计算M!DO JC2 WITH N,SN &计算N!DO MC2 WITH (2) ? “表达式结果为S=”+ (3) SET PROC TOSET TALK ONPROC JC2PARA X,YI=1T=1DO WHILE I=X T=T*I I=I+1ENDDO (4) RETURNPROC MC2 (5) I=1T=1DO WHILE I0 P=MOD(Y,10) D=S1(P)+S2(I)+D I=I+1 Y= (

20、4) ENDDO (5) RETURN DPROC S1PARA AC1=”零壹贰叁肆伍陆柒捌玖”RETURN SUBSTR(C1,2A+1,2)PROC S2PARA BC2=”分角元拾佰仟亿拾佰仟”RETURN (6) 8、 给定程序的功能是:在表STD.DBF中,按姓名查询记录。SET TALK OFFUSE STDCLEAR (1) DO WHILE ANS CLEAR ACCEPT 请输入姓名: TO XM (2) IF .NOT.FOUND() ? 查无此人! ELSE CLEAR ? 学号:,学号 ? 姓名:,姓名 ? 数学成绩:,数学 ? 英语成绩:,英语 ? 政治成绩:,政治

21、 ? 总分:,总分 ENDIF WAIT 是否继续查询 (Y/N) TO JX IF (3) ANS=.F. ENDIFENDDOUSESET TALK ON9、 下面程序完成输出下列图形: 1 222 33333 4444444555555555 4444444 33333 222 1SET TALK OFFCLEARN=5P=2*N1FOR I=1 TO P IF (1) ?SPAC(NI+1) FOR J=1 TO (2) ?STR(I,1) ENDFOR ELSE ? (3) FOR K=1 TO 2*(2*NI) 1 ?STR (4) ENDFOR ENDIFENDFORSET TALK ON10、 下面程序完成从键盘输入20个数,去掉20个数中的最大值和最小值,然后求平均值。SET TALK OFFCLEARS=0N=1 (1) DO WHILE N=20 INPUT B= TO B S= (2) IF MAXB (3) ENDIF N=N+1ENDDO?AVERAGE=+ (4) SET TALK ON

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1