徐红波vfp教材(1-3章)_第1页
徐红波vfp教材(1-3章)_第2页
徐红波vfp教材(1-3章)_第3页
徐红波vfp教材(1-3章)_第4页
徐红波vfp教材(1-3章)_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 概述计算机科学的发展使得它的应用领域逐步扩大,已进入社会的各个方面。信息化社会用计算机进行数据处理已成为日常工作的内容。数据库系统技术是用计算机进行数据处理的最简单、易学、易掌握的技术。VFP数据库继承了以往传统数据库的优点,是采用了面向对象的程序设计思想和可视化的编程工具,操作简单、易学,极大的方便了软件的开发。人们在使用它作为开发工具时,可以高效的开发出全新的可视化图形界面应用程序。所开发出的软件易于推广和应用。因此VFP应用较为广泛。本章主要介绍相关基本知识,为后续章节的学习打下基础。1.1 数据库系统的发展与特点1.1.1 数据库系统的发展数据处理技术形成和发展经历了早期的人工

2、管理、文件系统、数据库系统这三个阶段。人工管理是最原始的数据管理方式,由于数据的不共享性,而被文件系统所代替。文件系统虽然数据具有共享性,但共享性差、独立性差,冗余度高而被数据库系统所代替。由于数据库系统具有共享性高、冗余度少、数据的独立性好的优点使它成为当今数据处理的主要工具。在20世纪60年代末美国IBM公司成功的研制出第一个商品化的数据库系统IMS(Information Management System)系统,以后又相继出现了DBASE、FoxBASE、FoxPro、VFP等数据库系统。社会科技的进步促进了数据库技术的发展,与此同时数据库技术的发展又推动了计算机应用领域的扩大和深入。

3、1.1.2 数据库系统的特点信息化社会的到来,使数据库系统的应用更为广泛,技术更加成熟,它与人工管理、文件系统相比较有如下的特点。1数据的结构化在人工管理中,数据文件中的每个数据项之间是无结构的。在文件系统中的数据文件中的每个数据项虽然是有结构,但整体是无结构的。而数据库系统中的数据文件(即数据表)中的每一个数据项之间是有结构的,在数据库中的数据文件之间是有联系的,整体是有结构的。2 数据的共享人工管理中的数据文件是不共享的。文件系统中的数据文件虽然可共享,但由于数据文件是面向应用程序的,不同的应用程序当需要不同的数据时,就需要建立各自的数据文件,故共享性差。而数据库系统中的数据文件不是面向某

4、一个应用程序,而是面向整个系统,因此可被多个应用程序共享使用,故共享性高。3 数据的独立性在人工管理中数据文件与程序是不独立的。文件系统中的数据文件,虽然有一定的独立性,但数据文件结构是面向应用程序的,数据文件的结构一旦改变,导致应用程序的改变,相应的应用程序改变也导致数据文件结构改变,这样也造成了文件系统中数据独立性差。而数据库中的数据文件,是面向整个系统的数据文件的,数据文件的结构改变应用程序可以不变,这样就突出了数据库的重要特点就是数据库的独立性高。4 冗余度低由于数据系统的共享性比文件系统要好得多,共享性可以减少数据的冗余,提高了数据的一致性与完整性。1.2 数据库的基本知识1.2.1

5、数据库系统1数据(Data)数据是指能存储在计算机系统的物理介质上并能被计算机识别的物理符号。他包括文字、图形、图像、声音等。2数据处理(Data Processing)数据处理是指将数据转为对用户来讲有用信息的过程。3数据库(Database)数据库是指存储在计算机存储器中结构化的、能为多个用户共享且又独立于应用程序的相关数据的集合。4数据库管理系统(DBMS, Data Base Management System)数据库管理系统是指可以对数据库的建立、使用和维护管理的软件。他包括数据定义语言DDL(Data Define Language)数据操纵语言DML(Date Manipulat

6、ion Language)、管理与控制程序。5数据库应用系统(DBAS, Data Base Apply System)数据库应用系统是指用数据库系统资源,面向某一实际应用而开发的具体应用程序软件系统。如:学籍管理系统、工资管理系统等。6数据库系统(DBS, Data Base System)数据库系统是指在计算机系统中引入数据库后的系统,它由硬件系统、数据库集合、数据库管理系统、相关软件、数据库管理员、用户组成。1.2.2数据模型1数据模型的基本概念在现实世界中,人们将对研究对象的抽象化、形式化的描述过程称为模型。人们把表示客观事物及其联系的数据及结构称为数据模型。在数据库管理系统中有层次模

