当前位置:文档之家› 第七章 VFP程序设计基础

第七章 VFP程序设计基础

第七章VFP程序设计基础大纲要求

1、命令文件的建立与运行:

(1)程序文件的建立。

(2)简单的交互式输入输出命令。

(3)应用程序的调试与执行。

2、结构化程序设计:

(1)顺序结构程序设计。

(2)选择结构程序设计。

(3)循环结构程序设计。

3、过程与过程调用。

(1)子程序设计与调用。

(2)过程与过程文件。

(3)局部变量和全局变量、过程调用中的参数传递。

4、用户定义对话框(MESSAGEBOX)的使用。

知识要点

1.Visual FoxPro的工作方式

Visual FoxPro系统提供有三种工作方式:即命令操作方式、菜单操作方式及程序文件操作方式。

2.程序的概念

有关此Visual FoxPro程序的几点说明:

(1)注释语句

【格式1】NOTE<注释内容>

【格式2】*<注释内容>

【格式3】&&<注释内容>

【功能】为程序行加注释说明,以增强程序文件的易读性。

(2)对话开关语句

【格式】SET TALK OFF|ON

【功能】关闭或打开命令执行时的对话开关

(3)命令的分行

Visual FoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;若一条命令太长,一行写不下,也可分行书写,并在分行处加上续行符“;”,再按回车键。

3.建立或修改程序文件

可用两种方式调用系统内置的文本编辑器建立或修改程序文件:

命令方式

MODIFY COMMAND[<盘符>][<路径>]〈程序文件名〉

MODIFY FILE[<盘符>][<路径>]〈程序文件名〉

菜单方式

打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”

4.保存程序

程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W复合键,在“另存为”对话框中指定程序文件的存放位置和文件名,并单击“保存”按钮保存程序文件并退出文本编辑器。程序文件的默认扩展名是.PRG。

5.执行程序

程序文件建立后,可以用多种方式、多次执行它。下面是两种常用的方式。

(1)菜单方式

①单击【程序】|【运行】菜单项,打开“运行”对话框,选择程序文件,单击“运行”按钮;

②从文件列表框中选择要运行的程序文件,打开该程序文件,并单击“运行”命令按钮。

(2)命令方式

【格式】DO[<盘符>][<路径>\]<文件名>

【功能】执行指定<盘符>、<路径>下的程序文件

注意:

执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕。以下是终止程序运行的几个常用命令:

①CANCAL:终止程序运行,清除所有私有变量,返回命令窗口。

②DO:转去执行另一个程序。

③RETURN:结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口。

④QUIT:退出VF系统,返回到操作系统。

例题:

(1)在Visual FoxPro中,程序文件的扩展名为____。

A..prg

B..qpr

C..scx

D..sct

【解析】本题考查的知识点是程序文件的扩展名。在V1sual FoxPro中,程序文件的扩展名为.prg。

答案A是程序文件的扩展名。选项B是生成的查询程序文件的扩展名。选项C是表单文件的扩展名。选项D是表单备注文件的扩展名。

【答案】A

(2)在Visual FoxPro中,用来建立程序文件的命令是____。

A.OPEN COMMAND<文件名>

B.CREATE COMMAND<文件名>

C.MODIFY COMMAND<文件名>

D.以上答案都不对

【解析】本题考查的知识点是建立程序文件的命令的使用。在VisualFoxPro中,建立程序文件的命令是MODIFY COMMAND<文件名>。

选项A和B语法错误。选项C是建立程序文件的命令。选项D的说法错误。

【答案】C

6.输入命令INPUT

【格式】INPUT[<提示信息>]TO<内存变量>

【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量,可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给<内存变量>。

注意:

(1)如果选用<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息。

(2)输入的数据可以是常量、变量、表达式。但不能不输入任何内容直接按回车。

(3)输入字符串时必须加定界符,逻辑常量必须用圆点定界,日期常量用大括号(如{^20 04-12-23})

【举例】

1.输入”张航”到XM变量中。

INPUT”请输入员工姓名:”TO XM

请输入员工姓名:”李小林”

?XM

李小林

2.输入逻辑值到HF变量中表示婚姻状况。

INPUT”已婚否:”TO HF

已婚否:.T.

?HF

.T.7.输入命令ACCEPT

【格式】ACCEPT[<提示信息>]TO<内存变量>

【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。该命令只接受字符型数据,输入的字符串不需要加定界符。

注意:

(1)如果选用<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息。

