欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    FOXPRO程序设计入门课件.ppt

    • 资源ID:78977481       资源大小:999.51KB        全文页数:204页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FOXPRO程序设计入门课件.ppt

    第六章 Visual FoxPro程序设计入门第六章 Visual FoxPro程序设计入门6.1 VFP 程序程序-命令文件的建立和执行命令文件的建立和执行6.2 VFP 常用编程命令及函数常用编程命令及函数6.3 VFP 流程图介绍流程图介绍6.4 顺序执行顺序执行6.5 判断分支判断分支6.6 循环结构循环结构6.7 过程与用户自定义函数过程与用户自定义函数习题六习题六第六章 Visual FoxPro程序设计入门6.1 VFP程序程序-命令文件的建立和执行命令文件的建立和执行 6.1.1 建立和编辑命令文件建立和编辑命令文件 1.用用MODIFY COMMAND命令建立命令文件命令建立命令文件常用命令格式:MODIFYCOMMAND文件名的默认扩展名为.PRG。系统首先在磁盘上寻找该文件,若未找到,则建立之,在屏幕上打开一编辑窗口,供用户输入内容;若找到,则把该文件内容调至编辑窗口,由用户进行编辑,并在磁盘上复制一同名、同内容的.BAK文件。编辑结束时,可用End或W结束命令并存盘。也可用Esc键作废编辑并结束命令。第六章 Visual FoxPro程序设计入门2.使用菜单操作建立命令文件使用菜单操作建立命令文件操作过程:文件新建选择“程序”单选按钮单击“新建文件”,将打开一编辑窗口,供用户输入程序。3.使用项目管理器建立命令文件使用项目管理器建立命令文件操作过程:首先打开项目管理器选择“代码”选项卡选择“程序”选项单击“新建”按钮,也将打开一编辑窗口供用户输入程序。第六章 Visual FoxPro程序设计入门6.1.2 执行命令文件执行命令文件命令文件的执行可在VFP的命令窗口(COMMAND窗口)中进行。命令格式:DO此命令将首先打开该命令文件,然后从其第一条语句开始执行。执行完毕后,自动关闭此命令文件,回到命令窗口。第六章 Visual FoxPro程序设计入门6.2 VFP常用编程命令及函数常用编程命令及函数 1SET TALK命令命令基本命令格式:SETTALKON/OFF命令功能:在VFP中,有很多SET命令,其中很大一部分是用以转换状态的。本命令就是用以转换TALK的状态的。TALK的初始状态为ON,在这种状态下,VFP在执行一些非显示命令时,将把执行结果等信息送到显示器显示。在调试程序时,这种方式是极为有利的。但在执行程序时,一般都不希望如此。此时,可用SETTALKOFF命令来改变TALK状态。TALK处于OFF状态时,屏幕上只显示命令要求输出的结果。第六章 Visual FoxPro程序设计入门2SET PRINTER 命令命令基本命令格式:SETPRINTEROFF/ON命令功能:PRINTER的初始状态为OFF。当PRINTER状态为OFF时,关闭向打印机的输出。执行SETPRINTERON命令后,PRINTER状态为ON,此时,输出结果将传送到打印机打印输出。第六章 Visual FoxPro程序设计入门3系统初始化命令系统初始化命令-CLEAR ALL命令格式:CLEARALL命令功能:该命令关闭所有打开的库文件、表文件及其有关文件(索引文件、备注文件等),清除所有内存变量,清除所有用户自定义下拉菜单、弹出式菜单和窗口,选择1号工作区为当前工作区。常用于应用程序主控模块的开头。第六章 Visual FoxPro程序设计入门4清屏命令清屏命令-CLEAR命令格式:CLEAR命令功能:本命令将清除VFP主窗口或当前用户自定义窗口。该命令常用于应用程序某模块的开头,或在各输出命令前使用。第六章 Visual FoxPro程序设计入门5终止程序执行语句终止程序执行语句CANCEL命令格式:CANCEL命令功能:该语句将终止正在执行的程序,把控制权返回给COMMAND窗口。CANCEL将释放所有局部性内存变量(见6.7.3节)。在程序设计中,常用CANCEL语句在某种条件满足时终止程序的执行,因此它常与条件选择语句一起使用。第六章 Visual FoxPro程序设计入门6.程序注释语句程序注释语句-NOTE/*格式1:NOTE格式2:*注释语句的作用是对程序作注释,不执行任何操作。第六章 Visual FoxPro程序设计入门 7.信息框函数信息框函数MESSAGEBOX命令格式:MESSAGEBOX(,)命令功能:该函数将显示一个用户自定义对话框。指定在对话框中显示的文本。在该表达式中包含回车符(CHR(13)可以使信息内容移到下一行显示。对话框的高度和宽度会根据字符串适当增大,以包含全部信息。指定对话框中的按钮和图标、显示对话框时的默认按钮以及对话框的行为。第六章 Visual FoxPro程序设计入门表表6-1 对话框按钮值与按钮类型的对应关系对话框按钮值与按钮类型的对应关系 第六章 Visual FoxPro程序设计入门表6-2对话框图标值与图标类型的对应关系第六章 Visual FoxPro程序设计入门表6-3对话框默认按钮值与默认按钮类型的对应关系第六章 Visual FoxPro程序设计入门当省略时,等同于指定值为0。值实际上是三个值的和,即从表6-1、6-2、6-3中各选一个值的和。例如,若为35,即(3+32+0),则显示的对话框含有如下特征:“是”、“否”和“取消”按钮。信息框显示问号图标。第一个按钮,即“是”按钮为默认按钮。指定对话框标题栏中的文本,若省略该字符串,标题栏中将显示“MicrosoftVisualFoxPro”。例如,执行如下命令:MESSAGEBOX(现在了解MESSAGEBOX()函数的使用方法了吗?,35,MESSAGEBOX()使用示例)第六章 Visual FoxPro程序设计入门图6-1MESSAGEBOX()使用示例对话框第六章 Visual FoxPro程序设计入门表6-4函数返回值与选取按钮的对应关系第六章 Visual FoxPro程序设计入门6.3 VFP流程图介绍流程图介绍 图6-2流程图常用基本图形第六章 Visual FoxPro程序设计入门6.4 顺顺 序序 执执 行行 6.4.1 顺序执行程序入门顺序执行程序入门例例1把表文件“职工.DBF”中李红卫的职称改为“高工”。编程实现如下:SETTALKOFFOPENDATABASE雇员管理USE职工LOCAFOR姓名=李红卫REPL职称WITH高工DISPUSECLOSEDATABASESETTALKON第六章 Visual FoxPro程序设计入门6.4.2 命令的基本功能命令的基本功能 1显示器的坐标显示器的坐标 图6-3VFP主窗口坐标系第六章 Visual FoxPro程序设计入门2.屏幕输出格式设计命令的基本格式屏幕输出格式设计命令的基本格式利用输出格式设计命令,用户可以在VFP主窗口的任何一个坐标点上显示有关内容。命令基本格式:SAY命令中的为规定的坐标。本命令在VFP主窗口上,由规定的坐标开始,显示命令中的值。命令中的“行”和“列”,可以是具体的数值,也可以是数值型内存变量或数值表达式。的最常见形式是一个用引号括起的字符串常量,作为提示信息用。第六章 Visual FoxPro程序设计入门例例2G1.PRG程序如下:CLEAR1,20SAY职工号2,10SAY3*5+2=ROW(),COL()SAY3*5+2ROW()+1,5SAY这是一本书执行后,屏幕显示如下:职工号3*5+2=17这是一本书第六章 Visual FoxPro程序设计入门第一条命令在第1行第20列开始显示“职工号”。第二条命令在第2行第10列开始显示“3*5+2=”。第三条命令在光标当前位置开始显示表达式3*5+2的值“17”。第四条命令在下一行第5列开始显示“这是一本书”。第六章 Visual FoxPro程序设计入门3屏幕输入格式设计命令的基本格式屏幕输入格式设计命令的基本格式命令基本格式:SAYGETDEFAULT格式中的可以是一个内存变量、下标变量或当前打开表文件的一个字段名。该命令将从规定的坐标开始,首先输出SAY子句(若存在)的值,空一格后,再接着输出GET子句中的的值。DEFAULT:若GET子句中的不存在,则命令中必须包含本子句。本子句将建立一个值为的变量。若存在,本子句被忽略。第六章 Visual FoxPro程序设计入门例例3G2.PRG程序如下:USE职工CLEAR3,5SAY职工姓名为:GET姓名4,5SAY月工资为:GET工资执行后,屏幕显示如下:职工姓名为:胡一民月工资为:575.00第六章 Visual FoxPro程序设计入门 4READ 命令的基本功能命令的基本功能READ命令有着丰富的功能,这里仅介绍它的基本功能。命令基本格式:READ执行READ命令时,光标返回到屏幕上第一个GET子句的变量值处。若用户键入新值,该变量值即被新值代替;若仅以回车键响应,则原变量值不变。用新数据取代旧数据时,以回车键或达到原定义的变量长度为结束。然后,光标跳到下一个GET子句的变量值处。用户重复上述修改过程,直至READ命令前所有GET子句的变量都修改后,结束此命令,并把各变量新值送回各变量。第六章 Visual FoxPro程序设计入门例例4G3.PRG程序如下:USE职工CLEAR3,5SAY职工姓名为:GET姓名4,5SAY月工资为:GET工资READ程序执行后,屏幕上显示:职工姓名为:胡一民月工资为:85.00这时光标在“姓名”字段值“胡一民”的首字符处,用户可修改两字段值。第六章 Visual FoxPro程序设计入门6.4.3 其他键盘输入语句其他键盘输入语句 1键盘输入单字符语句键盘输入单字符语句WAIT语句格式:WAIT提示信息TOWAIT语句首先显示“提示信息”(若语句中有提示信息项,则显示语句中给定提示信息;否则,显示WAIT语句固有提示信息:按任一键继续.),接着暂停程序的执行,等待用户键入另一键。用户按下另一键后,这个键的值(若是回车键或不能打印键或组合键,值为空串)作为一个单字符字符串,送(若选择了TO子句的话,它可以是一个内存变量,也可以是一个下标变量。如果内存中不存在,则自动生成之)。WAIT语句执行完毕,程序继续执行。第六章 Visual FoxPro程序设计入门WAIT语句常用于两种情况:(1)用于只需从键盘输入单个字符的情况。现举例说明。例5查看表文件“职工.DBF”中某一记录情况。每查看完一个,要求系统给出提示:是否继续查询(Y/N)。要求快速响应,以便根据输入的数据控制查询是结束还是继续显示另一个记录。第六章 Visual FoxPro程序设计入门程序清单如下:SETTALKOFFCLEAROPENDATABASE雇员管理USE职工DOWHILE.T.XM=5,10SAY请输入待查姓名GETXMREADLOCAFOR姓名=XMIFFOUND()DISP第六章 Visual FoxPro程序设计入门ELSE?查无此人ENDIFWAIT是否继续查询(Y/N):TOYNIFUPPE(YN)=NEXITENDIFENDDOUSECLOSEDATABASESETTALKON第六章 Visual FoxPro程序设计入门在这个简单程序中用到了循环语句DOWHILE.ENDDO和退出循环语句EXIT,因为还未介绍过这两条语句,所以在这里我们不涉及它们,而只关心WAIT语句。当程序执行到WAIT语句时,暂停程序的执行,屏幕上显示:是否继续查询(Y/N):这时只要用户键入“N”,则结束程序运行。如果用户键入的是其他任一键,则屏幕上又显示:请输入待查姓名:再重复执行以上程序。第六章 Visual FoxPro程序设计入门(2)WAIT语句常用的第二种情况是:当程序执行的结果在屏幕上显示出来后,为了让用户能看清所显示的内容(由于程序在不断执行,屏幕上显示的结果会一闪而过),在程序的适当位置可以用WAIT语句使屏幕显示的结果停留下来,当你看清屏幕上的内容之后,再按任一键让程序继续执行。在这种情况下,WAIT语句具有独特的优越性。第六章 Visual FoxPro程序设计入门2 键盘输入字符串语句键盘输入字符串语句ACCEPT语句格式:ACCEPT提示信息TO执行本命令时,首先输出(若存在);然后等待用户从键盘键入数据。用户输入完数据,按回车键后,系统把用户输入的数据作为一个字符串(用户不要输入字符括号、单引号、双引号或方括号)送给指定的变量。用户也可键入一个字符表达式,系统将其值送指定变量。第六章 Visual FoxPro程序设计入门3键盘输入语句键盘输入语句INPUT语句格式:INPUT提示信息TO执行本命令时,首先在屏幕上输出“提示信息”,并等待用户键入数据;用户按回车键后,即把用户键入的表达式求值,送。表达式是什么类型,即是什么类型。第六章 Visual FoxPro程序设计入门6.4.4 顺序执行程序举例顺序执行程序举例例例6对于6.4.1节的例1,我们进行一些修改如下:SETTALKOFFUSE职工XM=XZC=10,10SAY请输入姓名:GETXM12,10SAY请输入新职称:GETXZCREADLOCAFOR姓名=XMREPL职称WITHXZCDISPUSESETTALKON第六章 Visual FoxPro程序设计入门6.5 判判 断断 分分 支支 6.5.1 条件转向语句条件转向语句IF.ENDIF这是一种简单的分支语句,语句格式如下:IFENDIF值为“真”时,顺序执行IF和ENDIF间的语句行序列,然后再执行ENDIF后的语句;若其值为“假”时,则直接跳到ENDIF后面的语句继续执行。第六章 Visual FoxPro程序设计入门图6-4条件转向语句流程图第六章 Visual FoxPro程序设计入门 例例7对6.4.3中的例5引申一步,如果表文件中该指定人员的职称与新定的职称相符,则不作任何操作。流程图如图6-5所示。依据流程图,编制程序如下:SETTALKOFFOPENDATABASE雇员管理USE职工XM=XZC=10,10SAY请输入姓名:GETXM第六章 Visual FoxPro程序设计入门12,10SAY请输入新职称:GETXZCREADLOCAFOR姓名=XMIF职称XZCREPL职称WITHXZCENDIFDISPUSECLOSEDATABASESETTALKON第六章 Visual FoxPro程序设计入门图6-5例7的流程图第六章 Visual FoxPro程序设计入门6.5.2 条件选择转向语句条件选择转向语句-IF.ELSE.ENDIF语句格式:IFELSEENDIF第六章 Visual FoxPro程序设计入门图6-6条件选择转向语句流程图第六章 Visual FoxPro程序设计入门例例8求出表文件“职工.DBF”中指定人员的年龄。如果年龄大于40岁,工资加10元;否则,工资加5元。依据流程图,编制程序如下:SETTALKOFFCLEAROPENDATABASE雇员管理USE职工NF=0XM=5,10SAY请输入今年的年份:GETNF7,10SAY请输入姓名:GETXM第六章 Visual FoxPro程序设计入门READLOCAFOR姓名=XMNL=NF-YEAR(出生日期)IFNL40REPL工资WITH工资+10ELSEREPL工资WITH工资+5ENDIFDISPUSECLOSEDATABASESETTALKON第六章 Visual FoxPro程序设计入门图6-7例8的流程图第六章 Visual FoxPro程序设计入门6.5.3 IF语句的嵌套语句的嵌套一个IF语句可以有两个完整的分量:其一是从IF到ELSE之间的;其二是从ELSE到ENDIF之间的(无ELSE时,IF语句只有一个完整的分量,即从IF到ENDIF之间的语句行序列)。所谓IF语句的嵌套,是指在一个IF语句的一个完整的分量中,包含了另一个完整的IF语句。例例9为鼓励存款,对定期存款时间少于1年的,利率为3%;等于或大于1年而少于3年的,利率为5%;等于或大于3年而少于5年的,利率为7%;5年以上的,利率为9%。第六章 Visual FoxPro程序设计入门图6-8例9的流程图第六章 Visual FoxPro程序设计入门程序清单如下:SETTALKOFFCLEARNX=05,10SAY输入定期年限:GETNXREADIFNX1LL=0.03ELSEIFNX3LL=0.05第六章 Visual FoxPro程序设计入门ELSEIFNX5LL=0.07ELSELL=0.09ENDIFENDIFENDIF?利率=,LLSETTALKON第六章 Visual FoxPro程序设计入门6.5.4情况语句-DOCASE.ENDCASEDOCASECASECASE.CASEOTHERWISEENDCASE第六章 Visual FoxPro程序设计入门在情况语句的格式中,各条件表达式的值必须是逻辑值“真”或“假”。OTHERWISE子句为可选项。有此可选项时,它必须放在所有成分语句之后。执行时,系统依次查看每一个CASE的条件,碰到第一个条件成立者,则执行该条件下的语句序列。执行完后,直接跳转ENDCASE后。如果所有的条件都不成立,若无OTHERWISE子句,则不执行任何成分语句,立即跳出情况语句;有可选项OTHERWISE时,执行OTHERWISE子句的语句行序列,再跳转ENDCASE后。在情况语句中,如果条件为真的情况多于一个,则仅仅执行第一个条件为真者。DOCASE和ENDCASE必须成对出现。第六章 Visual FoxPro程序设计入门图6-9情况语句流程图第六章 Visual FoxPro程序设计入门例例10用情况语句重新编制例9,比较情况语句与条件转向语句的用法。图6-10例10的流程图第六章 Visual FoxPro程序设计入门程序清单如下:SETTALKOFFCLEARNX=05,10SAY输入定期年限:GETNXREADDOCASECASENX1LL=0.03CASENX3LL=0.05第六章 Visual FoxPro程序设计入门CASENX5LL=0.07OTHERWISELL=0.09ENDCASE?利率=,LLSETTALKON第六章 Visual FoxPro程序设计入门可见,同样一个问题,用DOCASE.ENDCASE语句比用IF.ENDIF语句要简洁明了得多。它格式整齐,简单清晰,便于分析和阅读。DOCASE语句也可以嵌套。在DOCASE语句中,语句行序列1、语句行序列2、都是完整的分量。所谓DOCASE语句的嵌套,是指在一个DOCASE语句的一个完整的分量中,包含了另一个完整的DOCASE语句。但在DOCASE与第一个CASE之间不能有任何语句。DOCASE语句和IF语句可以互相嵌套,即一个语句的一个完整分量中包含了另一个完整语句。第六章 Visual FoxPro程序设计入门6.6 循循 环环 结结 构构 6.6.1 三条循环语句三条循环语句 1.循环语句循环语句DO WHILE(1)DOWHILE语句的语句格式:DOWHILEENDDO其中,DOWHILE为循环起始语句;ENDDO为循环结束语句;循环体是几条语句组成的语句行序列,执行循环体能完成的功能即为此循环的基本功能。第六章 Visual FoxPro程序设计入门(2)DOWHILE语句的执行过程。图6-11DOWHILE循环语句流程图第六章 Visual FoxPro程序设计入门系统在执行程序过程中,遇到了循环起始语句DOWHILE时,首先计算的值。此值为真时,系统就顺序往下执行循环体中的语句,即执行循环体;当此值为假时,系统不再执行循环体,而跳到ENDDO的下面一句去执行,即“跳出循环体”。执行到循环结束语句ENDDO时,表示循环体已结束,系统“回跳”到循环起始语句去再一次执行DOWHILE语句。ENDDO和DOWHILE语句必须成对出现。在循环体内必须有使逐渐为假的语句;否则,将进入死循环。第六章 Visual FoxPro程序设计入门2.循环语句循环语句SCAN(1)SCAN语句的语句格式:SCAN FOR WHILE NOOPTIMIZEENDSCAN其中,SCAN为循环起始语句,ENDSCAN为循环结束语句。本语句对范围内满足条件的记录执行。默认范围值为ALL。第六章 Visual FoxPro程序设计入门(2)SCAN语句的执行过程。在执行程序时,遇到SCAN语句,系统即在范围内顺序查找第一条满足条件的记录(条件项以WHILE开头时,情况与以FOR开头的有差别,见第三章中命令的一般形式)。找到后,即执行循环体部分,然后再顺次往下查找下一条满足条件的记录搜索完范围内最后一条记录后,SCAN语句执行完毕。第六章 Visual FoxPro程序设计入门3.循环语句循环语句 FOR(1)FOR语句的语句格式:FOR=TOSTEPENDFOR/NEXT语句格式中,既可以是一个内存变量,也可以是某数组的一个下标变量。若不存在,则自动建立之。第六章 Visual FoxPro程序设计入门(2)FOR语句的执行过程。如图6-12所示。图6-12FOR循环的执行流程第六章 Visual FoxPro程序设计入门第一步,系统首先求出、(若缺省,默认为1)的值,并分别作为循环初值、循环界值、步长,存入内存有关区域。第二步,系统给循环变量赋初值。第三步,判断循环变量越界否。若越界,则FOR循环执行完毕,转去执行ENDFOR(或NEXT)后的第一条语句;若不越界,则执行循环体。第四步,遇到ENDFOR(或NEXT)时,循环变量内容增加步长值。然后,转第三步。第六章 Visual FoxPro程序设计入门第一步,系统首先求出、(若缺省,默认为1)的值,并分别作为循环初值、循环界值、步长,存入内存有关区域。第二步,系统给循环变量赋初值。第三步,判断循环变量越界否。若越界,则FOR循环执行完毕,转去执行ENDFOR(或NEXT)后的第一条语句;若不越界,则执行循环体。第四步,遇到ENDFOR(或NEXT)时,循环变量内容增加步长值。然后,转第三步。第六章 Visual FoxPro程序设计入门对于FOR语句的执行流程,再作如下说明:三个表达式的值求出后,即送内存有关区域存储。以后,在执行循环体时,若对三个表达式中所含变量内容作了修改,也不会影响到循环初值、循环界值、步长。给循环变量赋初值后,若初值已经越界,则一次也不执行循环体,FOR语句就告结束,转ENDFOR(或NEXT)后一语句。当步长大于0时,循环变量值大于循环界值时为越界;当步长小于0时,循环变量值小于循环界值时为越界。执行循环体时,若修改了循环变量值,将会影响到循环执行次数。第六章 Visual FoxPro程序设计入门6.6.2 对表文件记录进行操作时的循环控制方式对表文件记录进行操作时的循环控制方式 1对表文件记录进行逐条操作的循环控制方式对表文件记录进行逐条操作的循环控制方式格式1:SCANENDSCAN格式2:DOWHILE.NOT.EOF()SKIPENDDO第六章 Visual FoxPro程序设计入门格式1的循环起始语句SCAN不带任何范围和条件,因此,对所有记录逐条进行操作。格式2中,循环起始语句DOWHILE的条件为.NOT.EOF(),在循环体内有执行一条记录指针下跳一条记录的SKIP语句。因此,也能实现对所有记录逐条进行操作的目的。这里,SCAN语句显然比DOWHILE语句简洁。第六章 Visual FoxPro程序设计入门例例11用逐条记录循环操作的方法,打印输出表文件“职工.DBF”中每条记录的姓名和工资。依题意,本例的流程图如图6-13所示。采用SCAN语句,则程序如下:SETTALKOFFCLEARSETPRINTERON?姓名工资OPENDATABASE雇员管理USE职工第六章 Visual FoxPro程序设计入门SCAN?姓名+?工资ENDSCANUSECLOSEDATABASESETPRINTEROFFSETTALKON第六章 Visual FoxPro程序设计入门2.选择表文件中符合条件的记录进行循环操作选择表文件中符合条件的记录进行循环操作 格式1:SCANFORENDSCAN格式2:LOCATEFORDOWHILEFOUND()CONTINUEENDDO第六章 Visual FoxPro程序设计入门例例12修改表文件“职工.DBF”中职工的工资,对工资不超过600元且不低于500元者加10元。依题意,画流程图如图6-14所示。采用SCAN语句,程序如下:SETTALKOFFCLEAROPENDATABASE雇员管理USE职工SCANFOR工资=500REPL工资WITH工资+10ENDSCANUSECLOSEDATABASESETTALKON第六章 Visual FoxPro程序设计入门若采用DOWHILE语句,则程序其他部分不变,仅把循环部分改为:LOCAFOR工资=500DOWHILEFOUND()REPL工资WITH工资+10CONTENDDO由于在此例中,范围为ALL,所以上面的FOUND可用.NOT.EOF()。第六章 Visual FoxPro程序设计入门6.6.3 循环结构中两条有用的语句循环结构中两条有用的语句 1退出循环语句退出循环语句EXIT前面介绍的循环语句格式中,一旦进入循环,循环次数实际上已经确定。但在实际应用中,常希望在某种情况下,强迫循环语句结束,去继续执行循环语句后的其他语句。EXIT语句可实现这一要求。语句格式:EXITEXIT语句可放在循环体内的任何位置。当程序执行到EXIT语句时,立即强迫退出循环,转去执行循环后的语句。第六章 Visual FoxPro程序设计入门EXIT语句通常包含在IF语句或DOCASE语句中,当某条件出现时,才被执行。通常用于无限次循环的控制,其常用格式如下:格式1:DOWHILE.T.IFEXITENDIFENDDO第六章 Visual FoxPro程序设计入门格式2:DOWHILE.T.DOCASECASEEXITCASE.ENDCASEENDDO在这里,循环条件永远为真。仅当EXIT的控制条件成立时,才能退出循环。第六章 Visual FoxPro程序设计入门例例13打印某种报表,每打印完一张,便提示用户是否还要打印,由用户输入的信息来进行控制,试编程序实现这种功能。依题意,编写的程序如下:CLEARALLDOWHILE.T.CLEARANSWER=MESSAGEBOX(继续打印吗?,36,打印提示)IFANSWER=7EXITENDIFENDDO第六章 Visual FoxPro程序设计入门图6-15例13的流程图第六章 Visual FoxPro程序设计入门 2短路循环语句短路循环语句-LOOP在实际应用中,还常常会遇到根据某种条件需短路正在执行的循环体,重新回到循环开始处的要求。LOOP语句提供了这种功能。语句格式:语句格式:LOOPLOOP语句可出现在循环体内任一位置。它的功能为,强迫结束本次执行循环体的工作,就好像执行循环体时,遇到了循环结束语句ENDDO、ENDSCAN或ENDFOR。LOOP一般也应受到某种条件的限制。通常用于遇到某个特殊条件时,需阻止执行循环体内剩余语句的场合。第六章 Visual FoxPro程序设计入门例例14假设有一个表文件“工资.DBF”,其中包括有“姓名”、“实发工资”等字段,有20个记录。现在要求显示出此表中前10个记录的“姓名”和“实发工资”,但是,如果遇到“姓名”为“王林”的则不显示。编程序实现。依题意绘制流程图,如图6-16所示。采用SCAN循环语句,程序如下:CLEAROPENDATABASE雇员管理USE工资第六章 Visual FoxPro程序设计入门SCANFORRECNO()=10IF姓名=王林LOOPENDIF?姓名,实发工资ENDSCANUSECLOSEDATABASE若采用DOWHILE循环语句,程序较复杂:OPENDATABASE雇员管理USE工资DOWHILERECNO()=10第六章 Visual FoxPro程序设计入门IF姓名=王林SKIPLOOPENDIF?姓名,实发工资SKIPENDDOUSECLOSEDATABASE第六章 Visual FoxPro程序设计入门图6-16例14的流程图第六章 Visual FoxPro程序设计入门例例15令计算机从零开始计数,并将奇数累加求和。当奇数累加和大于300时,结束计数;否则,继续计数。试编程序实现之。依题意编程如下:SETTALKOFFX=0JSH=0DOWHILE.T.X=X+1DOCASECASEINT(X/2)=X/2LOOP第六章 Visual FoxPro程序设计入门CASEINT(X/2)X/2JSH=JSH+XIFJSH300EXITENDIFENDCASEENDDOSETTALKON?奇数和=?JSH第六章 Visual FoxPro程序设计入门6.6.4 循环结构应用举例循环结构应用举例 1.循环语句与其他分支判断语句的嵌套循环语句与其他分支判断语句的嵌套所谓嵌套,即为:在一个语句的一个完整的分量中,包含了另一个完整的语句。一个循环语句,有且仅有一个完整的分量,就是循环体。第六章 Visual FoxPro程序设计入门图6-17循环语句与其他分支判断语句的互相嵌套第六章 Visual FoxPro程序设计入门例例16建立一个命令文件修改表文件“职工.DBF”中的工资,对于工资在小于等于600元与大于等于500元之间的职工增加20元,而对于工资大于600元的职工增加100元。要求逐条记录进行操作。依题意编程如下:OPENDATABASE雇员管理USE职工SCANDOCASECASE工资=500REPLACE工资WITH工资+20第六章 Visual FoxPro程序设计入门CASE工资600REPLACE工资WITH工资+10ENDCASEENDSCANUSECLOSEDATABASE第六章 Visual FoxPro程序设计入门图6-18嵌套使用的错误形式第六章 Visual FoxPro程序设计入门例例17假设某中学有一个管理记录本校学生成绩的表文件“XSCJ.DBF”,它的结构如下:第六章 Visual FoxPro程序设计入门要求编写一个程序:根据表中录入的各门课成绩,计算出每个学生的语文和数学两门主课的平均成绩与五门课的总平均成绩,然后根据学生的成绩来决定学生是升级、留级,还是补考。如果主课平均成绩及格者,则升级;主课平均成绩不及格,但总平均成绩及格的,则给予补考;主课平均成绩不及格,且总平均成绩也不及格者则留级。最后分别打印出升级学生名单,留级学生名单和补考学生名单。第六章 Visual FoxPro程序设计入门图6-19例17的流程图第六章 Visual FoxPro程序设计入门根据流程图编制程序如下:SETTALKOFFUSEXSCJSCANREPLACE主平均WITH(语文+数学)/2REPLACE总平均WITH(语文+数学+物理+化学+英语)/5DOCASECASE主平均=60REPLACE升留判定WITH升级CASE主平均60.AND.总平均60REPLACE升留判定WITH留级CASE主平均=60REPLACE升留判定WITH补考第六章 Visual FoxPro程序设计入门ENDCASEENDSCANLISTFOR升留判定=升级TOPRINTLISTFOR升留判定=留级TOPRINTLISTFOR升留判定=补考TOPRINTUSESETTALKON第六章 Visual FoxPro程序设计入门 2.多重循环多重循环多重循环即循环的嵌套,是指在一个循环的循环体中,包含有另一个循环。我们称外层循环为外循环,被包含的循环称为内循环。以DOWHILE为例,多重循环的一般格式如图6-20所示。第六章 Visual FoxPro程序设计入门图6-20多重循环的一般格式第六章 Visual FoxPro程序设计入门例18编制一张九九乘法表,要求格式如下:第六章 Visual FoxPro程序设计入门流程图如图6-21所示。图6-21例18的流程图第六章 Visual FoxPro程序设计入门SETTALKOFFCLEAR?*FORA=1TO9?A?ENDFOR?FORA=1TO9?A?第六章 Visual FoxPro程序设计入门B=1DOWHILEB=AP=A*B?P?B=B+1ENDDO?ENDFORSETTALKON第六章 Visual FoxPro程序设计入门图6-21例18的流程图第六章 Visual FoxPro程序设计入门6.7 过程与用户自定义函数过程与用户自定义函数 6.7.1 过程的使用过程的使用 1创建过程创建过程通常,过程是为完成某个操作而编写的代码。在VFP中过程定义的语法格式如下:PROCEDURE.&命令语句块RETURNENDPROC在定义过程时,其中的命令语句块是关键组成部分,每当调用过程时,就将其包含的命令语句块执行一遍。第六章 Visual FoxPro程序设计入门可选项RETURN是返回语句,其常用格式为:RETURNTOMASTER格式中,选择项TOMASTER是在过程嵌套调用时使用,表示返回到最高级调用者。若没有此选择项,则当程序执行该语句时,控制立即返回到其上级主程序,从调用该过程命令的下一条命令处继续执行。缺省时,系统会在过程结束时执行一条隐含的不带任何选择项的RETURN语句。第六章 Visual FoxPro程序设计入门选择项用于将的值返回给调用者,它主要用于用户自定义函数中。在设计过程时可以把它们保存在主程序的结尾,但注意一定不能把过程定义代码放在可执行的主程序代码之前。采用这种方式时,只需用MODIFYCOMMAND命令打开要放置过程的主程序,在其末尾添加过程的定义代码即可。第六章 Visual FoxPro程序设计入门例例19建立一个命令文件,修改“职工.DBF”表中职工的工资。对于工资低于550元的职工增加50元,工资在550元(含550元)以上的增加20元。要求编程时将修改工资这一功能用过程来实现。为该命令文件取名为“GZ.PRG”,其内容如下:USE职工SCANDOGZXGENDSCANUSE第六章 Visual FoxPro程序设计入门*以下是过程定义代码,过程名为“GZXG”PROCEDUREGZXGIF工资550REPLACE工资WITH工资+50ELSEREPLACE工资WITH工资+20ENDIFRETURNENDPROC第六章 Visual FoxPro程序设计入门2调用过程调用过程1)常用格式VFP中调用过程最常用的命令是DO命令。命令格式:DO这个语句出现在要调用某过程的主程序中。当主程序执行到该语句时,立即转去执行指定过程中的命令语句块;当在过程中遇到RETURN语句或遇到ENDPROC语句时,又转回主程序,执行调用过程DO的下一条语句。其调用流程图如图6-22所示:第六章 Visual FoxPro程序设计入门图6-22过程调用流程图第六章 Visual FoxPro程序设计入门例19中所建立的“GZ.PRG”命令文件的执行过程:执行主程序后,首先打开表文件“职工.DBF”,然后执行SCAN循环语句(由于缺省范围和条件,将对每个记录都执行一次循环体)。循环体中DOGZXG语句是调用过程“GZXG”,它使系统立即转去执行过程中的第一条命令:“IF工资550”,并依次执行过程中的其余命令。当执行到RETURN时,又转回主程序,执行DO的下一条语句。遇到循环结束语句ENDSCAN,则又返回SCAN,查找下一条符合条件的记录。每执行一次过程调用语句,就将过程中的命令语句块执行一遍。第六章 Visual FoxPro程序设计入门2)其他格式VFP还提供了另外两种调用过程的方法:(1)在过程名前面加上“=”号,后面加上“()”号。命令格式:=()(2)直接在过程名后面加上“()”号。命令格式:()对例19中的“GZ.PRG”命令文件中的DOGZXG语句,可分别用下面两条语句替换

    注意事项

    本文(FOXPRO程序设计入门课件.ppt)为本站会员(飞****2)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开