7、型、网状模型、关系模型。下面就数据模型相关的基本概念做以介绍。(1)实体客观存在并可以相互区别的事物称为实体。如:一个学生、一门课等。(2)属性实体所具有的某一特性称为属性。如:一个学生实体可由学号、姓名、成绩等属性组成。(3)域属性的取值范围称为域。如:学生的一门课成绩取值为0-100之间。(4)实体型若干个属性名所组成的集合表示一个实体的类型称为实体型。(5)实体集同型实体的集合称为实体集。如:全班学生实体就是一个实体集。(6)联系实体联系有内部联系与实体外部联系。实体的内部联系是指实体内部各属性之间的联系。实体的外部联系也称实体之间的联系。通常是指不同实体集之间的联系。实体集之间的联系可

8、分为三类。1)一对一联系实体集A中的一个实体与实体集B中的一个实体至多有一个实体相对应,反之亦然,则称实体集A与实体集B有一对一联系。记为1:1。如旅客与车票等。2)一对多联系实体集A中的一个实体与实体集B中有N个实体相对应,反之实体集B中的一个实体至多与实体集A中的一个实体相对应则称实体集A与实体集B有一对多联系,记为1:N。如:一个学校的班级与学生之间是一对多联系。3)多对多联系实体集A中的一个实体与实体集B中的N个实体相对应,反之实体集B中的一个实体与实体集A中的M个实体相对应,则称实体集A与实体集B有多对多联系记为M:N。2数据模型(1)层次模型满足只有一个根节点,即没有双亲节点;除根

9、节点以外的所有节点且只有一个双亲节点;上层节点与下层节点称为层次模型。如图1.1所示。层次模型也称为树形结构。采用层次模型作为数据的组织方式的数据库管理系统称为层次数据库管理系统。EFHGBCDAI 图1.1层次模型(2)网状模型满足允许一个以上节点无双亲,允许节点可以多于一个双亲,节点之间可有多对多联系模型称为网状模型。如图1.2所示。图1.2网状模型EFHGBCDA采用网状模型作为数据的组织方式的数据库管理系统称为网状数据库管理系统。网状模型在于能更好描述现实世界,且可以支持多对多联系,但实现起来复杂不易掌握。(3)关系模型关系模型是1970年由美国IBM公司San Jose研究室的研究员

10、EF.Codd首次提出,他并为关系数据库管理系统的技术奠定了基础。EF.codd的关系模型是建立在严格的数学概念基础上。关系模型是用一张二维表来表示实体和实体间联系的模型。如图1.3所示表名为学生成绩,它为关系名。表中一行称为一个元组,表中一列称为属性。如表中有5个属性即学号、姓名、数学、英语、VFP。学生成绩学号姓名数学英语VFP1李小明9885962张朋8987883李丽8698100它要求关系必须规范化,包括:1)关系的每一个分量必须是以一个不可分的数据项,即表中不可含表;2)同一关系中不能有相同的属性名;3)关系中不允许有相同的元组;4)在一个关系中元组的次序可任意;5)在一个关系中列

11、的次序可任意。关系模型的表示形式:关系名(属性1, 属性2, , 属性N)例如:学生成绩表可描述为如下关系:学生成绩(学号, 姓名, 数学, 英语, VFP)采用关系模型作为数据的组织形式的数据库管理系统称为关系数据库管理系统。在VFP中一个表就是一个关系,它的表结构为:表名(字段名1, 字段名2, , 字段名N)表名就是关系名,字段名1,字段名N,就是关系中的属性1,属性N。表中内容的一行称为一个记录,就是关系中的一个元组。3关系的完整性关系的完整性包括实体完整性,参照完整性和用户定义完整性。现在先介绍一下与完整性相关的概念。(1)概念1)关键字若在关系中能唯一标识元组的一个或一组属性称为关

12、键字。如学生成绩表中的学号。2)候选关键字候选关键字也是关键字,它是具有关键字特性的一个或多个属性的统称。若学生成绩表中学号、姓名都无重复值,那么学号与姓名就是候选关键字。若姓名有重复值就不能是候选关键字。3)主关键字主关键字是在多个候选关键字中选出一个。一个关系中只能有一个主关键字。如在学生成绩表中学号为主关键字。4)外部关键字若在一个关系R中一个属性不是本关系的主关键字或候选关键字,而是另外一个关系S的主关键字或候选关键字则称此属性为本关系的外部关键字,R为参照关系,S为被参照关系。(2)关系的完整性1)实体完整性实体完整性是指关系中的主关键字不能取空值。空值就是(NULL)不确定的值。由