(2)该命令只能接收字符串。在输入字符串时不需要加定界符。

(3)如果不输入任何内容直接按回车。系统会把空串赋给指定的内存变量。

【例1】输入“平衡”到XM变量中。

ACCEPT”请输入教师姓名:”TO XM

请输入教师姓名:平衡

?XM

平衡

【例2】编程从键盘输入某数据库的文件名,要求打开该数据库并显示其内容。程序文件名为PA1.PRG。

MODI COMMAND PA1

SET TALK OFF

CLEAR

ACCEPT"请输入数据库名:"TO A

OPEN DATABASE&&A

ACCEPT"请输入表名:"TO B

USE&&B

LIST

USE

SET TALK ON

RETURN8.WAIT命令

【格式】WAIT[<提示信息>][TO<内存变量>][WINDOW[AT<行>,<列>]][NOWAIT][CL EAR|NOCLEAR][TIMEOUT<数值表达式>]

【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。

若选择可选项[TO<内存变量>],将输入的单个字符作为字符型数据赋给指定的<内存变量>;若用户是按Enter键或单击鼠标,<内存变量>的值为空串。

若省略所有可选项,屏幕显示“键入任意键继续……”默认提示信息。

【例】在STUDENT数据库的STUD表中显示任意一个系学生的情况。

程序文件名为PA2.PRG

SET TALK OFF

CLEAR

OPEN DATABASE学生管理

USE学生

WAIT"请输入待查学生的学号(1-3):"TO N

IF VAL(N)<1.OR.VAL(N)>3

WAIT"输入无效,结束程序运行!"WINDOW TIMEOUT 5

RETURN

ELSE

STORE"0"+N TO AAA

LIST FOR学号=AAA

ENDIF

CLOSE DATABASE

SET TALK ON

RETURN

三条输入命令的异同

INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。

ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;

WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;

例题

1.下列关于Visual FoxPro输入输出指令的说法不正确的是____。

A.INPUT命令用来从键盘输入数据

B.用INPUT命令输入数据时,若不输入任何数据,直接按回车键,则系统会把空字符赋给指定的内存变量

C.ACCEPT命令只能接收字符串

D.WAIT命令能暂停程序执行,直到用户按任意键或单击鼠标时继续程序

【解析】本题考查的知识点是一些基础知识。本题一目了然选择B。

【答案】B

9.程序结构

是指程序中命令或语句执行的流程结构。Visual FoxPro提供了三种基本结构:顺序结构、选择结构、循环结构。

10.顺序结构程序设计

是程序中最简单、最基本的结构。使用该结构只需先把过程的各个步骤详细列出,然后将有关命令按处理的逻辑顺序自上而下排列起来。

Visual FoxPro就能按程序排列的顺序,一条接一条地依次执行。

11.分支结构形式有如下三种:

(1)单向分支

单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。

①语句格式:

IF〈条件表达式〉

〈命令行序列〉

ENDIF

②语句功能:

该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈命令行序列〉;否则,执行ENDIF后面的第一条命令。

【例】求一元二次方程AX2+BX+C=0的实根。程序文件名为PA3.PRG。

SET TALK OFF

CLEAR

INPUT"A="TO A

INPUT"B="TO B

INPUT"C="TO C

Z=B^2-4*A*C

IF Z>=0

X1=(-B+SQRT(Z))/(2*A)

X2=(-B-SQRT(Z))/(2*A)

?X1,X2

ENDIF

SET TALK ON

RETURN

(2)双向分支

双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。

①语句格式:

IF〈条件表达式〉

〈命令行序列1〉

ELSE

〈命令行序列2〉

ENDIF

②语句功能:

该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈命令行序列1〉中的命令;否则,执行〈命令行序列2〉中的命令;执行完〈命令行序列1〉或〈命令行序列2〉后都将执行ENDIF后面的第一条命令。

【例】编写一密码校验程序(假设密码为ABC)。程序文件名为PA4.PRG。

SET TALK OFF

CLEAR

ACCEPT“请输入您的密码:”TO AAA

IF AAA=”ABC”

CLEAR

?”欢迎使用本系统!”

ELSE

?”密码错误!”

WAIT

QUIT

ENDIF

SET TALK ON

(3)多向分支

多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。

①语句格式:

DO CASE

CASE〈条件表达式1〉

<命令行序列1〉

CASE〈条件表达式2〉

<命令行序列2〉

……

CASE〈条件表达式N〉

〈命令行序列N〉]

