第2章 Visual FoxPro程序设计基础.ppt_第1页
第2章 Visual FoxPro程序设计基础.ppt_第2页
第2章 Visual FoxPro程序设计基础.ppt_第3页
第2章 Visual FoxPro程序设计基础.ppt_第4页
第2章 Visual FoxPro程序设计基础.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、全国计算机等级考试,Visual FoxPro 程序设计,数 据 库 应 用,主讲老师:李敏,第2章 Visual FoxPro程序设计基础,在Visual FoxPro中,除了能够对数据表中的数据进行处理,也可以对诸如常量、内存变量等数据表之外的数据进行单独处理。简单的数据处理可以通过函数、表达式和单条命令完成,复杂的数据处理则可能需要编写程序来完成。本章介绍Visual FoxPro程序设计基础,内容包括常量、内存变量、表达式、常用函数、程序的基本结构以及多模块程序设计。,第2章 Visual FoxPro程序设计基础,本章知识点在笔试考试中的分析明细表,2.1 常量与变量,1.常量 常量

2、通常是指以文字串形式出现在代码中的数据,代表一个具体的、不变的值。而变量用于存储数据,一个变量在不同的时刻可以存放不同的数据 常量类型包括数值型、货币型、字符型、日期型、日期时间型和逻辑型。不同类型的常量有不同的书写格式。接下来分别介绍:,2.1 常量与变量,1.常量 1)数值型常量 数值型常量就是常数,用来表示一个数的大小,由数字09、小数点和正负号构成,在内存中占8个字节。 2)货币型常量 货币型常量用来表示货币值,在内存中占8个字节,在书写时要加上一个前置的美元符号($)。货币数据在存储和计算时,采用4位小数,多于4位小数,系统会自动将多余的小数位四舍五入。 3)字符型常量 字符型常量也

3、称字符串,其表示方法是用定界符半角单引号、双引号或方括号把字符串括起来。如:”计算机”, 567, 姓名 ,ABC ”abc”。,2.1 常量与变量,1.常量 4) 日期型常量 日期型常量在内存中占8个字节,定界符是一对花括号。日期型常量中默认的分隔符是斜杠(/),另外还包括“-”、“.”和空格等。 日期型常量的格式有两种: (1)传统的日期格式。月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。系统默认的日期型数据为美国日期格式“mm/dd/yy”(月/日/年)。 (2)严格的日期格式。表示为yyyy-mm-dd,用这种格式书写的日期常量能表达一个确切的日期。书写时要注意:花括号内

4、第一个字符必须是脱字符();年份必须用4位(如2010、2011等);年月日的次序不能颠倒、不能缺省。,影响日期格式的设置命令,SET MARK TO 命令功能:用于指定显示日期时所用的分隔符。 如果SET MARK TO后面没有指定分隔符,表示恢复系统默认的斜杠分隔符。 SET DATE TO AMERICANANSI 命令功能:用于设置日期显示的格式。 如果SET DATE TO后面没有指定日期显示的格式,表示恢复系统默认的mm/dd/yy(月/日/年)格式。 SET CENTURY ONOFF 命令功能:指定如何显示或解释一个日期数据的年份。ON显示世纪,即用4位数字表示年份。OFF不显

5、示世纪,即用2位数字表示年分。它是系统默认的设置。,操作举例,2.1 常量与变量,1.常量 5) 日期时间型常量 日期时间型常量包括日期和时间两部分内容,日期时间型数据用8个字节存储。其中用AP(或A)表示上午,用PM(或P)表示下午,默认值为AM。 6)逻辑型常量 逻辑型数据只有逻辑真和逻辑假两个值。逻辑型数据只占用一个字节。 逻辑真的常量表示形式有:.T.、.T.、.Y.和.y.。 逻辑假的常量表示形式有:.F.、.F.、.N.和.n.。,2.1 常量与变量,2.变量 变量的命名规则: 变量的值是可以随时更改的,每个变量对应一个变量名,变量的命名以字母、汉字和下划线开头,后接字母、数字、汉

6、字和下划线构成,开头不能用数字。 分类:分为字段变量和内存变量两大类 内存变量的数据类型包括: 字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T),2.1 常量与变量,2.变量 1) 简单内存变量 在Visual FoxPro中,一个变量在使用前并不需要特别的声明或定义。 当出现内存变量与字段变量同名时,若简单地用变量名访问,则系统默认为是字段变量。若要访问内在变量,则必须在变量名前加上前缀M.(或M-),例如M.姓名。 2) 数组 数组是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。每个数组元素相当于一个简单变量

