《Visual+FoxPro程序设计》授课课件5.ppt_第1页
《Visual+FoxPro程序设计》授课课件5.ppt_第2页
《Visual+FoxPro程序设计》授课课件5.ppt_第3页
《Visual+FoxPro程序设计》授课课件5.ppt_第4页
《Visual+FoxPro程序设计》授课课件5.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、授课班级,工程101 102班,主讲教师:黄晗,二O一一年三月,Visual FoxPro程序设计,Visual FoxPro程序设计实用教程,Visual FoxPro程序设计,指令:指挥计算机完成某一基本操作的命令 程序:用计算机语言将相关指令按某种语法规则组合起来完成特定功能的指令集 源程序:用计算机语言编写出来的初始程序 可执行程序:把源程序经过编译后形成计算机可以识别的二进制代码程序,1. 相关程序设计的几个概念,Visual FoxPro结构化程序设计,(1)创建与修改程序文件 命令方式 MODIFY COMMAND 程序文件名 菜单方式 打开“文件”菜单,选择“新建”;在“新建”

2、窗口,选择“程序”,再选择“新建文件”;在“程序文件”编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。,Visual FoxPro结构化程序设计,2. 程序的创建与维护,(2)运行程序文件,菜单方式 以菜单方式调用程序文件,操作方法如下: (1)在Visual FoxPro系统主菜单下,打开“程序”菜单,选择“运行”。 (2)在“运行”窗口,输入被调用的程序文件名即可。 命令方式 在Command 窗口中,输入如下命令,则程序文件被调用。 DO 路径程序文件名,Visual FoxPro结构化程序设计,修改程序文件时,可以从菜单“文件”中选择“打开”命令,从屏幕显示的“打开”对话框

3、中选择要修改的文件,在文件编辑器窗口中进行编辑修改程序。,(4)编程时的一般规则,每行只能写一条命令,每条命令以回车换行作为结束标志;一条命令一行写不下时,可以分多行输入,在未输入完的数据后加分号(;),然后回车换行,系统会把此行作为前一行的续行; “*”,“&”,“NOTE”用来作为程序的说明的符号和命令;“*”及“NOTE”只能放在一行的前面,而“&”可以放在前面或后面。,(3) 维护程序,Visual FoxPro结构化程序设计,CLEAR 语句: 【格式】CLEAR 【功能】清除屏幕信息语句 SET TALK ON/OFF语句: 【格式】SET TALK ON / OFF 【功能】命令

4、执行的结果传送/不传送到屏幕上 程序运行结束命令: lQUIT & 返回操作系统 lCANCEL & 返回Visual FoxPro 6.0“命令”窗口 lRETURN & 返回调用处,3程序设计辅助语句命令,Visual FoxPro结构化程序设计,顺序结构,选择结构,循环结构,类型1,类型2,当型循环,直到型循环,4结构化程序设计基础,Visual FoxPro结构化程序设计,在结构化程序设计方法中,程序基本控制结构有三种:顺序结构;分支结构;循环结构。,(1)顺序结构 顺序结构是一种线形结构,是最基本的程序结构,它是按照命令或语句的排列顺序,依次执行。,4结构化程序基础,Visual F

5、oxPro结构化程序设计,在结构化程序设计方法中,程序基本控制结构有三种:顺序结构;分支结构;循环结构。,一、顺序结构例题: 1打开F盘里个人文件夹中的工作表CJ.DBF,将“学号”按升序进行排序,再打开排好序后的工作表,每个学生将语文、数学、英语三门课程的总分记录到CCJ1字段里,然后把该工作表的全部记录按分屏方式在屏幕上显示,最后关闭该工作表。,2将工作表DAXX.DBF中的“出生日期”补充完整,该字段按的数据来源是表中的“身份证号”字段;并在该表中找出学号为“20090223”的学生,将该生的“联系电话”送给变量lxth_bl,最后把全部“未注册”的学生进行逻辑删除。,(2)选择结构,V

6、isual FoxPro结构化程序设计,有三种基本形式: 1、单条件选择结构 单分支结构 是一种IFENDIF分支结构 格式: IF条件表达式 语句序列 EDNIF 功能:条件表达式的值为真(.T.)则执行“语句序列”,否则为假(.F.)则直接执行EDNIF后续语句,双向分支结构 双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。是一种IFELSEENDIF选择结构 格式: IF条件表达式 语句序列1 ELSE 语句序列2 ENDIF 功能:表达式为真,则执行“语句序列1”,再执行EDNIF的后续语句;为假,则执行“语句序列2”,再执行EDNIF的后续语句。,Visua

