计算机二级 第6章 Visual FoxPro程序设计基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.一般形式的条件语句 2.一般形式的条件语句
语句格式: IF <条件> <语句序列1> ELSE <语句序列2> ENDIF 真 条件 假
语句序列1
语句序列2
6.3.2 选择结构
3.多分支语句 3.多分支语句
语句格式: DO CASE CASE <条件1> <语句系列1> CASE <条件2> <语句系列> …… CASE <条件n> <语句系列n> [OTHERWISE <语句系列>] ENDCASE 假
2.执行程序文件 2.执行程序文件
菜单方式 命令方式: <文件名 文件名> CANCEL、 命令方式:DO <文件名>,将执行到文件尾或到以下命令 CANCEL、 DO、RETURN、QUIT DO、RETURN、 使用DO命令执行文件时 如不跟文件扩展名, 命令执行文件时, 使用DO命令执行文件时,如不跟文件扩展名,将依次查 .exe、.app、.fxp、.prg文件 文件。 找.exe、.app、.fxp、.prg文件。
2.ACCEPT命令 2.ACCEPT命令
格式:ACCEPT [<字符表达式>] TO <内存变量> [<字符表达式 字符表达式>] <内存变量 内存变量> 格式: 只接收字符串,且字符串不需要定界符,可不输入直接回车。 只接收字符串,且字符串不需要定界符,可不输入直接回车。 40例2-40-3.PRG
6.3.3 循环结构
SCAN-ENDSCAN语句 SCAN-ENDSCAN语句
语句格式: SCAN [<范围>] [FOR <条件1>][WHILE<条件2>] <循环体> [LOOP] [EXIT] ENDSCAN
6.4 多模块程序设计
6.4.1 模块的定义
1.模块及其定义 1.模块及其定义
PROCEDURE|FUNCTION <过程名 过程名> 过程名 <命令序列 命令序列> 命令序列 [RETURN[<表达式 表达式>]] 表达式 [ENDPROC|ENDFUNC]
6.2 程序中的常用命令
6.2.1 输入命令
1.INPUT命令 1.INPUT命令
格式:INPUT [<字符表达式>] TO <内存变量> [<字符表达式 字符表达式>] <内存变量 内存变量> 格式: 可输入常量、变量或表达式,格式必须符合语法要求,且必须 可输入常量、变量或表达式,格式必须符合语法要求, 输入值。 40输入值。例2-40-1.PRG
2.MessageBox()函数 2.MessageBox()函数
格式:MESSAGEBOX(提示字符串) 格式:MESSAGEBOX(提示字符串) 功能:弹出提示框显示提示字符串内容 说明:提示字符串必须是字符串界定符
6.2.3 其他命令
1.CLEAR命令 1.CLEAR命令
格式:CLEAR 格式:CLEAR 功能:清除主窗口区中的内容
6.1.2 程序文件的建立
1.程序文件建立与修改 1.程序文件建立与修改
菜单方式 命令方式:MODIFY 命令方式:MODIFY COMMAND <文件名> 文件名> 打开程序编辑窗口 在程序编辑窗口 中输入程序代码 用Ctrl+W存盘退出 编辑窗口,或单击 程序编辑窗口上的 【关闭】按钮,在 弹出的对话窗口中 确定存盘,生成例 2-40.prg文件。
6.4.2 模块的调用
2.模块的调用 2.模块的调用
格式1:使用DO命令 格式1:使用DO命令
DO <文件名>|<过程名> <文件名> 过程名>
格式2 格式2:在名字后加一对小括号
<文件名>|<过程名>( ) 文件名> 过程名>(
要调用过程文件中的过程,首先要打开过程文件
SET PROCEDURE TO <过程文件1>[,<过程文件2>[,……]] <过程文件1>[,<过程文件2>[,……]] [ADDITIVE]
3.WAIT命令 3.WAIT命令
格式:WAIT [<字符表达式>] TO <内存变量> [<字符表达式 字符表达式>] <内存变量 内存变量> 格式: [WINDOWS [AT <行>,<列>] [NOWAIT][CLEAR | <行>,<列 NOCLEAR] [TIMEOUT <数值表达式>]。例2-40-2.PRG <数值表达式 。 数值表达式>] 40-
2、从功能上看,程序可以分为三个部分: 、从功能上看,程序可以分为三个部分: 第一部分是程序的说明部分,在本例程序中是前几行, 第一部分是程序的说明部分, 在本例程序中是前几行, 一般 用于说明程序的功能、文件名等需要说明的有关信息。 用于说明程序的功能、文件名等需要说明的有关信息。 第二部分是进行数据处理的部分。 第二部分是进行数据处理的部分。 通常任何一个有意义的程 总是要有一些原始数据,否则,这个程序就没有处理对象。 序 , 总是要有一些原始数据 , 否则 , 这个程序就没有处理对象 。 同样, 程序运行的结果也有必要显示或打印出来, 否则, 同样 , 程序运行的结果也有必要显示或打印出来 , 否则 , 用户 将不知道程序干了一些什么。因此, 将不知道程序干了一些什么 。 因此 , 第二部分程序常包括下列 三个部分, 依次为: 提供原始数据部分、数据处理部分、 三个部分 , 依次为 : 提供原始数据部分 、 数据处理部分 、 输出 结果部分。 结果部分。 第三部分是程序的控制返回部分。 第三部分是程序的控制返回部分。它控制程序返回到调用该 程序的调用处。 程序的调用处。
过程保存在称为过程文件的单独文件里。 过程保存在称为过程文件的单独文件里。过程文件包含的过程数量不 过程文件的建立仍然使用MODIFY COMMAND命令,文件的扩展名仍 命令, 限。过程文件的建立仍然使用 命令 为.PRG。 。 过程也可以保存在命令文件里,但必须放在命令文件正常代码的后面。 过程也可以保存在命令文件里,但必须放在命令文件正常代码的后面。 这样,一个命令文件中就可以包含许多模块。 这样,一个命令文件中就可以包含许多模块。
注释命令: 注释命令:
NOTE | * <注释字符串> <注释字符串 注释字符串> && <注释字符串> <注释字符串 注释字符串>
上述命令不作任何操作,只是注释标记, 上述命令不作任何操作,只是注释标记,用于说明程序或命令 的功能等。注释内容不需要用定界符定界,执行时也不显示。 的功能等。注释内容不需要用定界符定界,执行时也不显示。 注释信息如果在一行内没有写完, 注释信息如果在一行内没有写完,换行时也必须再写注释命 NOTE或 是用于整行注释的,因此, 令。NOTE或*是用于整行注释的,因此,它必须写在每一 个注释行的开头; &&命令是用于注释一行的部分内容的 命令是用于注释一行的部分内容的, 个注释行的开头;而&&命令是用于注释一行的部分内容的, 因此,它可以写在行中(命令的尾部、注释信息的头部), 因此,它可以写在行中(命令的尾部、注释信息的头部), 这是程序中唯一可以在一个逻辑行写二个语句的命令。 这是程序中唯一可以在一个逻辑行写二个语句的命令。 6.1.3 程序文件的执行
1.DO WHILE-ENDDO语句 WHILE-ENDDO语句
语句格式: DO WHILE <条件> <命令序列> ENDDO 条件 真 循环体 LOOP EXIT 假
6.3.3 循环结构
FOR-ENDFOR语句 FOR-ENDFOR语句
语句格式: FOR <循环变量>=<初值> TO <终值> [STEP <步长>] <循环体> [LOOP] [EXIT] ENDFOR|NEXT
6.2.2 输出命令
1.?|??命令 1.?|??命令
格式:?|?? [表达式1][,表达式2][,… 格式:?|?? [表达式1][,表达式2][,…] 功能: 功能:将表达式的值显示输出 说明:?输出前要换行从下行开始输出,??输出前不 说明:?输出前要换行从下行开始输出,??输出前不 换行从当前光标处输出。
条件1
真
语句系列1
真 条件2 假 真 条件n 假 真 OTHERWISE 语句系列 语句系列n 语句系列2
6.3.3 循环结构
1.DO WHILE-ENDDO语句 WHILE-ENDDO语句
语句格式: DO WHILE <条件> <命令序列> ENDDO 条件 真 循序的基本结构
程序结构是指程序中命令或语句执行的流程结构。有顺 顺 序结构、选择结构和循环结构三种基本结构。 序结构、选择结构和循环结构 6.3.1 顺序结构 顺序结构是最简单的程序结构,它按命令在程序中出现 的先后次序依次执行。但是绝大多数问题仅用顺序结构是无 法解决的,还要用到选择结构和循环结构。
6.4.2 模块的调用
2.模块的调用 2.模块的调用
当过程文件中的过程不再需要调用时,应该及时关闭过程 文件,释放所在的内在
第6章
Visual FoxPro程序设计基础 FoxPro程序设计基础
第6章 章
6.1 程序与程序文件
6.1.1 程序的概念
程序是能够完成一定任务的命令的有序集合。 程序是能够完成一定任务的命令的有序集合。 程序方式的特点: 程序方式的特点: 可以利用编辑器方便地输入、 可以利用编辑器方便地输入、修改和保存程序 程序文件一旦建立,可以被多次运行, 程序文件一旦建立,可以被多次运行,一个程序可以调另一个程 序 在程序中可以出现在命令窗口中无法使用的命令和语句
2.RETURN
格式:RETURN 格式:RETURN 功能:结束当前程序,返回到调用程序的上级程序,如无上级 则返回命令窗口
3.CANCEL
格式:CANCEL 格式:CANCEL 功能:终止程序执行并关闭所有打开的文件,返回命令窗口
4.QUIT
功能:退出VFP返回Windows操作系统 功能:退出VFP返回Windows操作系统
*功能说明:求圆的周长和面积 功能说明: 功能说明 *文件名:例2-40.PRG 文件名: 文件名 clear &&清除 清除Visual FoxPro 主窗口或当前用户自定义窗口里的全部内容 清除 *设置半径 设置半径 r=3 *依次计算周长和面积 依次计算周长和面积 l=2*PI()*r s=PI()*r^2 *输出计算结果 输出计算结果 ?"周长 周长=",l 周长 ?"面积 面积=",s 面积 RETURN
语句序列1
……
语句序列n
clear r=3 l=2*PI()*r s=PI()*r^2 ?"周长 周长=",l 周长 ?"面积 面积=",s 面积 RETURN
6.3.2 选择结构
1.简单形式的条件语句 1.简单形式的条件语句
语句格式: IF <条件表达式> <语句序列> ENDIF
条件
语句序列
6.3.2 选择结构
1、从形式上看,VFP的程序是由若干有序的命令行组成,且满 、从形式上看, 的程序是由若干有序的命令行组成, 的程序是由若干有序的命令行组成 足下列规则: 足下列规则: ( 1) 一个命令行内只能写一条命令, 命令行的长度不得超过 ) 一个命令行内只能写一条命令 , 2048个字符,命令行以回车键结束。 个字符, 个字符 命令行以回车键结束。 (2)一个命令行可以由若干个物理行组成,即一条命令在一个 )一个命令行可以由若干个物理行组成, 物理行内写不下时, 可以分成几行。换行的方法有两种: 物理行内写不下时 , 可以分成几行 。 换行的方法有两种 : 一种 是在物理行的末尾加符号“ , 是在物理行的末尾加符号“;”,表示下一行输入的内容是本行的 继续;另一种是系统自动换行, 即输入程序时, 继续 ; 另一种是系统自动换行 , 即输入程序时 , 只管逐条命令 输入, 无需考虑本条语句是否超过屏幕行宽的最大限度, 输入 , 无需考虑本条语句是否超过屏幕行宽的最大限度 , 当输 入的语句超过屏幕的最大行宽时,系统自动换行。 入的语句超过屏幕的最大行宽时 , 系统自动换行 。 输入时只需 在一行结束时按回车键,通知系统本命令行输入完毕。 在一行结束时按回车键,通知系统本命令行输入完毕。 (3)为便于阅读,可以按一定的格式输入程序,即一般程序结 )为便于阅读,可以按一定的格式输入程序, 构左对齐, 构左对齐 , 而控制结构内的语句序列比控制结构的语句缩进若 干格。 干格。
语句格式: IF <条件> <语句序列1> ELSE <语句序列2> ENDIF 真 条件 假
语句序列1
语句序列2
6.3.2 选择结构
3.多分支语句 3.多分支语句
语句格式: DO CASE CASE <条件1> <语句系列1> CASE <条件2> <语句系列> …… CASE <条件n> <语句系列n> [OTHERWISE <语句系列>] ENDCASE 假
2.执行程序文件 2.执行程序文件
菜单方式 命令方式: <文件名 文件名> CANCEL、 命令方式:DO <文件名>,将执行到文件尾或到以下命令 CANCEL、 DO、RETURN、QUIT DO、RETURN、 使用DO命令执行文件时 如不跟文件扩展名, 命令执行文件时, 使用DO命令执行文件时,如不跟文件扩展名,将依次查 .exe、.app、.fxp、.prg文件 文件。 找.exe、.app、.fxp、.prg文件。
2.ACCEPT命令 2.ACCEPT命令
格式:ACCEPT [<字符表达式>] TO <内存变量> [<字符表达式 字符表达式>] <内存变量 内存变量> 格式: 只接收字符串,且字符串不需要定界符,可不输入直接回车。 只接收字符串,且字符串不需要定界符,可不输入直接回车。 40例2-40-3.PRG
6.3.3 循环结构
SCAN-ENDSCAN语句 SCAN-ENDSCAN语句
语句格式: SCAN [<范围>] [FOR <条件1>][WHILE<条件2>] <循环体> [LOOP] [EXIT] ENDSCAN
6.4 多模块程序设计
6.4.1 模块的定义
1.模块及其定义 1.模块及其定义
PROCEDURE|FUNCTION <过程名 过程名> 过程名 <命令序列 命令序列> 命令序列 [RETURN[<表达式 表达式>]] 表达式 [ENDPROC|ENDFUNC]
6.2 程序中的常用命令
6.2.1 输入命令
1.INPUT命令 1.INPUT命令
格式:INPUT [<字符表达式>] TO <内存变量> [<字符表达式 字符表达式>] <内存变量 内存变量> 格式: 可输入常量、变量或表达式,格式必须符合语法要求,且必须 可输入常量、变量或表达式,格式必须符合语法要求, 输入值。 40输入值。例2-40-1.PRG
2.MessageBox()函数 2.MessageBox()函数
格式:MESSAGEBOX(提示字符串) 格式:MESSAGEBOX(提示字符串) 功能:弹出提示框显示提示字符串内容 说明:提示字符串必须是字符串界定符
6.2.3 其他命令
1.CLEAR命令 1.CLEAR命令
格式:CLEAR 格式:CLEAR 功能:清除主窗口区中的内容
6.1.2 程序文件的建立
1.程序文件建立与修改 1.程序文件建立与修改
菜单方式 命令方式:MODIFY 命令方式:MODIFY COMMAND <文件名> 文件名> 打开程序编辑窗口 在程序编辑窗口 中输入程序代码 用Ctrl+W存盘退出 编辑窗口,或单击 程序编辑窗口上的 【关闭】按钮,在 弹出的对话窗口中 确定存盘,生成例 2-40.prg文件。
6.4.2 模块的调用
2.模块的调用 2.模块的调用
格式1:使用DO命令 格式1:使用DO命令
DO <文件名>|<过程名> <文件名> 过程名>
格式2 格式2:在名字后加一对小括号
<文件名>|<过程名>( ) 文件名> 过程名>(
要调用过程文件中的过程,首先要打开过程文件
SET PROCEDURE TO <过程文件1>[,<过程文件2>[,……]] <过程文件1>[,<过程文件2>[,……]] [ADDITIVE]
3.WAIT命令 3.WAIT命令
格式:WAIT [<字符表达式>] TO <内存变量> [<字符表达式 字符表达式>] <内存变量 内存变量> 格式: [WINDOWS [AT <行>,<列>] [NOWAIT][CLEAR | <行>,<列 NOCLEAR] [TIMEOUT <数值表达式>]。例2-40-2.PRG <数值表达式 。 数值表达式>] 40-
2、从功能上看,程序可以分为三个部分: 、从功能上看,程序可以分为三个部分: 第一部分是程序的说明部分,在本例程序中是前几行, 第一部分是程序的说明部分, 在本例程序中是前几行, 一般 用于说明程序的功能、文件名等需要说明的有关信息。 用于说明程序的功能、文件名等需要说明的有关信息。 第二部分是进行数据处理的部分。 第二部分是进行数据处理的部分。 通常任何一个有意义的程 总是要有一些原始数据,否则,这个程序就没有处理对象。 序 , 总是要有一些原始数据 , 否则 , 这个程序就没有处理对象 。 同样, 程序运行的结果也有必要显示或打印出来, 否则, 同样 , 程序运行的结果也有必要显示或打印出来 , 否则 , 用户 将不知道程序干了一些什么。因此, 将不知道程序干了一些什么 。 因此 , 第二部分程序常包括下列 三个部分, 依次为: 提供原始数据部分、数据处理部分、 三个部分 , 依次为 : 提供原始数据部分 、 数据处理部分 、 输出 结果部分。 结果部分。 第三部分是程序的控制返回部分。 第三部分是程序的控制返回部分。它控制程序返回到调用该 程序的调用处。 程序的调用处。
过程保存在称为过程文件的单独文件里。 过程保存在称为过程文件的单独文件里。过程文件包含的过程数量不 过程文件的建立仍然使用MODIFY COMMAND命令,文件的扩展名仍 命令, 限。过程文件的建立仍然使用 命令 为.PRG。 。 过程也可以保存在命令文件里,但必须放在命令文件正常代码的后面。 过程也可以保存在命令文件里,但必须放在命令文件正常代码的后面。 这样,一个命令文件中就可以包含许多模块。 这样,一个命令文件中就可以包含许多模块。
注释命令: 注释命令:
NOTE | * <注释字符串> <注释字符串 注释字符串> && <注释字符串> <注释字符串 注释字符串>
上述命令不作任何操作,只是注释标记, 上述命令不作任何操作,只是注释标记,用于说明程序或命令 的功能等。注释内容不需要用定界符定界,执行时也不显示。 的功能等。注释内容不需要用定界符定界,执行时也不显示。 注释信息如果在一行内没有写完, 注释信息如果在一行内没有写完,换行时也必须再写注释命 NOTE或 是用于整行注释的,因此, 令。NOTE或*是用于整行注释的,因此,它必须写在每一 个注释行的开头; &&命令是用于注释一行的部分内容的 命令是用于注释一行的部分内容的, 个注释行的开头;而&&命令是用于注释一行的部分内容的, 因此,它可以写在行中(命令的尾部、注释信息的头部), 因此,它可以写在行中(命令的尾部、注释信息的头部), 这是程序中唯一可以在一个逻辑行写二个语句的命令。 这是程序中唯一可以在一个逻辑行写二个语句的命令。 6.1.3 程序文件的执行
1.DO WHILE-ENDDO语句 WHILE-ENDDO语句
语句格式: DO WHILE <条件> <命令序列> ENDDO 条件 真 循环体 LOOP EXIT 假
6.3.3 循环结构
FOR-ENDFOR语句 FOR-ENDFOR语句
语句格式: FOR <循环变量>=<初值> TO <终值> [STEP <步长>] <循环体> [LOOP] [EXIT] ENDFOR|NEXT
6.2.2 输出命令
1.?|??命令 1.?|??命令
格式:?|?? [表达式1][,表达式2][,… 格式:?|?? [表达式1][,表达式2][,…] 功能: 功能:将表达式的值显示输出 说明:?输出前要换行从下行开始输出,??输出前不 说明:?输出前要换行从下行开始输出,??输出前不 换行从当前光标处输出。
条件1
真
语句系列1
真 条件2 假 真 条件n 假 真 OTHERWISE 语句系列 语句系列n 语句系列2
6.3.3 循环结构
1.DO WHILE-ENDDO语句 WHILE-ENDDO语句
语句格式: DO WHILE <条件> <命令序列> ENDDO 条件 真 循序的基本结构
程序结构是指程序中命令或语句执行的流程结构。有顺 顺 序结构、选择结构和循环结构三种基本结构。 序结构、选择结构和循环结构 6.3.1 顺序结构 顺序结构是最简单的程序结构,它按命令在程序中出现 的先后次序依次执行。但是绝大多数问题仅用顺序结构是无 法解决的,还要用到选择结构和循环结构。
6.4.2 模块的调用
2.模块的调用 2.模块的调用
当过程文件中的过程不再需要调用时,应该及时关闭过程 文件,释放所在的内在
第6章
Visual FoxPro程序设计基础 FoxPro程序设计基础
第6章 章
6.1 程序与程序文件
6.1.1 程序的概念
程序是能够完成一定任务的命令的有序集合。 程序是能够完成一定任务的命令的有序集合。 程序方式的特点: 程序方式的特点: 可以利用编辑器方便地输入、 可以利用编辑器方便地输入、修改和保存程序 程序文件一旦建立,可以被多次运行, 程序文件一旦建立,可以被多次运行,一个程序可以调另一个程 序 在程序中可以出现在命令窗口中无法使用的命令和语句
2.RETURN
格式:RETURN 格式:RETURN 功能:结束当前程序,返回到调用程序的上级程序,如无上级 则返回命令窗口
3.CANCEL
格式:CANCEL 格式:CANCEL 功能:终止程序执行并关闭所有打开的文件,返回命令窗口
4.QUIT
功能:退出VFP返回Windows操作系统 功能:退出VFP返回Windows操作系统
*功能说明:求圆的周长和面积 功能说明: 功能说明 *文件名:例2-40.PRG 文件名: 文件名 clear &&清除 清除Visual FoxPro 主窗口或当前用户自定义窗口里的全部内容 清除 *设置半径 设置半径 r=3 *依次计算周长和面积 依次计算周长和面积 l=2*PI()*r s=PI()*r^2 *输出计算结果 输出计算结果 ?"周长 周长=",l 周长 ?"面积 面积=",s 面积 RETURN
语句序列1
……
语句序列n
clear r=3 l=2*PI()*r s=PI()*r^2 ?"周长 周长=",l 周长 ?"面积 面积=",s 面积 RETURN
6.3.2 选择结构
1.简单形式的条件语句 1.简单形式的条件语句
语句格式: IF <条件表达式> <语句序列> ENDIF
条件
语句序列
6.3.2 选择结构
1、从形式上看,VFP的程序是由若干有序的命令行组成,且满 、从形式上看, 的程序是由若干有序的命令行组成, 的程序是由若干有序的命令行组成 足下列规则: 足下列规则: ( 1) 一个命令行内只能写一条命令, 命令行的长度不得超过 ) 一个命令行内只能写一条命令 , 2048个字符,命令行以回车键结束。 个字符, 个字符 命令行以回车键结束。 (2)一个命令行可以由若干个物理行组成,即一条命令在一个 )一个命令行可以由若干个物理行组成, 物理行内写不下时, 可以分成几行。换行的方法有两种: 物理行内写不下时 , 可以分成几行 。 换行的方法有两种 : 一种 是在物理行的末尾加符号“ , 是在物理行的末尾加符号“;”,表示下一行输入的内容是本行的 继续;另一种是系统自动换行, 即输入程序时, 继续 ; 另一种是系统自动换行 , 即输入程序时 , 只管逐条命令 输入, 无需考虑本条语句是否超过屏幕行宽的最大限度, 输入 , 无需考虑本条语句是否超过屏幕行宽的最大限度 , 当输 入的语句超过屏幕的最大行宽时,系统自动换行。 入的语句超过屏幕的最大行宽时 , 系统自动换行 。 输入时只需 在一行结束时按回车键,通知系统本命令行输入完毕。 在一行结束时按回车键,通知系统本命令行输入完毕。 (3)为便于阅读,可以按一定的格式输入程序,即一般程序结 )为便于阅读,可以按一定的格式输入程序, 构左对齐, 构左对齐 , 而控制结构内的语句序列比控制结构的语句缩进若 干格。 干格。