VFP第6章 程序设计基础
第六章 Visual FoxPro程序设计基础
12
6.1.3 程序文件的编译和执行(1)
1. 编译 编译是将源程序转换成目标程序。 编译有命令和菜单两种方式。 (1)命令方式
– 命令格式:
Compile <程序文件名>|?
– 命令功能:对指定的程序文件进行编译。
(2)菜单方式
详见课本6.1.3节
13
6.1.3 程序文件的编译和执行(2)
2. 执行 程序文件输入存盘或再经编译后,系统可自动连 续执行文件中的每条命令或语句。 程序文件的执行有命令和菜单两种方式。 (1)命令方式
姑娘爱小伙(搞笑版)
if( boy.有房() and boy.有车() ){ boy.set(nothing); return girl.嫁给(boy); } else{ 年龄++; girl.感情--; } return girl.goto( another_boy);
}
6
result love(boy, girl ){ if( boy.有房() and boy.有车()){ boy.set(nothing); return girl. 嫁给(boy); } if( girl.愿意等 ()){ while(!(boy.赚钱 > 100,000 and girl.感情 > 8 )){ for ( day=1; day <=365; day++){ if( (day == 情人节 or day == girl.生日)& and boy.givegirl(玫瑰)) girl.感情++; else girl. 感情--; boy.拼命赚钱(); }//for }//while if( boy.有房() and boy.有车() ){ boy.set(nothing); return girl.嫁给(boy); } else{ 年龄++; girl.感情--; }//if愿意等 return girl.goto( another_boy); }
vfp5
24
例:随机产生一个70~80之间的数:
x=0 do while .T. x=RAND()*100 if x>70 and x<80 exit endif enddo ?x
25
输出借阅表 中还书日期 从2011年开 始的读者的 借书证号、 条形码和还 书日期,并 统计这些读 者的人数。
USE 借阅 STORE 0 TO n DO WHILE !EOF() IF hsrq<{^2011/1/1} SKIP LOOP ENDIF ?jszh,txm,hsrq n=n+1 SKIP ENDDO ?"还书日期从2011年开始的 读者有:"+STR(n,3)+"人" USE
store 0 to n0,n1,n2,n3,n4,n5,n6,n7,n8,n9
35
过程与用户自定义函数
自定义函数或过程可存放在独立的程序文 件(.PRG)中或数据库文件(存储过程) 中。
自定义函数: FUNCTION myfunc [PARAMETERS] 代码区 [RETURN] ENDFUNC
28
死循环
x=1 do while x>0 x=x+1 enddo
按ESC键退出
29
SCAN---ENDSCAN
只适用于对表记录的操作 设教师(js)表中有100条记录,运行
下列程序后,屏幕上显示的记录有 _____条
30
clear use js scan ?recno() endscan use
26
store 0 to m,n do while m<10 n=n+2 m=m+n enddo ?m,n
VFP课件第6章-程序设计基础
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第六章课件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章
目录
上一张
结束
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系统,返回到操作系统。
VFP第六章对象模型和事件模型
第六章对象模型与事件模型从程序设计的方法来看,Visual FoxPro不仅支持结构化的程序设计,而且支持面向对象的程序设计(object-oriented programming,简称OOP),并提供了许多相关的可视化的开发工具。
6.1 面向对象的程序设计概述面向对象的程序设计是通过对类、子类和对象等的设计来体现的。
类(class)和对象(object)的关系密切,但并不相同。
类定义了对象特征以及对象外观和行为的模板,它刻划了一组具有共同特性的对象。
对象是类的一个实例,包括了数据和过程(操作)。
例如“汽车”就是一个类,它抽取了各种汽车的共同特性,而每一部具体的汽车就是一个对象,它是“汽车”这个类的一个实例。
在一个运行表单上的控件就是一个对象。
在Visual FoxPro中,应用程序对象主要指表单、表单集,以及表单中所包含的多个控件。
表单(form)就是用户在Windows环境下所看到的各种窗口与对话框;表单集(formset)是指包含一个或多个表单的集合,表单集中的表单可以统一处理;控件(control)对象是放在一个表单上用以显示数据、执行操作或使表单更易阅读的一种图形化对象,如文本框、标签或命令按钮等。
在Visual FoxPro中,系统提供了一些类,用户也可以根据需要自定义类。
基类(base class)是Visual FoxPro 系统提供的内部定义的类,可用作其他用户自定义类的基础。
用户自定义类(user-defined class)与Visual FoxPro 基类相似,但由用户定义,并且可用来派生子类。
在面向对象的程序设计中,通过类可以简化应用程序的设计,因为类具有继承性、多态性、封装性、抽象性等特点。
继承性(inheritance)说明了子类延用父类特征的能力。
如果父类特征发生改变,则子类将继承这些新特征。
例如,如果为一个编辑控件添加了一个新属性IsBold,那么以此控件为基础派生的子类也将拥有IsBold属性。
第六章 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、类是一组具有相同属性和相同操作对象的集合,类之间共享属性和操作的机制称为()。
A、多态性B、动态绑定C、静态绑定D、继承2、以下有关VFP表单的叙述中,不正确的是()。
A、所谓表单就是数据表清单B、VFP表单是一个容器类的对象C、VFP的表单可以用来设计类似于窗口或对话框的用户界面D、在表单上可以设置各种控件对象3、表单内的控件都有一个默认名称,下拉列表框的默认名称是()。
A、combo1B、command1C、check1D、caption4、关于表单中的列表框和组全框的区别,下面叙述不正确的是()。
A、列表框提供一个列表给用户选择,而组合框不提供列表B、列表框任何时候都显示它的列表,而组合框通常只显示一项内容C、列表框中只能选择数据不能输入数据,而组合框可以选择或输入数据D、列表框只能显示数据列表供选择,而组合框兼有列表框和文本框的功能5、在表单中加入一个复选框check1和一个文本框text1,编写check1的click事件代码如下:thisform.text1.visable=this.value,则单击复选框后()。
A、文本框可见B、文本框不可见C、文本框是否可见由复选框当前值决定D、文本框是否可见与复选框当前值无关6、以下各项中,不可以作为文本框控件数据来源的是()。
A、数值型字段B、内存变量C、字符型字段D、备注型字段A类基础训练题一、填空题1、在面向对象程序设计中,类具有三个主要的特性,它们分别是_________、_________和_________。
2、VFP提供了一系列基类来支持用户派出生新类,VFP的基类有两种,它们是_________和_________。
3、在面向对象的程序设计中,对象所具有的特征被称为_________;对象的_________就是对象可以执行的动作或它的行为。
4、VFP提供了三种方式来创建表单,它们分别是使用_________创建表单;使用_________创建一个新的表单或修改一个已经存在的表单;使用“表单”菜单中的_________创建一个简单的表单。
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是一种面向对象的语言,所以系统提供一种称之为对象的变量。存储对象的变量,是一种新变量。
《Visual Foxpro 6.0程序设计基础教程》教学课件 VF第6单元
程序设计基础教程
三、删除记录命令
程序设计基础教程
【命令格式】
DELETE FROM tablename [WHERE condition]
【命令说明】 此命令为逻辑删除记录,假设希望将记录从表中真正删除,应在执行
DELETE命令后再执行PACK 命令,此操作称为物理删除。
二、修改表结构命令 〔1〕添加字段的命令格式
程序设计基础教程
ALTER TABLE tablename1 ADD fieldname1 fieldtype [(fieldwidth [, nprecision])] [NULL | NOT NULL] [CHECK lexpression1 [ERROR cmessagetext1]][DEFAULT eexpression1] [PRIMARY KEY | UNIQUE] [REFERENCES tablename2 [TAG tagname1]]
或
程序设计基础教程
INSERT INTO tablename FROM ARRAY arrayname | FROM MEMVAR
【命令说明】 SQL语言用INSERT 命令向表中添加数据,反复使用该命令可添加多行 数据,新记录追加在表的尾部。
二、更新记录命令 【命令格式】
UPDATE tablename SET column_name1=eexpression1 [, column_name2=eexpression2, …] [WHERE column_name3=eexpression3]
cmessagetext1]] [DROP DEFAULT ] [DROP CHECK]
〔3〕删除或重命名表中字段的命令格式
VFP第6章表单设计1
②在事件代码中编写命令:
③设xscj是一个公共变量,xscj="学生成绩", 则该属性的命令可以写为
㈡文本框控件 文本框控件显示用户输入的文本信息。 文本框显示的文本信息受Value属性控制,可输 入数据(N型、C型、D型或L型),也可输出数据。 文本框中的内容也可使用 Visual FoxPro编辑 功能进行剪切、复制和粘贴。
例:将文本框与SB.DBF中编号字段数据绑定。当编 辑文本框信息时,与之相关的SB.DBF数据作相应变 化;反之,当修改SB.DBF数据时,文本框显示也会 作相应变化。
表单文件名:文本框数据源1.SCX
例6-6:文本框与学生.DBF的M型和G型字段数据绑定。 ⑴在表单上创建Text1,Text2; ⑵在数据环境设计器中添加学生.DBF; ⑶为Text1,Text2建立数据源。当修改学生.DBF的M型 或G型数据时,控件数据值也随数据源数据而改变。
属性窗口:显示/设置/修改当前对象的属性值。 代码窗口:显示/设置/修改当前对象的“代码”。
表单控件工具栏:显示/隐藏表单控件工具栏。 调色板工具栏:为控件设置前景色和背景色。 布局工具栏:使选定的控件处于居中、对齐等。
表单生成器:可定义表单的样式和布局。 自动格式:为选定控件提供格式化样式。
例6-9:创建表单,当记录显示首记录时,“第 一条”按钮不可用,当记录显示末记录时,“最 后一条”按钮不可用,当记录不是显示首记录或 末记录时,“上一条”或“下一条”按钮恢复使 用。
表单文件:EX6-9命令按钮组.scx
设计步骤: ⑴创建标签、命令按钮组、命令按钮,设置Caption 属性; ⑵设置数据环境,将有用字段拖入表单; ⑶编写命令按钮组CommamdGroup1的Click事件代码;
VFP6程序设计基础
VFP6支持多种数据类型和函数,包括字符串、数值、日期和时间等, 方便开发人员进行数据处理和计算。
良好的兼容性和扩展性
VFP6与早期版本的Visual FoxPro兼容,同时提供了丰富的API和工 具箱,方便开发人员扩展应用程序的功能。
VFP6的应用领域
01
数据库管理
VFP6适用于小型到中型的数据库 管理系统开发,可以用于企业、 政府和组织的数据存储和管理。
类型转换函数
字符串转数值
将字符串转换为数值类型。
数值转字符串
将数值类型转换为字符串类型。
字符串转日期
将字符串转换为日期类型。
日期转字符串
将日期类型转换为字符串类型。
04
VFP6数据库操作
数据库的创建与打开
01
总结词
创建数据库和打开现有数据库的 方法
创建数据库
02
03
打开数据库
使用VFP6的数据库设计器或命令 行工具,根据需求创建一个新的 数据库。
数据删除
使用SQL语句或VFP6提供的表单设计器,删除数据 库中的数据记录。
05
VFP6表单设计
表单的创建与修改
创建表单
使用表单向导或表单设计器创建表单 ,选择所需的表单类型和布局。
修改表单
在设计视图中,可以添加、删除或修 改表单控件,调整控件位置和大小, 设置控件属性等。
表单控件的使用
01
标签控件
代码重用与模块化
将常用功能封装为函数或模块,减少重复代 码。
程序的发布与分发
编译与打包
将源代码编译为目标平台可执行文件, 并进行必要的文件打包。
文档编写
提供必要的用户手册和技术支持文档。
程序设计基础
9.格式化输入输出命令 ⑴格式化输出语句:@…SAY 格式:@〈行,列〉SAY〈表达式〉 功能:在指定的行和列输出表达式的值。 说明: ①〈行,列〉确定光标的位置。把显示屏看作是由行和列组成 的二维坐标系,其坐标系为25行*80列,规定行值取值范围是 整数0~24,列值取值范围是整数0~79。那么,屏幕最左上角 字符的坐标就为(0,0),最右下角字符的坐标就为(24, 79)。 例如:@5,30 SAY “ABCD” 执行结果将在屏幕的第5行第30列位置开始显示字符串ABCD
或MODIFY file [<文件名>|?]
① 第一条命令中,文件的默认扩展名为.PRG,可省略,第 二条命令中,建立程序文件时文件扩展名.PRG必须同时输 入,不能省略。 ② 在文件名前可直接指明该文件保存的路径。 ③ 用^END(即CTRL+END键,以下类似)或^W将编辑结果存 盘,或执行“文件”菜单中的“保存”命令存盘;用^Q或 ESC键放弃存盘,并退出编辑程序。
命令8. 非格式化交互式命令 ⑴单字符接收命令(即等待命令) 格式:WAIT[<提示文本>] [TO<内存变量>][WINDOW[AT< 行>,<列>] [NOWAIT]] [CLEAR|NOCLEAR] [TIMEOUT<数 值表达式>] 功能:暂停程序的执行,等待用户输入一个字符或按任 一键。也可只用于输出一条提示信息。
2.结构化程序设计方法
结构化程序指整个程序由顺序、选择、循环三种基本结构组成。 (1)自顶向下逐步求精:从全局出发,通盘考虑,把问题的整 体分解成若干个相对独立的小问题,然后再把小问题分解为若 干个相对独立的更小的问题,直到能表示成程序为止。
(2)模块化设计:由一个大问题分解成若干个相对独立的小问 题,每个小问题实现一定的功能,称为功能模块。对大的功能 模块,采用自顶向下逐步求精的方法划分为更小的功能模块。 各功能模块的程序可单独编写和调试,这样便于多人协助完成 较大型的程序设计。
第6章 vf程序设计基础课件
①子程序的调用与返回(不带参数)
在主程序中发出调用命令: Do <子程序文件名> 在子程序中发出返回语句: Return [To Master|To <程序文件名>]
例:设计一个计算圆面积的子程序,并要求在主 程序中带参数调用它。
*主程序:带参调用
*子程序:计算面积
*main.prg
定位输出命令
set talk off
clear
use student
Say:输出常量数据
@3,10 say "学号:" get 学号 Get:编辑及显示变量
@5,10 say "姓名:" get 姓名
@7,10 say "入学成绩:" get 入学成绩
@9,10 say "专业:" get 专业
Read
【例】逐条显示学生表中女生记录。
Use 学生 Scan For 性别=“女”
Display Endscan
Use 学生 Do While !Eof()
If 性别=“女” Display
EndIf skip EndDo
【习题】统计专业为“应用数学”的男、女学生人数。
小结:
• ①Do While和EndDo 、For和EndFor、Scan和 EndScan必须配对使用。
6.2 VFP程序中常用的输入、输出命令
输入命令 输出命令 辅助命令
输入字符类型命令
Accept “请输入表名” to bm &&输入字符型常量,不需要定界符 Use &bm &&打开任意数据库文件的通用命令 list
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例6.7 编程显示下列三角形图案 * *** ***** 程序: clear ? “ *” ?” ***” ?”*****” return 作业: 编程显示下列平行四边形图案: ***** ***** *****
4.注释 (1)注释语句 1)格式 */NOTE <注释内容> 2)功能 注释语句是非执行语句,它们不对计算机产生任何操 作,• 仅对程序起注解作用。 仅 (2)行末注释 行末注释用在语句(命令)末尾,以“&&”起头,后 跟本行的注释内容。
例: 从键盘输入若干个非零的数值,当输入数值“0”时结束输入, 统计有效数值的个数和它们的平均值。 CLEAR S=0 &&存放累加和 N=0 &&存放数值个数 DO WHILE .T. &&这是一个永真循环 INPUT "请输入一个数值,[输入零时结束]" TO SZ IF SZ=0 EXIT ENDIF S=S+SZ N=N+1 ENDDO ? "共输入有效数值个数:",N ? "平均值是:",S/N RETURN
例6.6: MESSAGEBOX函数举例
MESSAGEBOX函数举例
MESSAGEBOX(“欢迎使用本系统!”)
对话框图示ቤተ መጻሕፍቲ ባይዱ
MESSAGEBOX(“删除记录?”,1+48+256)
MESSAGEBOX(“继续执行吗?”,3,”请确认”)
3.环境设置语句 (1)清屏语句:CLEAR 1)格式:CLEAR 2)功能:清空屏幕或当前窗口中显示的内容。 (2)环境设置语句:SET 设置系统环境和状态的语句为 SET语句,SET语句实际上是一个语句组, 分为两种格式: 格式Ⅰ SET <参数> ON/OFF 格式Ⅱ SET <参数> TO <参数值> 常用的几个SET语句: (1) SET DEFAULT TO <路径> 功能:设置默认的工作目录。 (2) SET PATH TO <路径> 功能:设置搜索路径。 (3) SET TALK ON/OFF 功能:控制是否使某些命令产生屏幕显示(P131提 示) (4) SET PRINT ON/OFF 功能:控制屏幕上的输出内容是否同时送打印机打 印。
例:从键盘接收两个数, 在屏幕输出大数。 INPUT "X=" TO X INPUT "Y=" TO Y IF X<Y &&如果X<Y, 把X与Y交换 T=X &&引入第三 个变量T,进行三角交换 X=Y Y=T ENDIF ?X RETURN
2.双分支选择结构 (1)格式 IF <条件> <语句序列1> ELSE <语句序列2> ENDIF (2)功能: 双分支选择结构流程图 程序执行时,先判断条件的 值是否为真, 然后决定程序 运行的走向。 (3)P133 提示
6.1 程序文件的建立与运行
1.程序文件的概念 程序是为实现某一具体任务而按照一定的控制结构编制的命令序 列。将程序以文件的形式存储在磁盘上,这种文件称为“程序文 件”。 程序一般由以下要素组成: (1)变量:参与运算,用于记录、存储程序的中间及最终结果。 (2)普通语句:操作数据库的命令(含SQL命令)和专用于程序设 计的输入输出等语句。 (3)程序流程语句:控制程序走向的语句,如选择、循环等。 (4)过程与函数:完成特定功能或计算的子程序模块。 2.程序文件的建立与编辑 三种建立方法: 1)从项目管理器新建程序文件 2)从“文件”菜单新建程序文件。 3)在命令窗口中执行命令:MODIFY COMMAND <程序文件名>
6.3 顺序结构程序设计
1.顺序结构 程序运行时,按照命令(语句)的排列顺序逐条执行,这种结构 就称为顺序结构。 2.简单的输入输出语句 (1)数据输入语句:INPUT 1)格式: INPUT [<提示信息>] TO <内存变量名> 2)功能:暂停程序运行,显示提示信息,等待用户从键盘上输入数 据,用户可以输入任意合法的表达式。 例6.4 运行下段程序: input “请输入一个数字:” to a1 input “请输入一个字符串:” to b1 (4)简单输出语句:?、?? 1)格式:?/?? <表达式表>
条件2
条件n
语句序列2
语句序列n
语句序列n+1
ENDCASE的下一语句
多分支选择结构流程图
例:当输入0~6之间的整数时,系统便显示星期日、星期一……星期六的英语单词,否则 显示“输入数据出错”的信息,试编程实现之。 clear input “请输入一个整数” to n do case case n=0 ? “Sunday” case n=1 ? “Monday” case n=2 ? “Tuesday” case n=3 ? “Wednesday” case n=4 ? “Thursday” case n=5 ? “Friday” case n=6 ? “Saturday” otherwise ? “输入数据出错” endcase retu
作业 :书本P161 三.操作题 2(参考学习指导书P87 3)
6.5 循环结构
循环结构是指根据指定条件的当前值 来决定一行或多行语句(命令)是否要重 复执行。VFP6.0提供了三种循环结构。 1. DO WHILE循环 (1)DO WHILE循环结构 (1)格式 DO WHILE <条件> <循环体语句序列> ENDDO (2)功能 执行DO WHILE语句时,首先计算判 断条件的值,若条件的值为真,则顺序执 行循环体,然后再返回到do while,再次 计算判断条件的值,若条件为真,则重复 上述过程;若条件为假,则执行enddo的 下一个语句。 (3)注意:do while与enddo必须成对出现; 防止死循环
作业:统计1~50间能被6整除的数的个数,并求这些数的和。
3.SCAN循环 SCAN循环专用于控制对 数据表中记录进行逐条操作。 (1)格式 SCAN [<范围>] [FOR/WHILE <条件>] <循环体语句序列> ENDSCAN (2)功能 针对当前表中指定范围 内满足条件的每条记录,逐 一执行SCAN与ENDSCAN 之间的语句序列。
最常用的流程图符号如下所示:
半圆框称为起止框,用来表示程序的开始和结束; 矩形框称为处理框,用来表示数据的输入、输出及加工等问题; 菱形框称为判断框,用来表示条件判断; 箭头即指向线,用来表示程序的流向或途径。
S:存储每次累加的 部分和,n:表示每 次应加的数
计算1+2+3+……+100。 的流程图
2)功能:依次计算并显示表达式表中各表达式的值,所 显示的值与值之间间隔一个空格。 例6.5 运行下段程序 input “a=?” to a ? A*5,a+8 (5) 信息显示函数: MESSAGEBOX( ) 1)格式: MESSAGEBOX(<提示信息>[,<按钮类型>][,< 对话框标题>]) 2)功能:暂停程序运行,在对话框中显示提示信息,等 待用户单击按钮,并返回一个整数表示单击的是哪个按钮。 <按钮类型>由三个数码相加产生,即: <按钮类型码 >+<图标类型码>+<默认按钮码>
6.4 程序的选择结构
选择结构是指在程序执行 过程中,根据指定条件的当前 值在两条或多条程序路径中选 择一条执行。通常选择结构有 三种形式。 1.单分支选择结构 (1)格式 IF <条件> <语句序列> ENDIF (2)功能:执行该语句,先判断 条件的值是否为真,然后决定 程序运行的走向。 (3)注意:成对出现。 (P133提示)
FOR循环流程图
例:统计1~50间不能被7整除的数的个数,并求这些数的积。 clear num=0 fact=1 for i=1 to 50 step 1 if mod(I,7) !=0 num=num+1 fact=fact*I endif endfor ? “1~50间不能被7整除的数的个数是”,num ? “它们的连乘积是”,fact
(2)循环体中两条特殊语 句:EXIT和LOOP (1)格式 跳出循环语句:EXIT 短跳循环语句:LOOP (2)功能 在循环体中执行到 EXIT时,立即无条件跳出 循环,转去执行 ENDDO 的后一个语句。若执行到 LOOP语句,则立即返回 DO WHILE重判循环条件, 而不再执行循环体内的其 他语句。
2.程序文件的保存 程序输入完毕后,从 “文件”菜单选择“保存”或按CTRL+W保 存程序文件。 3.程序文件的修改 方法1)若程序文件已建在某一项目中,则从项目管理器中选定它 并单击“修改”按钮。 方法2)从“文件”菜单选择“打开”, 或者单击常用工具栏上的 “打开”按钮,在“打开”对话框选定要修改的程序文件后单击“确 定”按钮。 方法3)在命令窗口中执行:MODIFY COMMAND <程序文件名> 4.程序文件的运行 方法1)若程序文件已建在某一项目中,则从“项目管理器”中选 定它并单击“运行”按钮。 方法2)从“程序”菜单中选择“运行”,选定要运行的程序文件 后单击“运行”按钮。 方法3)在命令窗口中执行命令:DO <程序文件名>
例6.1 请编写一程序文件,名为:学生人数.prg,实现统计student表中奖学金在 200—300元之间的学生人数,并与书中例5.4(p88)进行比较。
6.2 结构化程序设计初步
1.算法及流程图 (1)算法的概念:根据问题要求拟定用计算机求解的策 略和步骤,并把它用某种工具描述出来,称之为“算法设 计”。 (2)算法的流程图描述 :用一些简单的几何框图表示各 种类型的操作,然后用带箭头的有向流线将各个框图连结 起来,以表示其执行的先后顺序,这种框图称为“流程 图”。 例6.2 试写出算法,以交换变量x 和y的值。 例6.3 试画出流程图,以计算自然数1—100的和。 (如下图) 2.结构化程序设计方法 结构化程序指整个程序由顺序、选择、循环三种基本 结构组成。