13、于主关键字为空值,那这个元组是无意义的。如学生成绩表中,学号为空值,而其它属性却有值,则该条记录无意义。2)参照完整性参照完整性是用来约束关系与关系之间的关系,即数据库约束数据库中表与表之间的关系。参照完整性是指一个关系R的外部关键字F与另一个关系S的主关键字K相对应(即F是S的主关键字)则对R中的每一个元组在F上的值必须为空值或等于S中某一个元素的主关键字的值,如有以下两个关系(表):学生(学号, 姓名, 性别, 专业代号)专业(专业代号, 专业号)学生关系中的专业代号是外部关键字,但在专业关系中它是主关键字,这时,在学生关系中,专业代号的值或者取空值或者取专业关系中某个元组的专业代号的值,

14、当在学生关系中的专业代号取空值时,表示该学生还没有分专业。在VFP数据库中的表来实现参照关系,应注意以下几点:当对含有外部关键字的参照表进行创建、插入、修改时,必须检查外部关键字的值在被参照表中是否存在,若不存在,则不能进行该操作。当对被参照的表进行删除,修改时必须检查被删除的行或修改的行的主关键字值是否正在被参照表的外部关键字参照,若是,则不能进行该操作。用户定义完整性用户定义完整性是指根据用户的实际需要,属性域的完整性的规定。在VFP数据库表中是指字段的数据类型、宽度、精度、取值范围、是否允许空值。如学生成绩表中的数学,其数据类型可为整型,取0100之间等,取值范围又可分为静态与动态,静态

15、是指字段的取值范围是固定的,如学生表中的数学。动态取值范围是指该字段的取值范围由其他字段的值来确定或在修改时,由该字段原来的值来确定。1.2.3 VFP启动与主界面1VFP的功能VFP是一个可视化数据库编程的开发工具,它用建立表、数据库,对数据库中的表建立关系并进行可视化管理。项目管理器是对多种文档、多种程序进行统一集中管理与维护的工具。VFP运用自身的向导、设计器、生成器等实现可视化编程,它运用交互式与自动化工作方式,方便了不同层次、不同应用用户的需求,它支持多媒体、网络编程,它能高效、快捷的开发出令人满意的应用软件。2VFP系统环境(1)处理器:486DX/66MHZ 以上的处理器。(2)

16、内存储器:16MB以上内存。(3)典型安装需85MB的硬盘空间,最大安装需90MB硬盘空间。(4)推荐使用:VGA或更高分辨率的监视器。(5)操作系统:win95/98/me/2000/xp /NT4.0或更高版本的操作系统。3VFP的安装(1)将VFP系统光盘插入CDROM驱动器中。(2)采用以下二种方法之一。1)通过我的电脑或“资源管理器”找到setup.exe文件,双击该文件以后运行按照安装向导的进一步提示完成安装即可。2)单击win开始菜单,选“运行”选项,键入光盘盘符:setup.exe并回车,运行安装向导,并按照安装向导的进一步提示完成安装即可。4VFP的启动用以下方法之一就可以启

17、动VFP:(1)单击开始程序Microsoft Visual FoxPro 6.0Microsoft Visual FoxPro6.0。(2)双击桌面上的VFP 6.0图标。5 VFP的退出采用以下方法之一就可以退出VFP:(1)按Alt+F4。(2)在命令窗口中输入quit然后回车。(3)从文件菜单退出。(4)双击左上角的控制图标。(5)单击左上角控制图标关闭。6 VFP的主界面当启动VFP后就进入如图1.3所示的VFP主窗口。VFP的主窗口主要由标题栏、菜单栏、工具栏、主窗口、命令窗口、状态栏六部分组成。(1)标题栏用于显示Microsoft Visual.FoxPro并且有三个常用的按钮

