第6章VFP程序设计最新二

合集下载

vfp第六章

vfp第六章

6.3
(1)分析问题 ) (2)确定算法 ) (3)画出流程框图 ) (4)编写程序 ) 5) (5)调试程序
结构化程序设计
一、程序设计的概念和步骤
(6)建立建全的文档资料 ) 二、结构化N-S流程图 结构化 流程图
1、顺序结构
2、选择结构 、 3、循环结构 、
三、顺序结构程序设计 根据编写程序所需命令语句的 先后顺序书写每一条命令,该顺序则 先后顺序书写每一条命令, 是程序的执行顺序。如习题3.41程序。 程序。 是程序的执行顺序。如习题 程序 四、分支结构程序设计 1、简单选择 、 格式:IF <条件 条件> 格式: 条件 <命令序列 命令序列1> 命令序列 ENDIF
3、多种选择(IF的嵌套) 、多种选择( 的嵌套 的嵌套) 格式: 格式: if <条件 条件1> 条件 <命令序列 命令序列1> 命令序列 if <条件 条件2> 条件 <命令序列 命令序列2> 命令序列 else <命令序列 命令序列3> 命令序列 endif Else <命令序列 命令序列4> 命令序列 Endif
3、修改程序:主菜单笺程序——打开 、修改程序:主菜单笺程序 打开——文件名,进入程序编 文件名, 打开 文件名 辑窗口,进行修改。 辑窗口,进行修改。 习题4.38 如:习题
6.2
程序的交互式命令
一、人机交互式输入语句 程序在运行过程中需要用户从键盘上输入任意数据,此时程 程序在运行过程中需要用户从键盘上输入任意数据, 序运行暂停,等待用户输入数据并回车,才继续向下执行程序。 序运行暂停,等待用户输入数据并回车,才继续向下执行程序。这 种人机对话方式实现赋值语句有以下三种: 种人机对话方式实现赋值语句有以下三种: 1、ACCEPT 、 格式:ACCEPT [<提示信息 TO <内存变量 提示信息>] 内存变量> 格式: 提示信息 内存变量 功能:从键盘上输入字符串并赋给内存变量。 功能:从键盘上输入字符串并赋给内存变量。 2、WAIT 、 格式: 提示信息>] 内存变量> 格式:WAIT [<提示信息 [TO <内存变量 ] 提示信息 内存变量 功能:从键盘上输入单字符,可赋给内存变量。 功能:从键盘上输入单字符,可赋给内存变量。 如命令中无选项[<提示信息 屏幕将显示“按任意键继续…” 提示信息>] 注:如命令中无选项 提示信息 屏幕将显示“按任意键继续

VFP课件第6章-程序设计基础

VFP课件第6章-程序设计基础
6.4.1 顺序结构
6.4.2 分支结构
分支结构能根据指定条件的当前值在两条或 多条程序路径中选择一条执行,这样,程序中便能 处理多种情况的复杂问题。Visual FoxPro提供三 种格式的分支结构。
1.单分支选择命令
命令格式: If <条件> <命令序列> Endif 功能:条件表达式的值为.T. 时,执行命令序列, 然后执 行Endif后的命令;条件表达 式的值为.F.时,不执行命令 序列, 直接执行Endif后的命 令。
2.数据输出命令 格式:?/?? [<表达式表>] 功能:计算并输出表达式的值 说明: ① 命令中的表达式可以包含字段变量和内存变量, 表达式之间以逗号分隔。 ② 两个命令的区别在于:? 命令先换行,再开始输 出,?? 命令不换行即开始输出。 ③ ? 命令后面若没有表达式表,则只进行换行操作。
6.3.2 其它常用程序命令
说明: ① 执行此命令时,先在屏幕上显示提示信息,然后暂停程 序运行,等待用户从键盘输入数据,并以回车键结束。系 统将输入的数据存入指定的内存变量中,然后,继续运行 程序。 ② Accept命令只能接收字符型数据,因此所有输入的数据 都被作为字符型,并且不需要加定界符。 ③ 如果内存变量未定义,将在执行此命令时建立内存变量, Accept命令所定义的内存变量为字符型。 ④ <提示信息>可以省略。
教学重点与难点
重点:
程序文件的建立、编辑与执行;常用程序设计 辅助命令、控制结构、子程序、过程文件和自定义 函数的使用。
难点:
程序控制结构、子程序、过程文件以及函数的 使用。
6.1 结构化程序设计概述
6.1.1 程序的概念
程序就是计算机能够分析执行的指令集合。 在Visual FoxPro中,程序文件也称为命令文件, 其扩展名为.prg。

VFP程序设计第六章程序设计

VFP程序设计第六章程序设计

1.有一函数:(分支嵌套)x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10)编写程序,输入x,输出y的值。

clearinput "Enter x please!" to xif x<1y=xelseif x<10y=2*x-1elsey=3*x-11endifendif? 'x=',x,'y=',y2.编写程序,从键盘输入一个年份,判断它是否闰年。