7、,可以给各元素分别赋值,并且各元素的数据类型可以不同。数组大小由下标的上、下限决定,下限规定为1。,2.1 常量与变量,创建数组: 格式: 格式1:DIMENSION(,), 格式2:DECLARE(,), 例如:DIMENSION x(5),y (2,3)定义了两个数组。 一维数组x含有5个数组元素:x(1),x(2),x (3),x (4),x (5)。 二维数组y含有6个元素:y(1,1),y (1,2),y (1,3),y (2,1),y (2,2),y (2,3),2.1 常量与变量,二维数组可以转化为一维数组 : 二维数组与二维表存在对应关系。如:数组y(1,1)与二维表中的第一行

8、第一列对应;y(2,3)与二维表中的第二行第三列对应。,2.1 常量与变量,3.内存变量常用命令 1)内存变量的赋值 Visual FoxPro中的内存变量赋值有两种格式: 命令格式1: 命令格式1:STORE To 功能:计算表达式并将表达式值赋给一个或多个内存变量,等号一次只能给一个内存变量赋值;STORE可以同时给多个变量赋于相同的值,各变量名之间用逗号隔开。,2.1 常量与变量,3.内存变量常用命令 2)表达式值的显示 格式1:? 格式2:? 注意:不管有没有指定表达式,格式1都会输出一个回车换行符。如果指定了表达式,各表达式值将在下一行的起始处输出。格式2不会输出一个回车换行符,各表

9、达式值在当前行的光标所在处直接输出。能:首先计算出表达式的值,再将该值赋给内存变量。,2.1 常量与变量,3.内存变量常用命令 3)内存变量的显示 命令格式:DISPLAYLIST MEMORY LIKETO PRINTERPROMPT/TO FILE 功能:显示当前内存中的内存变量名称、作用范围、数据类型和值。 DISPLAY和LIST的区别在于: D1SPLAY命令分屏显示,每显示一屏暂停,按任意键后继续显示;LIST命令连续显示,中间不停顿,直到显示完毕。 通配符有?和*两种: ?代表单个字符,*代表一个或多个字符。若缺省任选项LIKE,则显示当前内存中的所有内存变量;若选用该选项,则显

10、示与相匹配的内存变量。,2.1 常量与变量,3.内存变量常用命令 4)内存变量的清除 格式: 格式1:CLEAR MEMORY 格式2:RELEASE 格式3:RELEASE ALLEXTENDED 格式4:RELEASE ALLLIKEEXCEPT 说明: 格式1用于清除所有内存变量。 格式2用于清除指定的内存变量。 格式3用于清除所有的内存变量。在人机会话状态,其作用与格式1相同。如果出现在程序中,则应该加上短语EXTENDED,否则不能删除公共内存变量。 格式4选用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语清除与通配符不相匹配的内存变量。,2.1 常量与变量,3.内存

11、变量常用命令 5)表中数据与数组数据之间的交换 将表的当前记录复制到数组。命令格式为: 格式1:SCATTERFIELDSMEMOTOBLANK 格式2:SCATTERFIELDS LIKEFIELDS EXCEPTMEMOTOBLANK,2.2 表达式,表达式是由常量、变量和函数通过特定的运算符连接起来的式子。表达式的形式包括: 单一的运算对象,包括常量、变量或函数等; 由运算符将运算对象连接起来形成的式子。 表达式无论是简单还是复杂,都会有一个运算结果,即表达式的值,根据运算结果的不同,表达式可以分为数值表达式、字符表达式、日期时间表达式和逻辑表达式,各类表达式都有自己特定的运算符,且存在

12、一定的运算顺序。,2.2 表达式,1.数值、字符与日期时间表达式 数值表达式 又称为算术表达式,由算术运算符和数值型常量、变量和数值型函数等组成。数值运算是分先后次序的,数值运算的优先级见表所示。 比如: 键入以下命令,并回车运行: ?5+(2/7+5/7)*2(3+5),2.2 表达式,1.数值、字符与日期时间表达式 字符表达式: 字符串表达式由字符串运算符将字符型数据连起来形成,结果仍是字符型数据。 字符运算符有以下两个,它们的优先级相同。 +:前后两个字符串首尾相接形成一个新的字符串。 -:连接前后两个字符串,并将前字符串尾部的空格移到合并后的字符串尾部,2.2 表达式,1.数值、字符与

