VFP程序设计基础_第1页
VFP程序设计基础_第2页
VFP程序设计基础_第3页
VFP程序设计基础_第4页
VFP程序设计基础_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 VFP面向结构程序设计基础旌德职教中心旌德职教中心陈俊友陈俊友20152015年年1111月月1 简单的输入/输出命令l1.1 INPUT命令:输入表达式命令l格式lINPUT TO l功能l命令等待用户从键盘输入数据后按回车键确认l字符表达式为提示信息l输入的数据可以是常量、变量、表达式,但不能不输入数据直接按回车l除N型数据之外,在输入不同的数据类型数据时要加定界符,如李明、.T.、.F.、2005-10-28输入半径,求圆的面积Set talk Off &关闭对话模式Clear &清屏INPUT 请输入圆的半径R TO RS=3.1415926*R*R? 圆的面积为S=

2、+Str(s)Return Set TALK ON注:当执行程序时,首先在屏幕上显示”请输入圆的半径R ” ,并等待用户输入数据(直接输入,如2),用户输入完数据,并回车,程序才可以执行并显示执行结果(圆的面积为S=12.5663704)1.2 ACCEPT命令:输入字符串命令l格式lACCEPT TO l功能l命令等待用户从键盘输入字符串l命令只能接收字符串,输入字符串不需要加定界符,否则,系统会把定界符作为字符串的一部分l不输入任何内容按回车键,则把空串赋给指定的内存变量输入半径,求圆的面积Set talk Off &关闭对话模式Clear &清屏ACCEPT 请输入圆的半

3、径R TO RS=3.1415926*VAL(R)*VAL(R)? 圆的面积为S=+Str(s)Return Set TALK ON注:当执行程序时,首先在屏幕上显示”请输入圆的半径R ” ,并等待用户输入数据(直接输入,如2),用户输入完数据,并回车,程序才可以执行并显示执行结果(圆的面积为S=12.5663704)1.3 WAIT命令:输入单个字符命令l格式lWAIT TO WINDOW TIMEOUT 时间l功能l显示字符表达式的值作为提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续程序的执行;缺省,则显示默认的提示信息“按任意键继续”l保存用户键入的字符,类型为字符型lWIN

4、DOW子句会在系统窗口出现一个WAIT提示窗口lTIMEOUT子句用来设定等待时间(秒数)。如果在等待时间里用户没有按键,系统将不再等待。l示例lWAIT 输入有误,请重新输入 Window TIMEOUT 5Accept、input、wait之间的区别:lwait命令只能输入一个字符, accept命令可以输入一个字符串, input命令可以输入各种类型的表达式。因此, wait命令和Accept命令中的变量一定是C型变量,而input命令中的变量类型由输入的表达式的值的数据类型决定。l使用wait命令输入数据时,只需输入一个字符,不需要按回车键,而使用accept命令和input命令输入数

5、据时,需要按回车键表示输入结束。l使用wait命令和accept命令输入C型数据时,不需要加定界符,而使用input命令输入C型数据时,需要加定界符。laccept命令和input命令只能在屏幕的当前光标下一行开始显示数据,而wait命令既可在屏幕上显示数据,也可以在系统窗口中显示数据。 因此, wait命令常用于输入单字符和显示信息;accept命令常用于输入字符串;input命令常用于输入其他类型的数据。举例:l例1:输入学生的学号,保存到变量XH中ACCEPT ”请输入学号:请输入学号:” TO XH当程序执行时,首先在屏幕上显示”请输入学号:” ,并等待用户输入“学号”数据” (直接输

6、入,不加定界符,如20040001),用户输入完数据,并回车,程序才可以执行并显示执行结果。l例2 :输入学生的入学成绩,保存到变量CJ中INPUT ”请输入入学成绩:请输入入学成绩:” TO CJ当程序执行时,首先在屏幕上显示”请输入入学成绩:” ,并等待用户输入“入学成绩”数据(直接输入,如89),用户输入完数据,并回车,程序才可以执行并显示执行结果。 输入学生的学号,保存到变量XH中INPUT ”请输入学号:请输入学号:” TO CJ当程序执行时,首先在屏幕上显示”请输入学号:” ,并等待用户输入“学号”数据(加定界符输入,如“20040001”),用户输入完数据,并回车,程序才可以执行