clearinput "Enter year number please!" to yif y%4=0 and y%100<>0 or y%400=0? y,"is a leap year!"else? y,"is not leap year."endif3.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。

90分以上为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”。

(多分支)clearinput “请输入一百分制成绩” to cjdo casecase cj>=90?” A”case cj>=80?” B”case cj>=70?” C”case cj>=60?” D”otherwise?” E”endcase4.编写程序,判断输入三个数a,b,c大小。

(分支嵌套)Input “输入第一个数为:”to aInput “输入第一个数为:”to bInput “输入第一个数为:”to cIf a>bIf a>c?”最大数为” aElse?”最大数为” cEndifElseIf b>c?“最大数为”bElse?”最大数为”cEndifEndif5.编写程序,从键盘输入5个数,找出其中的最大数和最小数。

vfp第6章程序设计内容

vfp第6章程序设计内容

例6.2 Open database 教学管理(lz2) Use 学生 Accept ―请输入学生姓名:‖ to name Locate for 姓名=name If found() Display Endif ?―结束” Use return
例6.3 Use zgda(lz3) Locate for 基本工资<650.00 If .not. Eof() display Endif
Input "x=" to x
if x=0 y=cos(x) - x^3+3* x endif y=sin(x)+sqrt(x*x+1 )
例6.37铁路托运行李,假设每张车票可按每公斤 0.5元托运50公斤以内的行李,如果超过50公斤时, 超过的部分每公斤加价0.8元。计算公式和程序如下: p143 X=0.5×W 当W≤50公斤 X=0.5×50+0.8×(w-50) 当W>50公斤 Set talk off Input ―请输入行李的重量为:” to w If w<=50 x=0.5*w Else x=0.5*50+0.8*(w-50) Endif ?‖行李的重量为:”+str(w,6,2)+‖公斤,其运费 为:”+str(x,6,2)+‖元”
例6.4 输入乘出租车的公里数,求乘车费(计费标准: 2.5公里以内6元;2.5公里以外,每超过1公里,增 加到1.2元,要求四舍五入到元)。(lz5) * PROG6.PRG CLEAR INPUT ―请输入公里数:” TO X IF X>2.5 PAY=(X-2.5)*1.2+6 ELSE PAY=6 ENDIF ? "应付费",ROUND(PAY,0), "元" CANCEL

Visual FoxPro程序设计实例教程第6章 结构化程序设计基础