13、日期时间表达式 日期时间表达式: 运算符只有两个分别是加(+)和减(-)。书写时格式有一定限制,不能任意组合。例如不能用运算符“+”号将两个连接起来。合法的日期时间表达式格式如表所示。,2.2 表达式,2. 关系表达式 1)关系表达式 关系表达式通常也称为简单逻辑表达式,由关系运算符将两个运算对象连接起来形成。即 ;运算结果是逻辑型数据。,注意:运算符= =和$仅适用于字符型数据。其他运算符适用于任何数据;在比较运算时,前后两个运算对象的类型必须相同,但日期和日期时间型数据可以比较。,2.2 表达式,2. 关系表达式 2) 设置字符的排序次序 当比较两个字符串时,自左向右逐个比较,一但发现两个

14、字符不同,就根据这两个字符的大小决定字符串的大小。 字符的大小取决于字符集中字符的排序次序,排在前面的小,排在后面的大。 在中文Visual FoxPro中,默认的字符排序次序名为PinYin,但可以重新设置。排序次序名必须放在引号当中。 设置字符排序次序的命令是:SET COLLATE TO “”,2.2 表达式,2. 关系表达式 3) 字符串精确比较与EXACT设置 用双等号运算符(=)精确比较:只有当两个字符串完全相同(包括空格及位置),才会为逻辑真 .T.。 用单等号运算符(=)比较,运算结果与 set exact onoff 的设置有关。 ON 先在较短的字符串尾加若干空格,使两个字

15、符串的长度相等,再进行精确比较。如:“计算机世界”=“计算机”,在ON状态下结果为.F.。 OFF 只要右边字符串与左边字符串的前面部分内容相匹配,即为逻辑真 .T.。如:“计算机世界”=“计算机”,OFF状态下结果为 .T.。,2.2 表达式,2. 关系表达式 3) 字符串精确比较与EXACT设置 举例:字符串比较与EXACT设置示例。 Set exact off Store “会计” to s1 Store “会计 ” to s2 )续行符。 3)程序特点,2.4 程序与程序文件,2.程序文件的建立与运行 1)创建程序 通过项目管理器创建 通过文件菜单创建 通过命令创建 2)保存程序 通过

16、菜单保存 直接关闭没有保存的程序,则会弹出相应对话框,提示保存或放弃 按CTRL+W组合键保存,3)修改程序 通过项目管理器的“修改”选项打开程序并修改 通过文件菜单中“打开”选项打开程序并修改 通过命令MODIFY COMMAND打开程序并修改 4)运行程序 通过项目管理器的“运行”按钮运行程序 通过程序菜单中“运行”选项运行程序 通过命令DO运行程序,2.4 程序与程序文件,3.简单的输入/输出命令 1. INPUTTO 2. ACCEPT TO 3. WAITTO WINDOWAT ,NOWAIT CLEAR | NOCLEARTIMEOUT ,2.5 程序的基本结构,1.顺序结构 顺序

17、结构是最简单的程序结构,它按命令在程序中出现的先后次序依次运行。 例2.47 CLEAR &清除主窗口显示的全部信息 r=3 &设置圆的半径 * 依次计算周长和面积 p=2*pi()*r &函数PI( )返回圆周率 s=pi()*r2 * 输出计算结果 ?”周长=”,p ?”面积=”,s 主窗口中显示:周长=18.85 面积=28.2743,2.5 程序的基本结构,2.选择结构 1)简单的条件语句 IF ENDIF 2)一般形式的条件语句 IF ELSE ENDIF,2.5 程序的基本结构,2.选择结构 3)多分支语句 语句格式: DO CASE CASE CASE CASE OTHERWIS

18、E ENDCASE,2.5 程序的基本结构,3.循环结构 循环结构也称为重复结构,是指程序在运行过程中,其中的某段代码被重复运行若干次。被重复运行的代码段通常称为循环体。Visual FoxPro支持的循环结构语句包括: DO WHILE - ENDDO、 FOR-ENDFOR SCAN-ENDSCAN语句。,2.5 程序的基本结构,3.循环结构 1)DO WHILE ENDDO 这是一个功能全面使用频率较高的循环语句。 语句格式: DO WHILE LOOP EXIT ENDDO 运行该语句时,先判断是否为真,如果是真则运行DO WHILE与ENDDO间的循环体,当运行到ENDDO时,再返回