18、,它们是关闭按钮、最大化按钮、最小化按钮。一个控制图标图1.3 VFP主窗口(2)菜单栏(主菜单)它提供了多种选项供用户选择,如图1.3所示。每个选项都有下拉菜单,下拉菜单又提供了多个选项供用户使用。VFP菜单不是静止不变的,它是一个动态可变的,根据VFP的当时状态的不同,菜单栏中的选项及各下拉菜单的选项会有一些变化。这将在后续章节中逐步加以介绍。(3)工具栏如图1.3所示,它是由若干个按钮组成,它也称为常用工具栏,每个按钮实现一个功能或命令供用户方便的使用。除常用工具栏以外VFP还有若干个其它的工具栏。在编辑相应的文档中可根据需要定制、编辑、隐藏、创建工具栏,这将在后续章节中逐步加以介绍。(

19、4)主窗口它用于显示结果。(5)命令窗口它可以输入、编辑、执行命令。(6)状态栏显示当前的状态,显示对用户有用的信息。7VFP工作方式VFP工作方式主要分为两类:一类为交互式工作方式,这包括在命令窗口直接执行和用菜单或工具栏按钮执行命令。另一类为自动化工作方式,它包括用编写的程序、各种生成器等自动生成程序后进行执行。在解决某一个问题时,两种工作方式哪一种或两种方式结合使用都可以得到同一结果。这两种工作方式为不同层次的用户、不同软件开发的用户提供了方便的使用方式,用户可根据自身的实际情况进行选择使用。8简单的VFP用户程序例1.1 设计一个表单若显示欢迎你使用VFP,祝你成为软件开发的精英。单击

20、文件菜单新建,打开新建对话框在文件类型中选表单新建文件按钮,打开表单设计器。(1)设计一个表单,表单中的标签控件及属性如图1.4所示。图1.4 欢迎界面(2)执行do form 表单1例1.2 设计一个口令系统,若口令正确显示欢迎你进入学生成绩管理系统,否则显示非法用户。在表单设计器打开的情况下。(1)设计一个表单,表单中的控件及属性如图1.5所示。图1.5 口令界面(2)确定按钮click事件代码如下:x=thisform.text1.valueif x=messagebox(欢迎你进入学生成绩管理系统, 0+48, 口令审核)elsemessagebox(非法用户,0+48,非法用户)en

21、dif(3)退出按钮click事件代码如下:thisform.release(4)执行do form 表单2例1.3 设计一个两个串交换的表单。在表单设计器打开的情况下。(1)设计一个表单,表单中的控件及属性如图1.6所示。图1.6 两串交换界面(2)交换按钮click的事件代码如下:t=thisform.label1.captionthisform.label1.caption=thisform.label2.captionthisform.label2.caption=tthisform.refresh(3)退出按钮click的事件代码如下:thisform.release(4)执行do

22、form 表单31.3 数据与数据运算VFP重要的作用就是对数据进行高效的处理。在VFP中从数据存储类型分为整型、浮点型、字符型、日期型等多种,如表1.1所示。从数据形式划分数据有常量、变量、函数、表达式等。下面我们就这方面的知识作进一步详细介绍。表1.1 数据类型数据类型占字节数取值范围说明字符型256任意字符任意文本货币型8-5477.58085477.5807货币量日期型80001-01-019999-12-31年、月、日表示的日期日期时间型80001-01-01 00:00:00 am9999-12-31 11:59:59 pm年、月、日、时间表示的日期和时间逻辑型1(真)、(假)布尔

23、值数值型在内存占8个字节,在表中占120个字节-.+E19.E+20整数或小数双精度B8+/-4.247E-324+/-8.15E307双精度浮点数浮点型同数值型一样-.+E19.E+20同数值型一样通用型在表中占4个字节受可用空间限制OLE对象引用整型4-整数值备注型在表中占4个字节受可用空间限制数据块引用字符型(二进制)254任意字符任意不经过代码页修改而维护的字符型数据备注型(二进制)在表中占4个字节受可用空间限制任意不经过代码页修改而维护的备注型数注:与型数据是存放在.FPT文件中,在表中占的4个字节用于表示数据在.FPT文件中的存储地址。1.3.1 常量所谓的常量就是在程序执行中其值

24、不变的量,VFP中有6种类型的常量。1数值型常量(1)整数由数字组成,如0,-2, 3。(2)实数 1)十进制表示形式,它由数字正负、小数点组成。如 0.23,-3.14等。2)用指数表示形式,它是数字小数点与E或e组成。如1.23x103 可表示为1.23E3,如-1.23x10-2可表示为-1.23e-2。E前要有数字,E后要有整数。2字符型常量它是用定界符方括号、单引号、双引号”括起来的一系列的有效字符,也称为字符串。如”中国”、”abc”、”123”等。若字符串中含有定界符,那么外面的定界符一定要与字符中的定界符不一样,如”学生爱好计算机”。3逻辑型常量它是由真与假组成,真可用.T.、