Visual FoxPro程序设计实例教程第6章  结构化程序设计基础
在程序设计过程中,一般要完成数据的输入、 处理和输出3个部分的设计,有些数据是需要程序 在执行过程中用户输入的。VFP提供了此类命令, 常用的有3 1)INPUT 格式:INPUT [<提示信息>] TO <内存变量 名> 功能:在屏幕上输出[<提示信息>],并等待 用户通过键盘输入表达式,再将表达式的值赋给指 定的<内存变量>
30
分支结构体现了程序运行过程中的自我判断能 力,分支结构能够根据指定条件的当前值在两条或
31
图6.8 IF支结构
32
1)IF 格式:(IF<条件表达式> <语句序列1> ELSE <语句序列2> ENDIF
33
2 多分支结构即根据多个条件表达式的值,选 (1)用IF...ENDIF语句的嵌套实现多分支 (2)
34
图6.9
DO CASE分支结构
35
使用分支语句应注意以下几点: ①IF...ENDIF、DO CASE...ENDCASE 必须配 对使用,DO CASE与第一个CASE<条件表达式> ②<条件表达式>可以是各种表达式或函数的
第6章 结构化程序设计基础
VFP程序设计包括结构化程序设计和面向对象 程序设计。前者是传统的程序设计方法,但在设计 用户界面上难度很大,而后者则可以很方便的实现 ,但仍需用户编写一些过程代码,因此,结构化程
1
第一节 结构化程序设计通常采用“自顶向下、逐步求 精”的方法,简单地说就是把一个模块的功能逐步 分解,细化为一系列具体的步骤,进而编写成一系
2
程序是能够完成某一特定任务的有序命令集合 。这些命令按照一定的逻辑顺序有机地结合在一起 ,并以文件形式存储在磁盘上,这种文件称为程序 文件。程序设计是计算机用户为解决某一实际问题 而编制程序,并以文件的形式存放于磁盘的过程。

VFP第六章课件2(循环结构)

VFP第六章课件2(循环结构)

控制循环执行的方式
控制循环执行的方式
3)用记录指针控制循环 学院英语比赛成绩数据表SH.DBF SH.DBF中包 例2:学院英语比赛成绩数据表SH.DBF中包 括以下字段:姓名( ),班级 班级( 括以下字段:姓名(C,8),班级(C, 10),英语(N ),英语(N, 0)和备用(N, 和备用(N 10),英语(N,3,0)和备用(N,3,0) ;其 中除备用字段外,其他字段均已有值。 中除备用字段外,其他字段均已有值。 编程序统计各班英语的平均成绩, 编程序统计各班英语的平均成绩,并显示平 均分前三名的班级和平均成绩( 均分前三名的班级和平均成绩(假设平均成绩 都不相同)。 都不相同)。 ( 见“程序168.PRG” 程序文件 )
<内存变量>为循环变量,作为计数器控制循环。<数 内存变量>为循环变量,作为计数器控制循环。 值表达式1>为循环变量初值; 数值表达式2> 1>为循环变量初值 2>为循环 值表达式1>为循环变量初值;<数值表达式2>为循环 变量终值,循环变量超过终值循环结束。 变量终值,循环变量超过终值循环结束。 FOR语句每循环一次 语句每循环一次, FOR语句每循环一次,自身便改变一次循环变量的 STEP短语设置改变的增量 短语设置改变的增量, 数值表达式3> 值,STEP短语设置改变的增量,由<数值表达式3> 设置。正值为增加,负值为减少,缺省默认为1 设置。正值为增加,负值为减少,缺省默认为1。在 循环中允许使用赋值语句修改循环变量的值。 循环中允许使用赋值语句修改循环变量的值。 FOR语句可以嵌套 语句可以嵌套。 NEXT任选其一 任选其一。 FOR语句可以嵌套。ENDFOR 和NEXT任选其一。

VFP 第6章

VFP 第6章

目录
上一张
结束
3.WAIT命令 . 命令 WAIT [ <字符表达式>] [TO <内存变量>]
功能:该命令显示字符表达式之值作为提示信息,暂停程序的执行 ,直到用户按任意键或单击鼠标时继续程序的执行。 说明:
如果 <字符表达式>值为空串,那么不会显示任何提示信息。如果没 有指定 <字符表达式>,则显示默认的提示信息:“按任何键继续...”。 <内存变量>用来保存用户键人的字符,其类型为字符型。
INPUT “请输入货物重量:” TO w IF w<=50 f=w*0.1 ELSE f=50*01+(w-50)*0.2 ENDIF ? “托运费为:”,f 目录 上一张 结束
&&货物重量超过50公斤时的计算公式 &&货物重量没有超过50公斤时的计算公式
用单分支选择编写YH2.prg程序如下:
VFP的结构化程序设计 第6章 VFP的结构化程序设计
6.1 程序与程序文件 6.2 程序的基本结构 6.3 模块化程序设计 本章要点
目录
上一张
结束
前面各章都是以交互方式,即在命令窗口中逐条输入命 令或通过选择菜单来执行Visual FoxPro命令的。除此之外, 常常采用程序的方式来完成更为复杂的任务。 VFP程序设计包括结构化程序设计和面向对象程序设计。 前者是传统的程序设计方法;后者面向对象,用户界面可利 用VFP提供的辅助工具来设计,应用程序可自动生成,但是 仍需用户编写一些过程代码。就此而言,结构化程序设计仍 是面向对象程序设计的基础。
,若无上级程序则返回命令窗口。 ④ QUIT:退出Visual FoxPro系统,返回到操作系统。

Visual FoxPro程序设计-电子教案 第6章结构化程序设计

Visual FoxPro程序设计-电子教案  第6章结构化程序设计

3. accept命令 格式: ACCEPT [<字符表达式>] TO <内存变量> 功能:程序运行时,通过键盘把字符型常量给变量赋值 说明: ① 系统显示<字符表达式>的内容作为输入的提示信息, 如果不指定<字符表达式>,则执行命令时屏幕上只显 示光标等待输入。 ② 此命令只能接收字符型常量,用户在输入时不需要加 字符串定界符,否则系统会把定界符作为字符串内的 字符。 ③ 如果不输入内容直接按回车键,系统将把空串赋值给 指定的内存变量。
【例6-5】在学生档案表中按姓名查找满足条件的记录, 若找到则显示该学生的学号、姓名、性别、家庭住址 ;若没找到,则显示“姓名输入错误!” 【例6-6】输入货物重量,计算货物的托运费。计费标准 为每公斤0.1元,当超过50公斤时,超出部分为每公斤 0.2元。
6.2.2 嵌套的分支语句 IF语句中还可以出现IF语句,这就构成了IF语句的嵌套。 1.IF语句嵌套的一般格式 2.语句执行过程 3.说明 (1)也可以在IF子句中嵌套,或是在IF和ELSE子句中同 时嵌套; (2)每个嵌套中的IF和ENDIF必须成对出现; (3)各层嵌套不得交叉。
高职高专院校“十二五”精品示范系列教 材(软件技术专业群)
Visual FoxPro程序设计
第6章 结构化程序设计
6.1 程序和程序文件 6.2 选择结构程序设计 6.3 循环结构程序设计 6.4 过程与函数
6.1 程序和程序文件
程序是能够完成一定任务的命令的有序集合。许多任务单靠 一条命令是无法完成的,而是要执行一组命令来完成。学习 Visual FoxPro的目的就是要学习利用命令来编写程序,以完成一 些具体的任务。 程序以文件形式保存在磁盘上,被称为程序文件或命令文件 ,扩展名为.prg。VFP的程序文件和其Байду номын сангаас高级语言程序一样,是一 个文本文件。程序运行时,系统会按照一定的次序自动执行包含 在程序文件中的命令。编写程序文件与在命令窗口中逐条输入命 令相比有以下优点: (1)可以利用编辑器,方便地输入、编辑和保存程序; (2)可以利用多种方式、多次运行程序; (3)可以在一个程序中调用另一个程序。

VFP计算机二级 第6章.程序设计PPT

VFP计算机二级 第6章.程序设计PPT

2.输入字符串命令 2.
【格式】ACCEPT [<字符表达式>] TO <内存变 量名> 【功能】从键盘上输入一个字符串常量给内存变量。 【说明】 ① <字符表达式>是提示语。从键盘上输 入的字符串不必用定界符括起来, ② TO短语是必选项。<内存变量>用来保存键盘上 输入的字符串。 例 6-4 : ACCEPT " 请 输 入 要 查 找 的 人 名 " TO name 此时,用户从键盘上输入一个名字回车后,就被存 入内存变量name中去了。
【例6-1】 数组应用举例。在数据表xs1.dbf中添 加一条新记录,其各字段的数据依次为: 9z ,16,2000,1500,09/23/1982,女;然后,再将此记录 与“3l”调换一下位置。(见程序6-2) 程序如下: SET TALK OFF CLEAR dimension x(6) x(1)=‘9z' x(2)=‘16' x(3)=2000 &&决定不显示命令结果 &&清楚变量值
2) 将数组中的数据传递到当前数据表中 【格式一】GATHER FROM <数组名> [FIELDS <字段名表>][MEMO] 【功能】将一维数组中的各元素数据传递给当前 记录。数组中的第一个元素的内容传递给第一个字段, 第二个元素传递给第二个字段…,如果数组中元素中 的个数比字段个数多,则多余的部分忽略。注意字段 类型要与对应的数组元素的数据类型匹配。 【格式二】APPEND FROM ARRAY <数组名> [FOR <逻辑表达式>][FIELDS <字段名表>] 【功能】将一维数组或二维数组中的各元素数据 添加到当前数据表尾部。
6.1.3 程序的运行
1、边编译边执行 2、先编译后执行

Visual FoxPro 9.0 基础教程第6章 程序设计基础

Visual FoxPro 9.0 基础教程第6章 程序设计基础
内存变量的操作
保存内存变量 格式:save to <内存变量文件名>[all like/except <内存变量名表>] 删除内存变量 格式一:release <内存变量名表> 格式二:release all [like/except <内存变量>] 恢复内存变量 格式:restore from 内存变量文件名
“海南 医学院”

删除尾部空格后联接两个字符型数据
“海南 ”-“医学院”
“海南医学院”
$
比较,查看一个字符串是否在另一个字符串中
“海南”$“海南医学院”
.T.
6.2.3 关系表达式
运算符
功能
表达式
表达式值
<
小于
3*5<20
.T.
>
大于
3>1
.T.
=
等于
3*6=20
内存变量的操作
内存变量赋值 格式一:STORE <表达式> TO <内存变量名>|<数组表> 例: STORE "visual foxfro" TO vfp,vf STORE 1+3 TO A1,B2,C3 格式二:<内存变量>|<数组>=<表达式> 例: vfp="visual foxfro" vf="visual foxfro" A1=1+3
6.1.4 变量分类
系统变量(System Variable) 它是系统内部定义的一些变量。这些变量名称是系统已经定义好的,以“_”(下划线)开头。如:_BROWSER 对象变量(Object Variable) Visual Foxpro是一种面向对象的语言,所以系统提供一种称之为对象的变量。存储对象的变量,是一种新变量。

VFP第6章

VFP第6章

6.3.2 选择结构
选择结构 — 在程序执行时,根据不同的条件,选择执行 不同的程序语句。
VFP提供了以下选择结构语句: ①单分支选择语句:IF—ENDIF ②双向选择语句:IF—ELSE—ENDIF ③多分支选择语句:DO CASE – ENDCASE
1. 选择结构
【格式】
if <条件> <语句序列1>
2.输出专用命令
(1)无格式输出 【格式】?<内存变量名表> 【格式】??<内在变量名表> 在前面章节中讲过的 ?和??,在命令文件 中仍然可以使用
正文输出语句
【格式】 text <正文内容>
endtext
【说明】 正文信息不要使用定界符:text与endtext必须成对出现。 用set print on 设置后才能在显示的同时送往打印机输出。 【例6.7】编写程序prog7.prg .利用TEXT与ENDTEXT显示信息。 *本程序的文件名为:PROG7.PRG clear text *********************** * 欢迎使用 * *********************** Endtext return
6.1.2程序设计的特点
采用程序的好处: 可以利用编辑器,方便地输入、修改和保 存程序。 可以用多种方式、多次运行程序。 可以在一个程序中调用另一个程序
程序举例
在下面的程序中使用的三种注释语句: NOTE 功能说明:求圆形的面积。 *本程序的文件名为:PROG1.PRG CLEAR &&清屏 SET TALK OFF R=3 S=PI()*R*R &&求圆的面积 ? "半径为"+ALLTRIM(STR(R))+"的圆面积=",S &&输出圆的 面积 SET TALK ON RETURN

计算机二级vfp数据库程序设计

计算机二级vfp数据库程序设计

计算机二级vfp数据库程序设计计算机二级VFP数据库程序设计是指在计算机二级考试中,考生需要掌握的Visual FoxPro(简称VFP)数据库管理系统的相关知识和技能。

VFP是一种关系数据库管理系统,广泛用于数据管理和应用开发。

以下是关于计算机二级VFP数据库程序设计的一些要点:1. VFP概述Visual FoxPro是微软公司开发的一种数据库管理系统,它支持多种操作系统,包括Windows。

VFP以其强大的数据库管理和编程功能而闻名,适用于中小型数据库应用的开发。

2. 数据库基础在VFP中,数据库由多个表组成,每个表可以包含多个字段。

表之间的关系定义了数据的组织方式。

了解数据库的基本概念,如字段、记录、索引、表单和查询,是进行数据库程序设计的基础。

3. 数据库设计设计数据库时,需要考虑数据的完整性、安全性和效率。

这包括选择合适的数据类型、设置主键和外键约束、创建索引以优化查询性能等。

4. SQL语言SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言。

在VFP中,SQL用于执行数据查询、插入、更新和删除操作。

5. VFP编程基础VFP提供了丰富的编程功能,包括变量、常量、数组、流程控制语句(如IF...ENDIF、DO CASE...ENDCASE、FOR...ENDFOR等)、函数和过程等。

6. 表单设计表单是VFP中用于与用户交互的界面。

设计表单时,需要考虑布局、控件(如文本框、按钮、列表框等)的放置和事件处理。

7. 报表设计报表是展示数据的一种方式。

在VFP中,可以使用报表向导或手动设计报表,以满足不同的数据展示需求。

8. 菜单设计菜单是用户操作数据库程序的入口。

在VFP中,可以设计菜单来组织程序的功能,提供用户友好的操作界面。

9. 程序调试与优化在程序设计过程中,调试和优化是必不可少的步骤。

这包括使用调试工具来查找和修复错误,以及优化程序的性能。

VFP第6章表单设计2

VFP第6章表单设计2

⑸当选择列表框中的学号时,表格控件的数据随 之变化。 ⑹当点击“一等奖学金人数”或“二等奖学金人 数”按钮时分别统计获奖人数,计数结果在相应 的文本框中显示;当点击“退出”按钮时,结束 表单运行。
设计步骤: ⑴设置数据环境; ⑵属性设置: 列表框数据源RowSource, 数据源类型RowSourceTyp 与表格字段建立联系的数 据源ControlSource
常用形状属性值: ⑴Curvature=0,Width≠Height时,产生矩形。 ⑵Curvature=99,Width=Height时,产生圆。 ⑶Curvature=99, Width≠Height时,产生椭圆。
⑷fillStyle属性 指定形状填充方案 ⑸fillColor属性 指定形状填充色 ⑹Visible属性 形状控件是否可见 如果形状控件遮住了其它控件,可以用“格式 ”菜单的“置后”命令,或用“布局工具栏”的 “置后”按钮设置形状控件置后。
例6-16:在表单设计一个向左滚动的字幕,左下 一个数字时钟,右下一个命令按钮。
表单文件名:EX6-16时钟.scx
设计步骤: ⑴创建1个标签,2个计时器,1个命令按钮控件。 ⑵设置属性值: Label1的Caption='Visual FoxPro 6.0程序设计' Label2的Caption=Time Timer1的Interval=200 Timer2的Interval=500
表单文件名:EX6-12选项按钮组.SCX
⑴创建1个选项按钮组,1个复选框,2个命令按钮,1 个标签控件。 ⑵设置数据环境:在数据环境中添加SB.DBF、 MBDM.DBF、DX.DBF和ZZ.DBF。 ⑶用选项按钮组生成器设置选项按钮组标题与布局。
⑷编写Optiongroup1的Click事件代码;

计算机二级VF第六章 程序设计基础

计算机二级VF第六章 程序设计基础

第六章程序设计基础第一节程序和程序文件一、程序的概念VFP的程序指将若干条VFP的命令语句,保存在一个扩展名为PRG的文本文件中,当用户在命令窗口或其它方式下执行这一文件时,就相当于一次执行的多条VFP命令语句。

这些命令语句在程序中称为程序代码,一行程序代码又称为语句行。

(1)命令注释在程序中以“*”或“NOTE”开头的语句行,将不会被系统执行,被当作文字说明来对待。

(2)SET TALK ON|OFF命令打开/关闭命令执行时的“回显”状态,默认为ON(3)SET SAFE ON|OFF命令打开/关闭系统的安全提示,默认为ON(4)RETURN结束当前程序的执行,返回程序调用处。

当程序文件中再无语句行时,系统会默认有一个RETURN二、程序文件的建立和执行1.建立和修改(1)菜单法/工具栏法建立:新建程序新建文件修改:打开程序选取要修改的程序文件确定(2)命令格式1:MODIFY COMMAND <程序文件名>格式2:MODIFY FILE <程序文件名.PRG> 2.执行程序文件格式:DO <程序文件名>例:编写程序,完成如下操作在屏幕中显示[今天是:XXXX年XX月XX日,星期X]1.在命令窗口输入创建程序文件的命令MODI COMM SX12.在程序编辑界面输入如下代码:SET TALK OFFCLEAR*以上为程序运行的环境设置RQ=DTOC(DATE(),1)YY=LEFT(RQ,4)MM=SUBSTR(RQ,5,2)DD=RIGHT(RQ,2)XQ="日一二三四五六"XQ=SUBS(XQ,DOW(DATE())*2-1,2)*以上是得到年月日星期的字符数据"今天是:"+YY+"年"+MM+"月"+DD+"日,星期"+XQ*以上为程序主体部分SET TALK ONRETURN3.保存文件并关闭程序编辑界面(Ctrl+W)4.在命令窗口输入运行程序的命令:DO SX1例:编写程序完成如下操作:打开表DJKS,显示所有性别为男且成绩合格的记录,将结果保存在表文件中,关闭所有表文件*SET TALK OFFCLOSE DATA ALL &&程序中有表文件打开SET SAFE OFFCLEAR*以上是环境设置USE DJKSDISP FOR 性别="男" AND MIN(笔试,上机)>=60COPY TO NAN FOR 性别="男" AND MIN(笔试,上机)>=60*以上是程序主体SET TALK ONCLOS DATA ALLSET SAFE ONRETURN例:上机模拟题第五十套第三题*SET TALK OFFCLOSE DATA ALLSELE COUNT(DIST DHDW) FROM GNHT INTO ARRAY DHSELE COUNT(DIST GHDW) FROM GNHT INTO ARRAY GHSELE SUM(JHSL) FROM GNHT INTO ARRAY JH UPDA JIEGUO SET NUM=DH WHERE NAME="订货单位数"UPDA JIEGUO SET NUM=GH WHERE NAME="供货单位数"UPDA JIEGUO SET NUM=JH WHERE NAME="订货总数"CLOS DATA ALLSET TALK ONRETURN例:上机模拟题第九套第三题要点:SET TALK OFFSET SAFE OFFCLOSE DATA ALLUPDATE SCORE1 SET 总成绩=考试成绩+IIF(三好生,20,IIF(优秀干部,10,IIF(少数民族,5,0)))SELE 学号,总成绩 FROM SCORE1 ORDER BY 2,1 INTO TABLE ZCJCLOSE DATA ALLSET TALK ONSET SAFE ONRETURN例:上机模拟题第一套第三题要点:SET TALK OFFSET SAFE OFFUPDA SCORE SET 学分=IIF(物理>=60,2,0)+IIF(高数>=60,3,0)+IIF(英语>=60,4,0)SELE 学号,学分 FROM SCORE ORDER BY 2,1 DESC INTO TABLE XFCLOSE DATA ALLSET SAFE ONSET TALK ONRETURN三、简单的输入命令命令格式:INPUT [字符表达式] TO <内存变量>功能:当系统执行到本命令时,会等待用户从键盘输入数据,用户可以输入任意合法的表达式。

第六章 VFP6.0程序设计基础

第六章 VFP6.0程序设计基础

第六章VFP6.0程序设计基础第六章Visual FoxPro6.0程序设计基础上一章下一章返回VFP教学主页引言章本章介绍FoxPro程序设计,这是本课程的重点内容。

前面所学的选单方式和命令交互方式固然重要,但为了末端用户、为了简化和优化具体问题的操作,需要将选单方式或命令交互方式的步骤记录下来,成为方便使用的程序(软件)。

本章分为:6.1 程序文件6.2 程序的控制结构6.3 模块化程序设计6.4 事件处理6.5 常见计算和字符图形编程实例工具: ☆FoxBase ☆FoxPro 2.5 ☆VFP 6.0 ☆写字版☆绘图板☆DOS状态6.1 程序文件下一节前几章介绍了FoxPro的命令、若干函数及FoxPro的交互执行方式,交互执行方式能灵活地解决即席提出的问题,为用户使用数据库提供了很大便利。

但交互执行方式要求用户掌握较多的计算机知识:对非程序员用户、或称为未端用户而言,由于这些用户大多为组织中的各级管理人员,要求他们掌握较多的计算机知识是比较困难的。

FoxPro还提供另一种执行方式,即程序方式。

所谓程序方式是指计算机程序人员根据用户功能需求,将FoxPro的操作命令组织成程序,未端用户通过运行程序完成预定功能,同时程序方式还能解决一些复杂的问题,所以对于成功的数据库管理系统而言,交互方式和程序方式互为补充,缺一不可。

在FoxPro的程序方式中,通过流程控制等语句,将前几章介绍的命令或函数组织成程序,程序方式中的命令也称为语句。

程序组织在命令文件或过程文件中。

命令文件和过程文件的区别在于,在命令文件中只包括一个可执行的程序,多个程序组织在一文件中构成过程文件。

过程文件中的每个程序也称为一个过程。

本书将命令文件和过程文件统称为程序文件,本章讨论程序的构造及运行。

命令文件和过程文件都是文件扩展名为.PRG的文本文件,这两种文件统称为程序文件。

程序文件可用任何一种编辑程序建立和修改,FoxPro系统本身也包含了编辑程序,使用该编辑程序可在FoxPro系统内编辑修改程序文件,和调用其它编辑程序相比,减少了在FoxPro系统和系统外编辑程序之间切换的开销。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11
参数传递的两种方式: 参数传递的两种方式 (1)按“引用”传递: 形参发生改变时 实参也跟着改变 当 按 引用”传递 形参发生改变时,实参也跟着改变 实参也跟着改变;当 实参为变量形式时,参数传递的方式为按 引用”传递;可以 参数传递的方式为按“ 实参为变量形式时 参数传递的方式为按“引用”传递 可以 改变为按“ 传递。 用SET UDFPARMS TO VALUE改变为按“值”传递。 改变为按
2、过程的定义与调用 、
(1)过程的定义 过程的定义 格式: 过程名> 格式: PROCEDURE <过程名 过程名 [PARAMETERS <形式参数表 形式参数表>] 形式参数表 <语句序列> <语句序列> 语句序列 [RETURN [<表达式 表达式>]] 表达式 [ENDPROC] 过程名> 说明: 过程开始:PROC <过程名 过程名 说明 * 过程开始 * 过程结束 过程结束:ENDPROC * 过程返回 过程返回:RETURN [<表达式 表达式>] 表达式
(2)按“值”传递:形参发生改变时 不影响实参的值 当实参 按 形参发生改变时,不影响实参的值 传递 形参发生改变时 不影响实参的值;当实参 是常量或表达式时,参数传递的方式为按 参数传递的方式为按“ 传递。 是常量或表达式时 参数传递的方式为按“值”传递。 SET UDFPARMS TO REFERENCE 递。 设置为按“引用”传 设置为按“引用”
将被隐藏。 将被隐藏。
SET TALK OFF V1=100 V2=150 DO P ?V1,V2 LIST MEMORY LIKE V* RETU *过程 过程P 过程 PROC P PRIVATE V1 &&V1为私有变量 为私有变量 V1=500 V2=1000 ?V1,V2 LIST MEMORY LIKE V* RETURN
18
CLEAR MEMORY DO A ?NUM RETU PROC A PRIVATE NUM NUM=2 DO B RETU PROC B NUM=NUM+5 ?NUM
19
RETU
2、变量的隐藏 、
当同一模块中出现同名的各种变量时, 当同一模块中出现同名的各种变量时,上层模块中已经存在的内存变量
格式: 过程文件1,…] 格式:set procedure to [过程文件 过程文件 说明:打开过程文件后,则该过程文件中的所有过程都能被调用。 说明:打开过程文件后,则该过程文件中的所有过程都能被调用。
*过程文件的关闭
格式: 格式:set procedure to 说明:关闭所有打开的过程文件。 说明:关闭所有打开的过程文件。
8
(2)自定义函数的调用 ) 格式: 函数名([<实际参数表 实际参数表>]) 格式 函数名 实际参数表
SET TALK OFF STORE 0 TO P,S FOR N=1 TO 10 S=S+JC3(N) ENDFOR ?”SUM=”,S RETURN FUNCTION JC3 && 建立求 !的自定义函数 建立求X!的自定义函数JC3 PARAMETER X P=1 FOR M=1 TO X P=P*M ENDFOR RETURN P && 返回变量 的值,P不可省略 返回变量P的值 的值, 不可省略 ENDFUNC
4
说明:过程可放在主程序代码的后面, 说明:过程可放在主程序代码的后面,也可将多个过程 保存在一个独立程序文件中。 保存在一个独立程序文件中。 (2) 过程文件
*过程文件的建立:和程序文件的建立方法一样,文件扩展名 过程文件的建立:和程序文件的建立方法一样,文件扩展名.PRG * 过程文件的打开:调用过程文件中的过程前,必须打开过程文件。 过程文件的打开:调用过程文件中的过程前,必须打开过程文件。
运行结果: 运行结果: 15 N 14 N 13 Y 12 N
14
6.3.3 模块中变量的作用域
1、变量的分类(按作用域) 、变量的分类(按作用域) (1)公共变量(全局变量) )公共变量(全局变量) 格式:PUBLIC <内存变量名表 格式: 内存变量名表> 内存变量名表 功能: 建立公共的内存变量,初始值为 初始值为.F.。 功能: 建立公共的内存变量,初始值为.F.。 说明: 说明: 作用范围为所有模块。 作用范围为所有模块。 程序运行结束返回到命令窗口后, 程序运行结束返回到命令窗口后,公共变量不会 自动释放。只有执行CLEAR MEMORY、 自动释放。只有执行 、 RELEASE、QUIT等命令后,才被释放。 等命令后, 、 等命令后 才被释放。
2
计算1到 之间整数的阶乘和 之间整数的阶乘和。 计算 到10之间整数的阶乘和。 *主程序 主程序MAIN.PRG 主程序 SET TALK OFF STORE 0 TO P,S FOR N=1 TO 10 DO JC1 WITH N S=S+P ENDFOR ?”SUM=”,S RETURN
3
*子程序 子程序JC1.PRG 子程序 PARAMETER X P=1 FOR M=1 TO X P=P*M ENDFOR RETURN
第七章 VFP 程序设计
皖南医学院 计算机教研室
1
6.3 模块化程序设计
6.3.1 模块的定义与调用
1、子程序的定义和调用 、
(1)子程序的定义 子程序的定义 命令: COMMAND<子程序文件名 子程序文件名> 扩展名为.PRG. 命令:MODIFY COMMAND<子程序文件名> ,扩展名为.PRG. 子程序是以一个单独程序文件存放子程序代码的。 子程序是以一个单独程序文件存放子程序代码的。 是以一个单独程序文件存放子程序代码的 (2)子程序的调用 子程序的调用 格式: 子程序文件名>[WITH <实际参数表 实际参数表>] 格式:DO<子程序文件名 子程序文件名 实际参数表 功能:调用 子程序文件名 所指定的子程序。 子程序文件名>所指定的子程序 功能:调用<子程序文件名 所指定的子程序。
clear memory do a retu proc a local num num=2 do b retu proc b num=num+5 ?num retu
17
(3)私有变量:在程序中直接定义或使用的非全局变量, )私有变量:在程序中直接定义或使用的非全局变量, 作用范围限于此过程和此过程中的过程。 作用范围限于此过程和此过程中的过程。 格式: 内存变量名表> 格式:PRIVATE <内存变量名表 内存变量名表 功能: 定义私有内存变量,初始值为 初始值为.F.。 功能 定义私有内存变量 初始值为 。
20
SET TALK OFF CLEAR PUBLIC X1 SET TALK ON STORE "abc" TO X1,X2,X3,X4 ?"主程序第一次显示:" 主程序第一次显示: 主程序第一次显示 LIST MEMORY LIKE X*
PROC P1 LOCAL X2 PRIVATE X4 STORE "xxx" TO X1,X2,X3,X4 ?"过程 显示:" 过程P1显示 过程 显示: LIST MEMORY LIKE X* DO P2 RETURN ENDPROC PROC P2 STORE "yyy" TO X1,X2,X3,X4 ?"过程 显示:" 过程P2显示 过程 显示: LIST MEMORY LIKE X* RETURN ENDPROC
7
3、自定义函数的定义与调用 、
(1)自定义函数的定义 自定义函数的定义 格式: 格式: FUNCTION <函数名 函数名> 函数名 [PARAMETERS <形式参数表 形式参数表>] 形式参数表 <语句序列 语句序列> 语句序列 [RETURN [<表达式 表达式>]] 表达式 [ENDFUNC] 说明: 过程开始:FUNC <函数名 函数名> 说明 * 过程开始 函数名 * 过程结束 过程结束:ENDFUNC * 过程返回 过程返回:RETURN [<表达式 表达式>] 表达式
运行结果: 运行结果: A=8 B=10 A=18 B=10
分析如下程序: 分析如下程序: SET TALK OFF FOR I=15 TO 12 STEP -1 ?I,JC(I) ENDFOR SET TALK ON RETURN FUNCTION JC PARA M P=1 FOR J=2 TO M-1 IF MOD(M,J)=0 P=0 EXIT ENDIF ENDFOR RETURN IIF(P=1,"Y","N")
15
定义全局变量 PUBLIC NUM NUM=1 DO A RETURN
PROC A NUM=NUM+5 DO B RETU 运行结果: 运行结果:12
PROC B NUM=NUM+6 ?NUM RETU
16
只能在建立它的模块中使用。 (2)局部变量 :只能在建立它的模块中使用。 ) 格式:LOCAL <变量名表 格式: 变量名表> 变量名表 局部变量只能在定义它 的模块中使用,不能缩写。 的模块中使用,不能缩写。 当定义局部变量的模块 程序运行结束时, 程序运行结束时,该局部 变量会自动释放。 变量会自动释放。 模块中用参数语句 LPARAMETERS<形式参 形式参 数表>定义的形参为局部 数表 定义的形参为局部 内存变量。 内存变量。
12
*例6-35 例 SET TALK OFF CLEAR A=8 B=10 ?”A=”,A,”B=”,B DO P WITH A, (B) ?”A=”,A,”B=”,B RETURN PROC P PARAMETERS M,N M=M+N N=M*N RETU ENDP
相关文档
最新文档