7、并显示执行结果。举例:l例3: 要要求用户选择输入字符Y或NlWait“是否继续(Y/N)?”TO XZ WINDOW当程序执行时,首先在系统窗口显示提示窗口”是否继续(Y/N)?” ,并等待用户输入字符Y或字符N,用户输完,程序才开始执行。否则无限等待下去,直到用户按键为止。 显示“正在处理数据,请稍候”,并等待2秒Wait“正在处理数据,请稍候” WINDOW TIMEOUT 2当程序执行时,首先在系统窗口显示提示窗口”正在处理数据,请稍候” ,并等待用户2秒时间。如果在等待时间里用户没有按键,系统将不再等待。2格式输入/输出语句l2.1格式输入语句l格式l , Say GET l可以是多

8、个语句lREADl功能lVFP等待用户输入一个或多个值输入半径,求圆的面积R=0 &指定变量的数据类型和初值 10,10 SAY 请输入圆的半径: GET RREADS=3.1415926*R*R 12,10 SAY 圆的面积为:+str(s)注:当执行程序时,首先在屏幕上显示”请输入圆的半径R ” ,将R=0显示于其后等待用户重新输入数据(如输入2,将原值0改成2),用户输入完数据,并回车,程序的执行结果(圆的面积为S=12.5663704)在第12行的第10列显示。2.2格式输出语句l顺序输出语句l格式? | ? ?表示换行输出?表示不换行输出,紧接着上一个输出语句输出。l示例?

9、2*3? Hello,World!“l输出消息框语句l格式messagebox(提示信息)l功能:在VFP窗口出现一个内容为“提示信息”的消息框l示例messagebox(“数据错误,请重新输入”) l格式输出语句l格式 , SAY l示例 10,10 Say 2*3 12,10 Say Hello,World!测试行坐标与列坐标函数l测试行坐标函数lROW()l返回当前光标的行坐标l测试列坐标函数lCOL()l返回当前光标的列坐标3程序运行环境设置命令l1、CLEAR ALL:功能:清除用户自定义的内存变量l2、SET TALK ON|OFF:设置会话状态功能:设置是否显示某些命令执行的结果

10、。说明:程序的开头不显示,程序结束时显示。 它们在程序中成对出现l3、SET SAFETY ON|OFF功能:设置删除文件时是否显示提示信息。说明:它们在程序中也是成对出现的。4几个特殊命令l(1)CANCEL:终止程序运行,清除所有的局部变量,返回命令窗口;l(2) CLEAR:清屏命令,清除屏幕上的显示信息l(3) RETURN:结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口;5 结构化程序l结构化程序由顺序结构、分支结构和循环结构三种基本结构组成l 顺序结构:程序执行顺序是根据程序中语句的书写顺序l 分支结构:程序执行顺序是根据条件的成立与否,选择执行不同的程序

11、语句l 循环结构:程序执行顺序是在条件成立时反复执行某段程序语句l由三种基本结构构成的程序,可以处理任何复杂的问题Visual FoxPro程序的组成部分l(1)程序的注释部分l一般用于说明程序的功能、文件名等需要说明的有关信息。l(2)程序运行环境的设置及初始化部分l(3)数据处理部分l包括三个部分:提供原始数据部分、数据处理部分、输出结果部分l这部分是程序核心部分l(4)控制返回部分l它控制程序返回到调用该程序的调用处。引例l从键盘上输入一个正数为半径,求圆周长和圆面积*求圆周长和面积GetCircleArea.PRG程序的注释部分CLEAR程序运行环境的设置SET TALK OFF程序运

12、行环境的设置开始INPUT 半径= TO R初始化部分L=2*PI()*RS=PI()*R*R? 圆周长=,L? 圆面积=,SSET TALK ON 程序运行环境的设置结束RETURN 控制返回部分数据处理部分5.1 顺序结构l按语句排列顺序执行,是三种结构中最基本、最简单的结构语句1语句2语句3求圆周长和圆面积程序l从键盘上输入一个正数为半径,求圆周长和圆面积*求圆周长和面积GetCircleArea.PRG&注释语句CLEAR&清屏语句SET TALK OFF&系统参数设置语句INPUT 半径= TO R&输入圆半径值L=2*PI()*R&计算圆周长