25、.t.、.Y.、.y.表示,假可用.F.、.f.、.N.、.n.表示。4货币型常量用$、数字、小数点组成。如$1.23。5日期型常量形式为yyyy-mm-dd,如2005-12-22。6日期时间型常量形式为yyyy-mm-dd hh:mm:ss am | pm,如2005-12-22 12:21:33 am。1.3.2 变量变量就是它的值可以改变的量。变量可为两大类,一类为内存变量,另一类为字段变量。变量是有名的,为了介绍变量的命名规则,先介绍标识符的概念。标识符是用来标识变量、函数、表、数据库、文件等的名子,即标识符就是一个名子。在VFP中标识符的组成规则为:(1)由数字、字母、下划线组成。

26、(2)以字母、下划线开头。(3)长度一般为1128个字符,但对于数组名、自由表名、自由表中的字段名、索引标识符名最多为10个字符。(4)避免使用VFP保留字。(5)文件名必须遵循操作系统的规定。(6)汉字与字母同等待遇(一个汉字占两个字符位)。内存变量有N、C、Y、D、T、L六种类型。VFP规定内存变量的类型可以改变,即同一变量可以赋予不同的值。需要说明的是当内存变量与字段变量重名时,在访问内存变量时,VFP规定在内存变量名前加M-或加M.,否则系统默认是访问字段变量。1简单变量与相关命令VFP的简单变量的定义用赋值命令。(1)赋值命令格式1:=格式2:STORE TO 功能:格式1将表达式的

27、值赋给变量。格式2将表达式的值赋给变量表中的所有变量。说明:1)表达式是运算符与操作对象连接起来的式子,表达式可为变量、常量、也可为表达式。2)变量表中的各变量用逗号分隔。(2)输出命令格式:? | ? 功能:显示输出项目表中的各输出项。说明:1)输出项可为变量、常量、表达式。2)输出项目表中的各项是用逗号分隔的,命令执行时遇到逗号就空一格。3)单个?是表示在下一行输出各输出项,双?是表示在当前行当前列输出各输出项。例1.4 内存变量的应用。a=1b=.t.c=2005-10-12d=Ae=2005-10-12 12:30:28 amstore 10 to f, gh=$123.23?a, b

28、, c, d, e, f, ga=中国b=哈尔滨c=123?a, b?c=, c?a, b执行结果:1 .T. 10/12/05 A 10/12/05 12:30:28 AM 10 10中国 哈尔滨c= 123中国 哈尔滨2数组数组是按一定顺序排列的数据集合。数组中的每一个数据称为一个元素,数组中每一个元素的序号称为一个下标。数组中的所有元素在内存中是连续存放的。数组的定义格式:DIMENSION | DECLARE ( , ) 功能:定义一个或多个数组。说明:1)数组定义后,系统自动为每一个元素赋逻辑假.F.。2)数组有一个下标的称为一维数组,有二个下标的称为二维数组。3)数组的最小下标为1

29、。4)数组的类型可以通过使用加以改变,同一数组的元素类型可以不同。5)当在赋值、输入命令中只用数组名时,表示数组的所有元素有同一个值。6)数组名不能与简单变量重名。7)由于数组各元素在内存中是连续存放的,二维数组可作为一维数组来使用。8)数组与后面章节中的表可相互传递数据。9)数组中的每一个元素都是简单变量,因此简单变量所有的功能数组元素都具备,简单变量适用的场合数组元素都适用。例1.5 一维数组的应用。dimension a(5), b(5)a=10a(5)=23b(1)=2*a(1)b(3)=中国b(4)=2005-10-6b(5)=$123.2?a(1), a(2), a(3), a(4

30、), a(5)?b(1), b(2), b(3), b(4), b(5)执行结果:101010 10 2320 .F. 中国 10/06/05 123.2000例1.6 二维数据组当一维数组使用。dimension a(2, 2)a(1, 1)=2a(1, 2)=哈尔滨a(2, 1)=6a(2, 2)=2005-10-20?a(1), a(2), a(3), a(4) 执行结果:2哈尔滨6 10/20/053内存变量的显示与释放(1)内存变量的显示格式:LIST | DISPLAY MEMORY LIKE TO PRINT | TO FILE 功能:显示内存变量的名、作用域、类型、值。说明:1