7、l FoxPro结构化程序设计,2、多分支条件选择语句(多路选择) 是一种DOCASEENDCASE分支结构 格式: DOCASE CASE条件表达式1 语句序列1 CASE条件表达式2 语句序列2 CASE条件表达式 语句序列n OTHERWISE 语句序列n+1 ENDCASE,条件1,语句 序列1,条件n,。,语句 序列n,OTHERWISE,y,N,N,y,Visual FoxPro结构化程序设计,功能:依次判断条件1n的表达式,当遇到第一个条件为真时,则执行该表达式对应的语句序列,然后转去执行ENDCASE的后续语句,若前几个表达式都为假,则执行OTHERWISE的语句序列,然后执行

8、ENDCASE的后续语句。,Visual FoxPro结构化程序设计,使用分支语句应注意的几点 (1)IF ENDIF和DO CASE ENDCASE 必须配对使用,DO CASE与第一个CASE条件表达式之间不应有任何命令。 (2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。 (3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。 (4)DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令。,Visual FoxPro结

9、构化程序设计,例:从键盘输入一个学生的成绩,按下述规定输出:90分100分输出“优秀” 75分89分 输出“良好” 60分74分 输出“及格” 0分 59分 输出“不及格”,Visual FoxPro结构化程序设计,(3)循环结构,常用的循环语句有以下三种形式: (1). DO WHlLEENDDO循环 “当”型循环控制语句,即根据条件表达式的值,决定循环体内语句的执行次数。 语句格式: DO WHILE 条件表达式 命令行序列 ENDDO 语句功能: 该语句通过条件表达式的值来控制循环。执行语句时,反复判断条件表达式的值,当条件表达式的值为“真”时,执行命令行序列;否则,结束循环,并执行EN

10、DDO 后面的第一条命令。,Visual FoxPro结构化程序设计,举 例,例:计算S12399100的值。,Visual FoxPro结构化程序设计,FORENDFOR循环,即根据用户设置的循环变量的初值、终值和步长,决定循环体内语句的执行次数。 语句格式: FOR循环变量循环变量初值TO循环变量终值 STEP循环变量步长 命令行序列 ENDFOR,(2)FORENDFOR循环,Visual FoxPro结构化程序设计,语句功能: 该语句用循环变量来控制命令行序列的执行次数。执行语句时,首先将循环变量初值赋给循环变量,然后判断循环变量是否大于或小于循环变量终值,若结果为“真”,则结束循环,

11、执行ENDFOR 后面的第一条命令;否则,执行命令行序列,循环变量自动按循环变量步长增加或减少,再重新判断循环变量当前的值是否大于或小于循环变量终值,直到其结果为真。,Visual FoxPro结构化程序设计,例:用FORENDFOR循环求1100之间的奇数之和。,Visual FoxPro结构化程序设计,SCAN.ENDSCAN循环,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。 语句格式: SCAN范围FOR条件表达式1 WHILE 条件表达式2 命令行序列 ENDSCAN,3SCAN.ENDSCAN循环,Visual FoxPro结构化程序设计,语句功能: 该语句在指

12、定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF()的值,若其值为“真”,则结束循环,否则,结合条件表达式1或条件表达式2,执行命令行序列,记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOF()的值,直到函数EOF()的值为真时结束循环。,Visual FoxPro结构化程序设计,例:用FORENDFOR循环求1100之间的奇数之和。,Visual FoxPro结构化程序设计,1外部过程 外部过程也叫子程序,和主程序一样是以程序文件(.PRG)的形式单独存储在磁盘上。子程序是指能被其他程序调用的程序。通常情况下,被调用的称为子程序,调用它的称为主程序。子程序

13、中必须使用的条命令是返回命令RETURN,格式为: RETURN表达式 功能是返回到调用该子程序的上级程序,一、过程及过程调用,Visual FoxPro模块化程序设计,【例】分别建立如下程序文件, *正在执行主程序P1_10.PRG SET TALK OFF clear DO PA11 SET TALK ON *PA11.PRG ? 正在执行PA11 RETURN,Visual FoxPro模块化程序设计,2内部过程:,把多个过程组织在一个文件中(这个文件称之为过程文件),或者把过程放在调用它的程序文件的末尾。 VFP为了识别过程文件或者程序文件中的不同过程,规定过程文件或者程序文件中的过程

14、必需用PROCEDURE语句说明,从而建立过程文件。,Visual FoxPro模块化程序设计,3过程文件的建立,【格式】 *过程文件名1 PROCEDURE RETURN PROCEDURE RETURN 过程文件中的每个子过程必须以PROCEDURE语句开头,后面跟过程名,每个子过程以RETURN语句结束。,Visual FoxPro模块化程序设计,4过程文件的打开,调用过程文件前,应先打开相应的过程文件。 【格式】SET PROCEDURE TOPRG,文件名2ADDITIVE 【功能】打开过程文件。 调用过程和调用于程序一样,使用 DO 过程名命令来调用指定的子过程。,Visual F

15、oxPro模块化程序设计,5过程文件的调用 【格式】 DO 过程名 WITH 【功能】 执行以过程名为名的过程,即执行已有的过程。 6过程文件的返回 【格式】 RETURNTO MASTERTO过程名 【功能】 将控制返回到调用程序中调用命令的下一语句,即返回过程的调用处。,Visual FoxPro模块化程序设计,7过程文件的关闭,当过程文件调用结束后,应及时关闭过程文件。使用下列命令关闭过程文件: (1)SET PROCEDURE TO (2)CLOSE PROCEDURE 【例11】 、【例12】 、【例13】,Visual FoxPro模块化程序设计,8 过程调用中的参数传递,过程可以

16、没有或有多个参数,多个参数由逗号隔开。带参程调用命令在主程序中的调用格式: 1有参过程中的形式参数定义 有参过程中的形式参数定义语句为: 【格式】 PARAMETERS 【功能】 该语句必需是过程中第一条语句。中的参数可以是任意合法的内存变量名。,Visual FoxPro模块化程序设计,2程序与被调用过程间的参数传递 程序与被调用过程间的参数传递是通过过程调用语句DO WITH 中WITH 子句来实现的。 【格式】 DO| WITH ,Visual FoxPro模块化程序设计,【说明】 DO命令中参数称为实际参数,PARAMATERS命令中的参数称为形式参数。两个中的参数必须相容,即个数相同

17、,类型和位置一一对应; 实际参数可以是任意合法表达式,形式参数是过程中的局部变量,用来接收对应实际参数的值; 参数的传递模式: 按值传递 按值传递时,传递给被调用过程(子过程)参数的是调用过程(父过程)调用时所使用的值。一般实参是一个变量或是一个表达式。 按地址传递 如果实参是一个变量 (而不是表达式), 则传递给形参的是该变量的地址。 这是形参和实参是同一个变量,在过程中改变形参的值,会同时改变实参的值。默认模式下,变量按地址传递方式向过程传递,按值传递方式向函传递。,Visual FoxPro模块化程序设计,5.3.3 变量的作用域,1公共变量 公共变量是指在所有程序模块中都可以使用的内存

18、变量。公共变量要先建立后使用。 【格式】PUBLIC 【功能】该命令的功能是建立公共的内存变量,并为它们赋初值逻辑假.F.,【说明】 当定义多个变量时,各变量名之间用逗号隔开; 用PUBLIC语句定义过的内存变量,在程序执行期间可以在任何层次的程序模块中使用; 变量定义语句要放在使用此变量的语句之前,否则会出错; 任何已经定义为公共变量的变量,可以用PUBLIC语句再定义,但不允许重新定义为局部变量; 使用公共变量可以增强模块间的通用性,但会降低模块间的独立性。,2局部变量 局部变量是指在建立它的程序以及被此程序调用的程序中有效的内存变量。 【格式】LOCAL 【功能】该命令的功能是建立指定的内存变量,并为它们赋初值逻辑假.F.,【说明】 由于该命令LOCAL与LOCATE的前4个字母相同,所以这条命令的动词不能缩写。 在程序中没有被说明为公共变量的内存变量都被看作是局部变量。 在子程序中可以用PRIVATE命令隐藏主程序中可能存在的变量,使这些变量在子程序中暂时无效。命令格式为: 【格式1】PRIVATE 【格式2】PRIVATE ALL LIKE | EXCEPT 【说明】 用PRIVATE语句说明的内存变量,只能在本程序及其下属过

温馨提示

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

评论

0/150

提交评论