[OTHERWISE

命令行序列N+1〉]

ENDCASE【例】假设收入(P)与税率(R)的关系如下表,编程求税金。程序文件名为PA 5.PRG。

0 P<800

R=0.05 800≤P<2000

0.08 2000≤P<5000

0.1 P≥5000

SET TALK OFF

CLEAR

INPUT“请输入收入:”TO P

DO CASE

CASE P<800

R=0

CASE P<2000

R=0.05

CASE P<5000

R=0.08

OTHERWISE

R=0.1

ENDCASE

TAX=P*R

?”税金为:”,TAX

SET TALK ON

RETURN

②语句功能:

该语句根据给出的N个〈条件表达式〉的值,选择N+1个〈命令行序列〉中的一个执行。当所有CASE中〈条件表达式〉的值都是假时,如果有OTHERWISE项,则执行〈命令行序列N+1〉,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。

(4)使用分支语句应注意的几点

①IF……ENDIF和DO CASE……ENDCASE必须配对使用,DO CASE与第一个CAS E〈条件表达式〉之间不应有任何命令。

②〈条件表达式〉可以是各种表达式或函数的组合,其值必须是逻辑值。

③〈命令行序列〉可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。

④DO CASE……ENDCASE命令,每次最多只能执行一个〈命令行序列〉。在多个C ASE项的〈条件表达式〉值为真时,只执行第一个〈条件表达式〉值为真的〈命令行序列〉,然后执行ENDCASE的后面的第一条命令。

【例】下面程序段的功能是计算-个函数f(x)的值,请写出表达式。

SET TALK OFF

INPUT“请输入x值:”TO x

DO CASE

CASE x<-l

f=0

CASE X<1

f=2*x*x-x

CASE x<5

f=x

OTHERWISE

f=0

ENDCASE

?…f(X)=?,f

SET TALK ON

RETURN

由以上程序得A:f(x)=____。

【解析】本题考查的知识点是用分支语句来实现求一个函数的值。由分支语句的特点和程序的结构可知,函数f(x)是一个分段函数,我们可以较为容易地写出函数的表达式。

【答案】

0(x<-1或x>5)

f(x)=2x2-x(-1<=x<1)

x(1<=x<5)

12.循环结构程序设计

循环结构也称为重复结构,是指程序在执行过程中,其中的某段代码被重复执行若干次。被重复执行的代码段通常称为循环体。

Visual FoxPro支持循环结构的语句包括:

DOWHILE-ENDDO、

FOR-ENDFOR

SCAN-ENDSCAN语句。

(1)DO WHILE循环语句

【格式1】DO WHILE<条件表达式>

<语句序列>

ENDDO

【功能】执行该语句时,先判断<条件表达式>是否成立,如果为真,执行<循环体>,执行到ENDDO时,返回到DO WHILE,再判断<条件表达式>。若条件为假,则结束循环,执行ENDDO后面的语句。

【格式2】

DO WHILE<条件表达式>

<语句序列1>

[LOOP]

<语句序列2>

[EXIT]

<语句序列3>

ENDDO

LOOP语句:强行返回到循环开始语句。

EXIT语句:强行跳出循环,接着执行

ENDDO后的语句

DO WHILE循环一般由如下部分组成:

①初始部分。通常位于程序开头,用来保证循环程序能够开始执行。如果第一次判断条件时,条件为假,则循环体一次都部执行。

②工作部分,即循环体。这部分除了需要重复执行的命令外、还应包括对于循环控制变量的修改,使循环进行有限次以后能够自动终止。

③控制部分。控制部分应保证循环程序按预定条件恰到好处地执行完毕。做到这一点,不仅要选择适当的入口条件,还要给有关的量设定适当的初值,并在循环体中对有关的量进行适当的修改,关键在于这三者恰到好处地配合。【例1】编程求1+2+3+……+100之和。程序文件名为PA6.PRG。

SET TALK OFF

CLEAR

S=0

I=1

DO WHILE I<=100

S=S+I

I=I+1

ENDDO

?”1+2+3+……+100=”,S

SET TALK ON

RETURN

【例2】逐条显示在“学生管理”数据库的“学生”表中性别为“男”的所有记录。程序文件名为PA7.PRG。

SET TALK OFF

CLEAR

OPEN DATABASE学生管理

USE学生

DO WHILE.NOT.EOF()

IF性别=”男”

DISPLAY

ENDIF

SKIP

ENDDO

相关主题
文本预览
相关文档 最新文档