31、)LIKE子句是显示与通配符相匹配的内存变量信息。通配符有?与*,?表示一个任意字符,*表示多个任意字符。2)TO PRINT子句是将显示内存变量的信息同时从打印机输出。3)TO FILE 子句是将显示内存变量的信息同时存入由文件名指定的文件中。4)LIST不管显示的信息有多少,都一次显示完。5)DISPLAY显示的信息多于一屏时,分屏显示。每显示一屏就暂停下来,待用户按任意键后继续显示。(2)内存变量的释放格式1:CLEAR MEMORY格式2:RELEASE 格式3:RELEASE ALL EXTENDED格式4:RELEASE ALL LIKE | EXCEPT 功能:格式1释放所有内存

32、变量。格式2释放由内存变量表指定的内存变量。格式3释放所有内存变量,无任何选项释放所有内存变量,在程序中要选EXTENDED,否则不能释放公共变量。格式4当选LIKE 时,释放与相匹配的内存变量;当选EXCEPT 时,释放与不相匹配的内存变量。例1.7 内存变量的显示与应用。a=2abc=6b=中国a1=哈尔滨dimension c(3)c(1)=2005-10-20c(2)=22display memory like a? to file qq1display memory like a* to file qq2release all like a*dispplay memory like

33、a*release all执行结果:A Priv N 2 ( 2.) A1 Priv C 哈尔滨 A Priv N 2 ( 2.) ABC Priv N 6 ( 6.) A1 Priv C 哈尔滨 1.3.3 运算符与表达式 VFP的运算符主要有六种,它们是算术运算符、字符串运算符、关系运算符、逻辑运算符、日期与日期时间运算符、宏替换运算符。1 算术运算符与表达式算术运算符要求它的操作数必须为数值。由算术运算符与操作数连接的式子为表达式,算术表达式的运算结果为数值。算术运算表达式如表1.2所示。表1.2 算术运算符与表达式优先级运算符含义表达式结果1( )括号(2+3)*2102*/%乘除取余

34、3*210/210%36513+加2+35例1.8 算术运算符及表达式的应用x=2y=3?(x+2)*y%6x2 字符串运算符字符串运算符是用于连个字符串相连接,即它的操作数是字符串。由字符串运算符连接起来的式子为字符串表达式。字符串运算符与表达式如表所示。表1.3 字符串运算符与表达式运算符含义表达式结果+将两个字符串连接起来组成一个新字符串。“中国”+“北京”“中国北京”-将两个字符串连接成一个新串。若第一个字符串尾部有空格,就将此空格移到新串的尾部“中国 ”-“北京”“中国北京 ”例1.9 字符串运算符表达式的应用a=”黑龙江 ”b=”哈尔滨 ”c=”东方学院 ”? a+b+c, a-b

35、-c3 关系运算符与表达式关系运算符就是用于关系之间进行关系比较,它的操作数是同类型的。由关系运算符连接起来的式子为关系表达式。关系表达式的结果是一个逻辑值。若关系成立结果为真.T.否则为假.F.关系运算符与表达式如表1.4所示。表1.4 关系运算符与表达式运算符含义 表达式结果大于34.F.=大于 等于10=6“abc”=“123”.T.小于24.T.=小于等于36.T.=等于:串比较时串首相同得真“ABC”“AB”.T.= =完全相等:串比较时两串完全相同得真。“ABC”= =“ABC”.T.#!=不等于2!=3.T.$包含“ab”“abcdef”.T.例1.10 关系运算符与表达式的应用

36、x=2y=3?x+3=2, x!=y, x4.T.2AND与:AND两边操作对象全为真,结果才为真。102 AND 53.T.3OR或:or两边操作有一个为真,结果就为真。102 OR 310.T.例1.11 逻辑表达式的应用a=中国黑龙江b=黑龙江c=3d=1?b$a and c35日期、日期时间运算符与表达式日期、日期时间运算符可以对操作对象进行加、减运算。用这种运算符连接起来的式子为日期、日期时间表达式。运算符与表达式如表1.6所示.表1.6 日期时间运算符与表达式运算符含义表达式结果+日期天数相加形成新的日期2005-10-2+1020+2005-11-012005-10-122005