13、S=PI()*R*R&计算圆面积? 圆周长=,L&显示圆周长值? 圆面积=,S&显示圆面积值SET TALK ON&恢复参数设置语句RETURN&返回语句求任意三角形的周长和面积l输入三角形三边长a,b,c,计算周长和面积l周长计算公式L=a+b+cl面积计算公式求任意三角形的周长和面积程序Set talk OffClearINPUT 请输入边长请输入边长a= to aINPUT 请输入边长请输入边长b= to bINPUT 请输入边长请输入边长c= to cL=a+b+cD=(a+b+c)/2S=sqrt(d*(d-a)*(d-b)*(d-c)? 三角

14、形的周长三角形的周长L=+str(L)? 三角形的面积三角形的面积S=+str(S)SET TALK ON输入姓名查询学生信息use d:陈俊友数据库xsdaaccept 请输入学生姓名: to namelocate for 姓名=namedisplayuse5.2 分支结构1、单分支语句:IFENDIF语句l格式:IF &(表示选择结构开始) ENDIF &(表示选择结构结束)l程序执行流程:程序执行到单分支选择结构时,首先判断IF后面给定条件是否成立,成立,则先执行语句序列,再执行ENDIF后面的语句;否则,不执行语句序列,直接执行ENDIF后面的语句2、双分支结构:IFE

15、LSEENDIF语句IF ELSE ENDIF双分支选择结构说明l语句功能:判断给定的条件是否成立。成立,则执行语句序列1;否则执行语句序列2。 l(1)ELSE是一个可选项。当ELSE子句缺省时,如果条件不成立,将不执行任何语句。直接转向ENDIF后的下一条语句。l(2)IF和ENDIF必须成对出现,IF是本结构的入口,ENDIF是本结构的出口。求圆周长和圆面积程序l当输入半径大于零时,计算圆周长和圆面积,否则显示半径值不能小于等于零的提示信息。CLEARSET TALK OFFINPUT 半径= TO RIF R0L=2*PI()*RS=PI()*R*R? 圆周长=,L? 圆面积=,SEL

16、SE ? 半径值不能小于等于零ENDIFSET TALK On求任意三角形的周长和面积程序Set talk OffClearINPUT 请输入边长请输入边长a= to aINPUT 请输入边长请输入边长b= to bINPUT 请输入边长请输入边长c= to cIF A+B=C OR B+C=A OR A+C=B or a=0 or b=0 or c=0Wait 输入的边长不能组成三角形输入的边长不能组成三角形return endifd=(a+b+c)/2S=sqrt(d*(d-a)*(d-b)*(d-c)? 三角形的周长三角形的周长L=+str(d*2)? 三角形的面积三角形的面积S=+st

17、r(S)SET TALK ON求二元一次方程的根l输入二元一次方程系数a,b,c,计算二元一次方程根l计算公式如下:分支语句嵌套:条件语句可以嵌套,但不能出现交叉。在嵌套时,为了使程序清晰、易于阅读,可按缩进格式书写。 IF IF ENDIFELSE IF ELSEENDIFENDIF求 X、Y、Z 三个数中的最大值INPUT 输入X= TO XINPUT 输入Y= TO YINPUT 输入Z= TO ZIF X=Y IF X=Z MAX=X ELSE MAX=Z ENDIFELSE IF Y=Z MAX=Y ELSE MAX=Z ENDIFENDIF? MAX3、多分支语句结构:DO CAS

18、EENDCASE语句 DO CASE CASE CASE CASE OTHERWISE ENDCASE多分支语句结构说明:程序执行到多分支选择结构时,首先检查第1个CASE后面的“条件1”,如果条件成立,则先执行“语句序列1”,再执行ENDCASE的后续语句。否则检查第2个CASE后面的“条件2”,如果条件成立,则先执行“语句序列2”,再执行ENDCASE的后续语句。如此进行下去。如果所有的CASE后面的条件都不成立,当有OTHERWISE选项时,执行对应的“语句序列”,然后再执行ENDCASE的后续语句,如果没有OTHERWISE选项时,直接执行ENDCASE的后续语句。输入成绩,判断成绩等

19、级SET TALK OFFCLEARINPUT 请输入成绩:请输入成绩: to StudScoreDo Case case StudScore=90StudLevel=优秀优秀case StudScore=80StudLevel=良好良好case StudScore=70StudLevel=中等中等case StudScore=60StudLevel=及格及格OtherwiseStudLevel=不及格不及格endcase?成绩等级为成绩等级为:+StudLevelReturnSET TALK ON5.3 循环结构l定义:根据条件或计数要求重复执行一段代码l种类:1基于计数的循环:FOR EN

20、DFOR2不知重复次数的循环:DO WHILE ENDDO3数据表记录循环:SCAN ENDSCANFOR ENDFOR语句l语法FOR = TO STEP ENDFOR|NEXTl功能l重复执行,直到的值大于l执行次数=ABS(循环终止值-循环起始值)/步长+1执行过程计算1+2+3+100 的和S=0FOR i=1 TO 100 S=S+iNEXT? 1+2+3+100=,S求n!ClearSet talk offinput 请输入所求的阶乘数: to NS=1for i=1 to NS=S*inext?str(N)+!=+ltrim(str(S)Set Talk ONDO WHILE E

21、NDDO语句DO WHILE LOOP EXIT ENDDO功能说明l 如果第一次判断条件时,条件即为假,则循环体一次都不执行。l 如果循环体包含LOOP命令,那么当遇到LOOP时,就结束循环体的本次执行,不再执行其后面的语句,而是转回DO WHILE处重新判断条件。l 如果循环体包含EXIT命令,那么当遇到EXIT时,就结束该语句的执行,转去执行ENDDO后面的语句。l 通常LOOP或EXIT出现在循环体内嵌套的选择语句中,根据条件来决定是LOOP回去,还是EXIT出去。 LOOP、EXIT命令介绍lLOOP命令:终止本次循环,使程序再次检查是否满足条件,以决定是否进行下一次循环。lEXIT

22、命令:结束循环,使程序执行循环结构后面的语句。注:1、这两条命令只能在循环体内部使用。通常安排在选择结构中,实现满足某种条件就终止循环或结束循环的功能。 2、当使用DO WHILE循环在表中查找记录循环条件为永真(即无限循环)时,通常在循环体内使用EXIT命令在用户不想继续查找时退出循环。如:DO WHILE .T.计算1+2+3+100S=0i=1DO WHILE i=100S=S+ii=i+1ENDDO? 1+2+3+.+100=,SWhile示例l计算连续自然数之和,并且显示和刚大于1000的最后一个自然数lSn=1+2+3+4+NSTORE 0 TO S,NDO WHILE S=100

23、0N=N+1S=S+NENDDO? NWhile示例&显示性别为男的学生信息USE StudInfoDO WHILE .NOT.EOF() IF StudSex=男 DISPLAYENDIF SKIPENDDOUSE数据表记录循环l语句格式语句格式Scan For 条件条件 (又称循环体)(又称循环体)EndScanl功能功能lSCAN为循环起始语句,为循环起始语句,ENDCAN为循环结束语句。为循环结束语句。l本语句对范围内满足条件的记录执行本语句对范围内满足条件的记录执行。默。默认范围值为认范围值为ALL。 lFOR:只有符合条件的记录才进行操作:只有符合条件的记录才进行操作SCAN-ENDSCAN执行过程l执行SCAN语句时,记录指针自动、依次地在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令,搜索完范围内最后一条记录后,SCAN语句执行完毕。 l对当前数据表中指定范围内符合条件的记录,执行。l:指定作用范围,缺省指数据表内的所有记录。 SCAN-ENDSCAN示例USE StudInfo SCAN FOR StudSex=男 DISPLAY ENDSCANUSEUSE StudStudInfo SCAN FOR StudNo=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论