19、DO WHILE 重新判断循环条件是否为真,确定是否再次运行循环体。若条件为假则结束循环语句运行ENDDO后的语句。,2.5 程序的基本结构,3.循环结构 1)DO WHILE ENDDO 例如 CLEAR X=12345 Y=0 DO WHILE X0 Y=Y+X%10 X=INT(X/10) ENDDO ?Y 主窗口中显示:15,2.5 程序的基本结构,3.循环结构 2)FOR-ENDFOR 语句 该语句通常用于已知循环次数情况下的循环操作。语句格式: FOR = TO STEP LOOP EXIT ENDFOR|NEXT 先将初值赋给循环变量,然后判断循环条件是否成立,若成立,则运行循环

20、体,然后循环变量增加一个步长值,并在次判断循环条件确定下一次的循环操作。如果条件不成立则结束循环运行ENDFOR后的语句。,2.5 程序的基本结构,3.循环结构 2) FOR-ENDFOR 语句 比如:计算1+2+3+5的值。 CLEAR s=0 FOR i=1 TO 10 s=s+I ENDFOR ?s=,s RETURN 主窗口中显示:15,2.5 程序的基本结构,3.循环结构 3) SCAN-ENDSCAN 语句 该循环语句也称为扫描循环语句,功能相当于LOCATE、CONTINUE和DO WHILE- ENDDO语句功能的合并。一般只是用于处理表中记录,语句可指明需处理记录的范围及应满

21、足的条件。 语句格式: SCAN FOR WHILE LOOP EXIT ENDSCAN 运行该语句时,记录指针自动、依次地在当前表的指定范围内满足条件的记录上移动,对每一条记录运行循环体内的命令。,2.6 多模块程序设计,模块是一个相对独立的程序段,它可以被其他模块所调用,也可以去调用其他的模块。 通常把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。 1.模块的定义和调用 1)模块及其定义 2)模块的调用,2.6 多模块程序设计,1)模块及其定义 在Visual FoxPro中,模块可以是命令文件,也可以是过程。 过程定义的语法格式如下: PROCEDU

22、DEFUNCTION RETURN ENDPROCENDFUNC 一般情况下,过程保存在称为过程文件的单独文件里。一个过程文件包含的过程数量不限。过程序文件的建立与程序文件一样也可以用MODIFY COMMAND建立,文件扩展名也是.prg。,2.6 多模块程序设计,2)模块的调用 模块的调用格式有两种: 格式1:DO | 格式2:|( ) 要调用过程文件中的过程,首先要打开过程文件,打开过程文件的的命令是: SET PROCEDURE TO ,ADDITIVE 当一个过程文件中的过程不再需要被调用时,应及时关闭,关闭过程文件的命令如下: 格式1:SET PROCEDURE TO。功能是关闭所

23、有打开的过程文件。 格式2:RELEASE PROCEDURE ,。功能是关闭指定的过程文件。,2.6 多模块程序设计,3.参数传递 模块程序可以接收调用程序传递过来的参数,并能根据接收到的参数控制程序流程或对接收到的参数进行处理,以提高程序设计的灵活性。 接收参数的命令: PARAMETERS , 是声明程序中建立的私有变量; LPARAMETERS , 是声明程序中建立的局部变量。 都必须是模块中的第一条可运行命令。 调用模块程序的格式为: 格式1:DO | WITH , 格式2: | (,),2.6 多模块程序设计,3.参数传递 实参可以是常量、变量或一般形式的表达式。调用模块时,系统会自动把实参传递给形参。形参数目不能少于实参数目。如有多余形参取初始值逻辑假(.F.)。 命令的格式如下: SET UDFPARMS TO VALUEREFERENCE TO VALUE:按值传递。形参变量值的改变不会影响实参变量的取值。 TO REFERENCE:按引用传递。形参变量值改变时,实参变量值也随之改变。 需要注意:如果一个变量用一对括号括起来,会使其变为一般形式的表达式

温馨提示

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

评论

0/150

提交评论