37、 11 21日期天数相加形成新的日期日期与日期相减得两个日期相差的天数2005-10-20-102005-10-20- 2005-10-102005-10-1010+日期时间与秒相加形成新的日期时间秒与日期时间相加形成新的日期时间2005-10-20 10:20:30 am+1010+2005-10-20 10:20:30am2005-10-20 10:20:40 am2005-11-20 10:20:40 am日期时间与秒数相减形成新的日期时间日期时间与日期时间相减得秒2005-10-20 10:20:30 am-102005-10-20 10:20:30 am-2005-10-20 10:

38、20:30 am20051020 10:20:20 am20例1.12 日期,日期时间运算符及表达式的应用。a=2005-11-20b=10?a+b, b+a, 2005-12-20+10, a-10, 10-ac=2005-11-20 10:30:30 amd=2005-11-20 10:20:10 am?c+10, 10+d, c10, 10c, cd6宏替换运算符与表达式宏替换运算符的操作为字符型变量。用此运算符连接起来的式子为宏替换表达式。作用是替换出字符型变量的内容。宏替换运算符与表达式如表1.7所示。表1.7 宏替换运算符与表达式运算符含义表达式结果&与替换字符型变量的内容,形式为

39、:&a=“abc”x=”a”b=&x+“de”x=“”y=“5&x2”abcde52例1.13 宏替换运算符的应用。a=中国b=?a?&bx=100y=200+?&y.x在含用字符运算符、日期和日期时间运算符、宏替换表达式、算术运算符、关系运算符和逻辑运算符和混合表达式中、,前四者的优先级高与关系运算符,而关系运算符优先级高与逻辑运算符。1.3.4 常用函数VFP用函数实现一种特定的功能。VFP中的函数从用户角度分为系统函数和用户自定义函数。VFP中的系统函数有400多个,这些函数增强VFP的功能,用户使用起来即简单有方便。本章节主要VFP常用的系统函数,其它系统函数可根据需要查VFP函数大全

40、.用户定义函数将在本章节中介绍。1系统函数的形式函数名(形参表)2 函数的返回值函数经过运算所得结果成为函数的返回值。3 常用函数的分类通常将常用的函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数五种。下面分别对这五类常用函数的应用格式及功能做以介绍。4常用函数(1)数值函数1)绝对值函数格式:ABS()功能:求数值函数表达式的绝对值。例1.14 ABS的应用x=2?abs(x), abs(10+x), abs(2+x), abs(2*x)执行结果: 2 8 0 42)符号函数格式:SIGN(数值表达式)功能:返回值表达式的值的符号,当表达式的值为正、负、0时函数分别为1

41、, 1, 0。例1.15 SIGN的应用x=3?sign(x), sign(1), sign(x3)执行结果:1 1 03)圆周率函数格式:pi( )功能:返回圆周率(数值型)。例1.16 PI( )应用s=pi( )*10*10?“s=”, s执行结果:s=314.164)求平方根函数格式:SQRT()功能::返回值表达式值的平方根,数值表达式的值不能为负。例1.17 sqrt的应用x=4y=2.22?sqrt (abs( 4), sqrt (10+y)执行结果:2.003.505)求整数函数格式:INT()功能:INT( )返回数值表达式的整数值例1.18 求整数函数的应用x=3.9?in

42、t(x), int(x)执行结果:3 36)四舍五入函数格式:ROUND(), ()功能: 数值表达式1四舍五入,保留数值表达式2的值。例1.19 ROUND( )函数应用x=123.456?round(x, 2), round(x, 1), round(x, 0), round(x1)执行结果:123.46 123.5 123 1207)求余函数格式:MOD(, )功能:返回数值表达式1除以数值表达式2的余数,且余数的符号与除数相同。若数值表达式1与数值表达式2同号,函数值为两数的余数,若异号,函数值为两数的余数再加上除数的值例1.19 MOD()应用x=10?mod(x, 4), mod(

43、x, 4), mod(x, 4), mod(x, 4)执行结果:2 2 2 28)求最大值函数格式:MAX, , )功能:求数值表达式1,数值表达式2,数值表达式3中的最大值。9)求最小值函数格式:MIN, , 功能:求数值表达式1,数值表达式2,数值表达式3中的最小值。例1.21 MAX( )应用x=10?max(2, 10, 2, 20, 9, x)执行结果:2010)求e的函数格式:EXP()功能:求e的数值表达式例1.22 EXP( )应用?exp(2)执行结果:7.39(2)字符函数1)求字符串长度函数格式:;LEN()功能::返回字符表达式的长度。例1.23 len( )应用x=“

44、中国哈尔滨”y=“china”?len(x), len(y)执行结果:10 52)大小写转换函数格式:LOWER()UPPER()功能:LOWER( )是将字符表达式中的大写字母转为小写字母。UPPER( )是将字符表达式中的小写字母转为小写字母。例1.24 LOWER和UPPER应用x=“123stUdy harD”?lower( x ), upper(x)执行结果:123study hard123STUDY HARD3)空格字符串生成函数格式:SPACE()功能::返回数值表达式值指定数目的空格。例:1.25 space( )函数的应用x=“We”y=“are”z=“student”?x+

45、space(2)+y+space(2)+z执行结果:We are students4)删除前导尾部空格函数空格:TRIM()LTRIM()ALLTRIM()功能:TRIM()将字符表达式的值的尾部空格去掉。LTRIM()将字符表达式的前导空格去掉。ALLTRIM()将字符表达式的值的前导与尾部空格同时去掉。例1.26 TRIM(),LTRIM(),ALLTRIM()函数应用a=“ 中国”b=“首都 ”c=“ 北京 ”d=a+b+c?a, b, c, d?TRIM(a)+LTRIM(b)+ALLTRIM(C)5)取子串函数格式:LEFT(, )RIGHT(, )SUBSTR(, , )功能:LE

46、FT()从字符表达式的左端开始取N个字符。RIGHT()从字符表达式的右端开始取N个字符。SUBSTR()从字符表达式的第N1个位置开始取N2字符。若N2省略,取到最后一个字符。例1.27 LEFT( ),RIGNT( ),SUBSTR( )的应用x=“中国北京首都”?LEFT(x, 4), RINGHT(x, 4), SUBSTR(x, 5, 4)6)求子串位置函数格式:AT(, , )功能:AT( )若字符表达式1为字符表达式2的子串时,则返回字符表达式1的首字符在字符表达式2的位置,否则返回0。数值表达式3是字符表达式1在字符表达式2中第几次出现,默认值为1。例1.28 AT( )应用x

47、=“This is a compute . The compute is our friend .”?AT(“is”, x ), AT (“is”, x, 3), AT(“The”, x)(3)日期和时间函数1)日期函数格式:DATE()功能:返回当前系统日期。2)时间函数格式:TIME()功能:返回当前系统时间。3)日期时间函数格式:DATETIME()功能:返回当前系统日期与时间。4)求天数函数格式:DAY()功能:返回天数。5)年份函数格式:YEAR( )功能:返回年份。6)月份函数格式:MONTH( )功能:返回月份。7)小时函数格式:HOUR()功能:返回小时8)分函数格式:MITU

48、TE()功能:返回分钟9)秒函数格式:SEC ()功能:返回秒数。例1.29 日期和时间函数的应用x=2005102 01:30:28 am?DATE( ), TIME(), DATETIME( ), DAY(DATETIME()?YEAR(X), MONTH(x), HOUR(x), MINUTE(x), SEC(x) (4)数据类型转换函数1)数值转换成字符型函数格式:STR( , , N)功能:将数值表达式转为长度为L , 小数位数N的字符串。例1.30 STR()应用x=1.278?STR(x, 8, 2), STR(x, 2)执行结果:-1.28-12)字符串转为数值函数格式:VAL

49、()功能:将字符表达式值转为数值。例1.31 VAL的应用x=“12.45”y=“b2.6”?VAL(x), VAL(y)执行结果: 12.45 0.003)将字符串转为日期或时间函数格式:CTOD()CTOT()功能:CTOD( )将字符表达式转为日期型函数。CTOT( )将字符表达式转为时间时间型数据。例1.32 CTOD和CTOT的应用?CTOD(2005102), CTOT(2005102 10:30:51 am)4)日期时间转为字符型数据格式:DTOC( | , 1 )TTOC( , 1)功能:DTOC()将日期表达式或日期时间表达式转为字符型数据,若选1则字符格式YYYYMMDD共8个字符。TTOC()将日期时间表达式转为字符型数据,若选1字符格式YYYYMMDDHHMMSS共14个字符。例1.33 DTOC和TTOC应用?D

温馨提示

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

评论

0/150

提交评论