《徐红波vfp教材(1-3章).docx》由会员分享,可在线阅读,更多相关《徐红波vfp教材(1-3章).docx(58页珍藏版)》请在课桌文档上搜索。
1、第1章概述计算机科学的开展使得它的应用领域逐步扩大,已进入社会的各个方面。信息化社会用计算机进行数据处理已成为日常工作的内容。数据库系统技术是用计算机进行数据处理的最简单、易学、易掌握的技术。VFP数据库继承了以往传统数据库的优点,是采用了面向对象的程序设计思想和可视化的编程工具,操作简单、易学,极大的方便了软件的开发。人们在使用它作为开发工具时,可以高效的开发出全新的可视化图形界面应用程序。所开发出的软件易于推广和应用。因此VFP应用较为广泛。本章主要介绍相关根本知识,为后续章节的学习打下根底。1.1数据库系统的开展与特点数据库系统的开展数据处理技术形成和开展经历了早期的人工管理、文件系统、
2、数据库系统这三个阶段。人工管理是最原始的数据管理方式,由于数据的不共享性,而被文件系统所代替。文件系统虽然数据具有共享性,但共享性差、独立性差,冗余度高而被数据库系统所代替。由于数据库系统具有共享性高、冗余度少、数据的独立性好的优点使它成为当今数据处理的主要工具。在20世纪60年代末美国IBM公司成功的研制出第一个商品化的数据库系统lMS(InformationManagementSystem)以后又相继出现了DBASEFoxBASEFoxProVFP等数据库系统。社会科技的进步促进了数据库技术的开展,与此同时数据库技术的开展又推动了计算机应用领域的扩大和深入。数据库系统的特点信息化社会的到来
3、,使数据库系统的应用更为广泛,技术更加成熟,它与人工管理、文件系统相比拟有如下的特点。1 .数据的结构化在人工管理中,数据文件中的每个数据项之间是无结构的。在文件系统中的数据文件中的每个数据项虽然是有结构,但整体是无结构的。而数据库系统中的数据文件(即数据表)中的每一个数据项之间是有结构的,在数据库中的数据文件之间是有联系的,整体是有结构的。2 .数据的共享人工管理中的数据文件是不共享的。文件系统中的数据文件虽然可共享,但由于数据文件是面向应用程序的,不同的应用程序当需要不同的数据时,就需要建立各自的数据文件,故共享性差。而数据库系统中的数据文件不是面向某一个应用程序,而是面向整个系统,因此可
4、被多个应用程序共享使用,故共享性高。3 .数据的独立性在人工管理中数据文件与程序是不独立的。文件系统中的数据文件,虽然有一定的独立性,但数据文件结构是面向应用程序的,数据文件的结构一旦改变,导致应用程序的改变,相应的应用程序改变也导致数据文件结构改变,这样也造成了文件系统中数据独立性差。而数据库中的数据文件,是面向整个系统的数据文件的,数据文件的结构改变应用程序可以不变,这样就突出了数据库的重要特点就是数据库的独立性高。4 .冗余度低由于数据系统的共享性比文件系统要好得多,共享性可以减少数据的冗余,提高了数据的一致性与完整性。1.2数据库的根本知识数据库系统1.数据(Data)数据是指能存储在
5、计算机系统的物理介质上并能被计算机识别的物理符号。他包括文字、图形、图像、声音等。2 .数据处理(DataProcessing)数据处理是指将数据转为对用户来讲有用信息的过程。3 .数据库(DatabaSe)数据库是指存储在计算机存储器中结构化的、能为多个用户共享且又独立于应用程序的相关数据的集合。4 .数据库管理系统(DBMS,DataBaseManagementSystem)数据库管理系统是指可以对数据库的建立、使用和维护管理的软件。他包括数据定义语言DDL(DataDefineLangUage)数据操纵语言DML(DateManipulationLanguage)管理与控制程序。5 .数
6、据库应用系统(DBAS,DataBaseApplySystem)数据库应用系统是指用数据库系统资源,面向某一实际应用而开发的具体应用程序软件系统。如:学籍管理系统、工资管理系统等。6 .数据库系统(DBS,DataBaseSystem)数据库系统是指在计算机系统中引入数据库后的系统,它由硬件系统、数据库集合、数据库管理系统、相关软件、数据库管理员、用户组成。数据模型1.数据模型的根本概念在现实世界中,人们将对研究对象的抽象化、形式化的描述过程称为模型。人们把表示客观事物及其联系的数据及结构称为数据模型。在数据库管理系统中有层次模型、网状模型、关系模型。下面就数据模型相关的根本概念做以介绍。实体
7、客观存在并可以相互区别的事物称为实体。如:一个学生、一门课等。(2)属性实体所具有的某一特性称为属性。如:一个学生实体可由学号、姓名、成绩等属性组成。域属性的取值范围称为域。如:学生的一门课成绩取值为O-100之间。(4)实体型假设干个属性名所组成的集合表示一个实体的类型称为实体型。(5)实体集同型实体的集合称为实体集。如:全班学生实体就是一个实体集。(6)联系实体联系有内部联系与实体外部联系。实体的内部联系是指实体内部各属性之间的联系。实体的外部联系也称实体之间的联系。通常是指不同实体集之间的联系。实体集之间的联系可分为三类。1 )一对一联系实体集A中的一个实体与实体集B中的一个实体至多有一
8、个实体相对应,反之亦然,那么称实体集A与实体集B有一对一联系。记为1:1。如旅客与车票等。2)一对多联系实体集A中的一个实体与实体集B中有N个实体相对应,反之实体集B中的一个实体至多与实体集A中的一个实体相对应那么称实体集A与实体集B有一对多联系,记为l:No如:一个学校的班级与学生之间是一对多联系。3)多对多联系实体集A中的一个实体与实体集B中的N个实体相对应,反之实体集B中的一个实体与实体集A中的M个实体相对应,那么称实体集A与实体集B有多对多联系记为M:No2 .数据模型(1)层次模型满足只有一个根节点,即没有双亲节点;除根节点以外的所有节点且只有一个双亲节点;上层节点与下层节点称为层次
9、模型。如图1.1所示。层次模型也称为树形结构。采用层次模型作为数据的组织方式的数据库管理系统称为层次数据库管理系统。图1.1层次模型(2)网状模型满足允许一个以上节点无双亲,允许节点可以多于一个双亲,节点之间可有多对多联系模型称为网状模型。如图1.2所示。图1.2网状模型采用网状模型作为数据的组织方式的数据库管理系统称为网状数据库管理系统。网状模型在于能更好描述现实世界,且可以支持多对多联系,但实现起来复杂不易掌握。(3)关系模型关系模型是1970年由美国IBM公司SanJose研究室的研究员EECodd首次提出,他并为关系数据库管理系统的技术奠定了根底。EEcodd的关系模型是建立在严格的数
10、学概念根底上。关系模型是用一张二维表来表示实体和实体间联系的模型。如图1.3所示表名为学生成绩,它为关系名。表中一行称为一个元组,表中一列称为属性。如表中有5个属性即学号、姓名、数学、英语、VFP0学生成绩学号姓名数学英语VFP1李小明9885962张朋8987883李丽8698100它要求关系必须标准化,包括:1)关系的每一个分量必须是以一个不可分的数据项,即表中不可含表;2)同一关系中不能有相同的属性名;3)关系中不允许有相同的元组;4)在一个关系中元组的次序可任意;5)在一个关系中列的次序可任意。关系模型的表示形式:关系名(属性1,属性2,,属性N)例如:学生成绩表可描述为如下关系:学生
11、成绩(学号,姓名,数学,英语,VFP)采用关系模型作为数据的组织形式的数据库管理系统称为关系数据库管理系统。在VFP中一个表就是一个关系,它的表结构为:表名(字段名1,字段名2,,字段名N)表名就是关系名,字段名1,,字段名N,就是关系中的属性1,,属性N。表中内容的一行称为一个记录,就是关系中的一个元组。3. 关系的完整性关泵的完整性包括实体完整性,参照完整性和用户定义完整性。现在先介绍一下与完整性相关的概念。概念1)关键字假设在关系中能唯一标识元组的一个或一组属性称为关键字。如学生成绩表中的学号。2)候选关键字候选关键字也是关键字,它是具有关键字特性的一个或多个属性的统称。假设学生成绩表中
12、学号、姓名都无重复值,那么学号与姓名就是候选关键字。假设姓名有重复值就不能是候选关键字。3)主关键字主关键字是在多个候选关键字中选出一个。一个关系中只能有一个主关键字。如在学生成绩表中学号为主关键字。4)外部关键字假设在一个关系R中一个属性不是本关系的主关键字或候选关键字,而是另外一个关系S的主关键字或候选关键字那么称此属性为本关系的外部关键字,R为参照关系,S为被参照关系。(2)关系的完整性1)实体完整性实体完整性是指关系中的主关键字不能取空值。空值就是(NULL)不确定的值。由于主关键字为空值,那这个元组是无意义的。如学生成绩表中,学号为空值,而其它属性却有值,那么该条记录无意义。2)参照
13、完整性参照骨整性是用来约束关系与关系之间的关系,即数据库约束数据库中表与表之间的关系。参照完整性是指一个关系R的外部关键字F与另一个关系S的主关键字K相对应(即F是S的主关键字)那么对R中的每一个元组在F上的值必须为空值或等于S中某一个元素的主关键字的值,如有以下两个关系(表):学生(学号,姓名,性别,专业代号)专业(专业代号,专业号)学生关系中的春业代号是外部关键字,但在专业关系中它是主关键字,这时,在学生关系中,专业代号的值或者取空值或者取专业关系中某个元组的专业代号的值,当在学生关系中的专业代号取空值时,表示该学生还没有分专业。在VFP数据库中的表来实现参照关系,应注意以下几点:当对含有
14、外部关键字的参照表进行创立、插入、修改时,必须检查外部关键字的值在被参照表中是否存在,假设不存在,那么不能进行该操作。当对被参照的表进行删除,修改时必须检查被删除的行或修改的行的主关键字值是否正在被参照表的外部关键字参照,假设是,那么不能进行该操作。用户定义完整性用户定义完整性是指根据用户的实际需要,属性域的完整性的规定。在VFP数据库表中是指字段的数据类型、宽度、精度、取值范围、是否允许空值。如学生成绩表中的数学,其数据类型可为整型,取0100之间等,取值范围又可分为静态与动态,静态是指字段的取值范围是固定的,如学生表中的数学。动态取值范围是指该字段的取值范围由其他字段的值来确定或在修改时,
15、由该字段原来的值来确定。VFP启动与主界面1. VFP的功能VFP是一个可视化数据库编程的开发工具,它用建立表、数据库,对数据库中的表建立关系并进行可视化管理。工程管理器是对多种文档、多种程序进行统一集中管理与维护的工具。VFP运用自身的向导、设计器、生成器等实现可视化编程,它运用交互式与自动化工作方式,方便了不同层次、不同应用用户的需求,它支持多媒体、网络编程,它能高效、快捷的开发出令人满意的应用软件。2. VFP系统环境(1)处理器:486DX/66MHZ以上的处理器。(2)内存储器:16MB以上内存。(3)典型安装需85MB的硬盘空间,最大安装需90MB硬盘空间。(4)推荐使用:VGA或
16、更高分辨率的监视器。(5)操作系统:win9598me2000xp/NT4.0或更高版本的操作系统。3. VFP的安装(1)将VFP系统光盘插入CD-ROM驱动器中。(2)采用以下二种方法之一o1)通过我的电脑或“资源管理器找到SeuIP.exe文件,双击该文件以后运行按照安装向导的进一步提示完成安装即可。2)单击win开始菜单,选“运行选项,键入光盘盘符:setup.exe并回车,运行安装向导,并按照安装向导的进一步提示完成安装即可。4. VFP的启动用以下方法之一就可以启动VFP:(1)单击开始程序-MicrosoftVisualFoxPro6.0MicrosoftVisualFoxPro
17、6.0o(2)双击桌面上的VFP6.0图标。5. VFP的退出采用以下方法之一就可以退出VFP:按Alt+F4o(2)在命令窗口中输入quit然后回车。(3)从文件菜单今退出。(4)双击左上角的控制图标。(5)单击左上角控制图标今关闭。6. VFP的主界面当启动VFP后就进入如图1.3所示的VFP主窗口。VFP的主窗口主要由标题栏、菜单栏、工具栏、主窗口、命令窗口、状态栏六局部组成。(1)标题栏用于显示MiCrOSOftViSUaLFoXPro并且有三个常用的按钮,它们是关闭按钮乂、最大化按钮例、最小化按钮。一个控制图标状态栏工具栏 主窗口图1.3VFP主窗口(2)菜单栏(主菜单)它提供了多种
18、选项供用户选择,如图1.3所示。每个选项都有下拉菜单,下拉菜单又提供了多个选项供用户使用。VFP菜单不是静止不变的,它是一个动态可变的,根据VFP的当时状态的不同,菜单栏中的选项及各下拉菜单的选项会有一些变化。这将在后续章节中逐步加以介绍。(3)工具栏如图1.3所示,它是由假设干个按钮组成,它也称为常用工具栏,每个按钮实现一个功能或命令供用户方便的使用。除常用工具栏以外VFP还有假设干个其它的工具栏。在编辑相应的文档中可根据需要定制、编辑、隐藏、创立工具栏,这将在后续章节中逐步加以介绍。(4)主窗口它用于显示结果。(5)命令窗口它可以输入、编辑、执行命令。(6)状态栏显示当前的状态,显示对用户
19、有用的信息。7. VFP工作方式VFP工作方式主要分为两类:一类为交互式工作方式,这包括在命令窗口直接执行和用菜单或工具栏按钮执行命令。另一类为自动化工作方式,它包括用编写的程序、各种生成器等自动生成程序后进行执行。在解决某一个问题时,两种工作方式哪一种或两种方式结合使用都可以得到同一结果。这两种工作方式为不同层次的用户、不同软件开发的用户提供了方便的使用方式,用户可根据自身的实际情况进行选择使用。8. 简单的VFP用户程序例1.1设计一个表单假设显示欢送你使用VFP,祝你成为软件开发的精英。单击文件菜单今新建,翻开新建对话框分在文件类型中选表单分新建文件按钮,翻开表单设计器。(1)设计一个表
20、单,表单中的标签控件及属性如图1.4所示。Foral欢迎你使用VFP,祝你成为软件开发的精英!图1.4欢送界面执行doform表单1例L2设计一个口令系统,假设口令正确显示欢送你进入学生成绩管理系统,否那么显示非法用户。在表单设计器翻开的情况下。(1)设计一个表单,表单中的控件及属性如图1.5所示。图1.5口令界面(2)确定按钮click事件代码如下:ifx=123456”messagebox,欢送你进入学生成绩管理系统”,0+48,“口令审核”)elsemessagebox(非法用户”,0+48,”非法用户”)endif退出按钮click事件代码如下:thisfbrm.release(4)执
21、行doform表单2例1.3设计一个两个串交换的表单。在表单设计器翻开的情况下。(1)设计一个表单,表单中的控件及属性如图1.6所示。图1.6两串交换界面(2)交换按钮click的事件代码如下:thisform.labe!2.caption=tthisform.refresh(3)退出按钮click的事件代码如下:thisfbrm.release(4)执行doform表单34. 3数据与数据运算VFP重要的作用就是对数据进行高效的处理。在VFP中从数据存储类型分为整型、浮点型、字符型、日期型等多种,如表1.1所示。从数据形式划分数据有常量、变量、函数、表达式等。下面我们就这方面的知识作进一步详
22、细介绍。表1.1数据类型数据类型占字节数取值范围说明字符型C256任意字符任意文本货币型Y8-922337203685477.5808-922337203685477.5807货币量日期型D80001-01-01)-9999-12-31)年、月、日表示的日期日期时间型T8(0001-0I-0100:00:00am-(9999-12-3I11:59:59pm)年、月、日、时间表示的日期和时间逻辑型L1T(M).F(fg)布尔值数值型N在内存占8个字节,在表中占120个字节-.9999999999+E19-9999999999E+20整数或小数双精度B8+/-4.94065645841247E-3
23、24+/-8.9884656743115E307双精度浮点数浮点型F同数值型一样-.9999999999+E19-.9999999999E+20同数值型一样通用型G在表中占4个字节受可用空间限制OLE对象引用整型I4-2147483647-2147483647整数值备注型M在表中占4个字节受可用空间限制数据块引用字符型(二进制)254任意字符任意不经过代码页修改而维护的字符型数据备注型(二进制)在表中占4个字节受可用空间限制任意不经过代码页修改而维护的备注型数注:M与G型数据是存放在.FPT文件中,在表中占的4个字节用于表示数据在.FPT文件中的存储地址。常量所谓的常量就是在程序执行中其值不变
24、的量,VFP中有6种类型的常量。1 .数值型常量(1)整数由数字组成,如O,2,3o(2)实数1)十进制表示形式,它由数字正负、小数点组成。如0.23,3.14等。2)用指数表示形式,它是数字小数点与E或e组成。如1.23x103可表示为1.23E3,如1.23xl02可表示为4.23e2E前要有数字,E后要有整数。2 .字符型常量它是用定界符方括号小单引号“、双引号括起来的一系列的有效字符,也称为字符串。如中国、abc、123”等。假设字符串中含有定界符,那么外面的定界符一定要与字符中的定界符不一样,如学生爱好计算机。3 .逻辑型常量它是由真与假组成,真可用.工、I、.Y.、.y.表示,假可
25、用.F.、.、.N.、n表示。4 .货币型常量用$、数字、小数点组成。如$1.23。5 .日期型常量形式为yyyy-mm-dd,如八2005-12-22。6 .日期前间型常量形式为yyyy-mm-ddhh:mm:ssampm,2005-12-2212:21:33am0变量变量就是它的值可以改变的量。变量可为两大类,一类为内存变量,另一类为字段变量。变量是有名的,为了介绍变量的命名规那么,先介绍标识符的概念。标识符是用来标识变量、函数、表、数据库、文件等的名子,即标识符就是一个名子。在VFP中标识符的组成规那么为:(1)由数字、字母、下划线组成。(2)以字母、下划线开头。(3)长度一般为1728
26、个字符,但对于数组名、自由表名、自由表中的字段名、索引标识符名最多为10个字符。(4)防止使用VFP保存字。(5)文件名必须遵循操作系统的规定。(6)汉字与字母同等待遇(一个汉字占两个字符位)。内存变量有N、C、Y、D、T、L六种类型。VFP规定内存变量的类型可以改变,即同一变量可以赋予不同的值。需要说明的是当内存变量与字段变量重名时,在访问内存变量时,VFP规定在内存变量名前加M-或加M.,否那么系统默认是访问字段变量。7 .简单变量与相关命令VFP的简单变量的定义用赋值命令。(1)赋值命令格式1:变量=表达式格式2:STORE表达式TO变量表功能:格式1将表达式的值赋给变量。格式2将表达式
27、的值赋给变量表中的所有变量。说明:1)表达式是运算符与操作对象连接起来的式子,表达式可为变量、常量、也可为表达式。2)变量表中的各变量用逗号分隔。(2)输出命令格式:?I?K输出工程表习功能:显示输出工程表中的各输出项。说明:1)输出项可为变量、常量、表达式。2)输出工程表中的各项是用逗号分隔的,命令执行时遇到逗号就空一格。3)单个?是表示在下一行输出各输出项,双?是表示在当前行当前列输出各输出项。例L4内存变量的应用。a=lb=.t.c=2005-10-12d=,A,e=2005-10-1212:30:28amstore10tof,gh=$123.23?a,b,c,d,e,f,ga=中国b二
28、哈尔滨”c=123?a,b?Mc=M,c?a,b执行结果:1.T.10/12/05A10/12/0512:30:28AM1010中国哈尔滨C=123中国哈尔滨8 .数组数组是按一定顺序排列的数据集合。数组中的每一个数据称为一个元素,数组中每一个元素的序号称为一个下标。数组中的所有元素在内存中是连续存放的。数组的定义格式:DIMENSIONDECLARE数据组名(下标上限1,下标上限2)功能:定义一个或多个数组。说明:1)数组定义后,系统自动为每一个元素赋逻辑假.E2)数组有一个下标的称为一维数组,有二个下标的称为二维数组。3)数组的最小下标为K4)数组的类型可以通过使用加以改变,同一数组的元素
29、类型可以不同。5)当在赋值、输入命令中只用数组名时,表示数组的所有元素有同一个值。6)数组名不能与简单变量重名。7)由于数组各元素在内存中是连续存放的,二维数组可作为一维数组来使用。8)数组与后面章节中的表可相互传递数据。9)数组中的每一个元素都是简单变量,因此简单变量所有的功能数组元素都具备,简单变量适用的场合数组元素都适用O例L5一维数组的应用。dimensiona(5),b(5)a=10a(5)=23b(l)=2*a(l)b(3)=三,中国b(4)=2005-10-6b(5)=$123.2?a(l),a(2),a(3),a(4),a(5)?b(l),b(2),b(3),b(4),b(5)
30、执行结果:101010102320.E中国10/06/05123.2000例L6二维数据组当一维数组使用。dimensiona(2,2)a(l,1)=2a(l,2)=哈尔滨a(2,1)=6a(2,2)=2005-10-20?a(l),a(2),a(3),a(4)执行结果:2哈尔滨610/20/059 .内存变量的显示与释放(1)内存变量的显示格式:LISTlDISPLAYMEMORYLIKEV通配符TOPRINTTOFILE文件名功能:显示内存变量的名、作用域、类型、值。说明:DLlKE子句是显示与通配符相匹配的内存变量信息。通配符有?与*,?表示一个任意字符,*表示多个任意字符。2)TOPR
31、lNT子句是将显示内存变量的信息同时从打印机输出。3)TOFILE文件名子句是将显示内存变量的信息同时存入由文件名指定的文件中。4)UST不管显示的信息有多少,都一次显示完。5)DlSPLAY显示的信息多于一屏时,分屏显示。每显示一屏就暂停下来,待用户按任意键后继续显示。(2)内存变量的释放格式1:CLEARMEMORY格式2:RELEASEV内存变量表格式3:RELEASEALLEXTENDED格式4:RELEASEALLLIKE通西已符EXCEPT通西已符功能:格式1释放所有内存变量。格式2释放由内存变量表指定的内存变量。格式3释放所有内存变量,无任何选项释放所有内存变量,在程序中要选EX
32、TENDED,否那么不能释放公共变量。格式4中选LlKE通配符时,释放与V通配符相匹配的内存变量;中选EXCEPT通配符时,释放与V通配符不相匹配的内存变量。例1.7内存变量的显示与应用。a=2abc=6b二中国”al=哈尔滨dimensionc(3)c(1)=2005-10-20c(2)=22displaymemorylikea?tofileqq1displaymemorylikea*tofileqq2releasealllikea*dispplaymemorylikea*releaseall执行结果:APrivN2(2.00000000)AlPrivC“哈尔滨”APrivN2(2.0000
33、0000)ABCPrivN6(6.00000000)AlPrivC“哈尔滨”运算符与表达式VFP的运算符主要有六种,它们是算术运算符、字符串运算符、关系运算符、逻辑运算符、日期与日期时间运算符、宏替换运算符。1 .算术运算符与表达式算术运算符要求它的操作数必须为数值。由算术运算符与操作数连接的式子为表达式,算术表达式的运算结果为数值。算术运算表达式如表1.2所示。表1.2算术运算符与表达式优先级运算符含义表达式结果1()括号(2+3)*210*乘3*262/除10/25%取余10%313+加2+35例1.8算术运算符及表达式的应用x=2尸37(x+2)*y%6-X2 .字布串运算符字符串运算符
34、是用于连个字符串相连接,即它的操作数是字符串。由字符串运算符连接起来的式子为字符串表达式。字符串运算符与表达式如表所示。表1.3字符串运算符与表达式运算符含义表达式结果+将两个字符串连接起来组成一个新字符串。“中国+北京”“中国北京”-将两个字符串连接成一个新串。假设第一个字符串尾部有空格,就将此空格移到新串的尾部“中国-北京”“中国北京例1.9字符串运算符表达式的应用a二黑龙江b二哈尔滨c二东方学院?ab+c,a-b-c3 .关系运算符与表达式关系运算符就是用于关系之间进行关系比拟,它的操作数是同类型的。由关系运算符连接起来的式子为关系表达式。关系表达式的结果是一个逻辑值。假设关系成立结果为
35、真.T.否那么为假F关系运算符与表达式如表1.4所示。表1.4关系运算符与表达式运算符含义表达式结果大于34.F.=大于等于IO=6“abc”=力23”.T.小于24.T.=小于等于3=2,x!=y,x4.T.2AND与:AND两边操作对象全为真,结果才为真。102AND53.3OR或:Or两边操作有一个为真,结果就为真。102OR310.例Ln逻辑表达式的应用a=,中国黑龙江b=,黑龙江c=3d=-l?b$aandc35 .日期、日期时间运算符与表达式日期、日期时间运算符可以对操作对象进行加、减运算。用这种运算符连接起来的式子为日期、日期时间表达式。运算符与表达式如表1.6所示.表1.6口期
36、时间运算符与表达式运算符含义表达式结果+日期天数相加形成新的日期2005-10-2)+1020+(2005-11-01)2005-10-12)20051121)日期天数相加形成新的日期日期与日期相减得两个日期相差的天数2005-10-20)-102005-10-20)-2005-10-10)2005-10-10)10+日期时间与秒相加形成新的日期时间秒与日期时间相加形成新的日期时间2005-10-2010:20:30am)+10I0+2005-10-2010:20:30am)2005-10-2010:20:40am2005-11-2010:20:40am)日期时间与秒数相减形成新的日期时间日期
37、时间与日期时间相减得秒2005-10-2010:20:30am)-102005-10-2010:20:30am)-2005-10-2010:20:30am)2005-10-2010:20:20am)20例L12日期,日期时间运算符及表达式的应用。a=2005-11-20b=10?a+b,b+a,2005-12-20)+10,a-10,10-ac=2005-11-2010:30:30amd=2005-ll-2010:20:10am?c+10,10+d,c-10,10-c,c-d6 .宏替换运算符与表达式宏替换运算符的操作为字符型变量。用此运算符连接起来的式子为宏替换表达式。作用是替换出字符型变量
38、的内容。宏替换运算符与表达式如表1.7所示。表1.7宏替换运算符与表达式运算符含义表达式结果&与替换字符型变量的内容,形式为:&V字符型变量Y字符型表达式a=abc“X=ab=&x+“deabcde52X=y=5&x2”例1.13宏替换运算符的应用。a=中国b=?a?&bx=100y=200+?&y.x在含用字符运算符、日期和日期时间运算符、宏替换表达式、算术运算符、关系运算符和逻辑运算符和混合表达式中、,前四者的优先级高与关系运算符,而关系运算符优先级高与逻辑运算符。常用函数VFP用函数实现一种特定的功能。VFP中的函数从用户角度分为系统函数和用户自定义函数。VFP中的系统函数有400多个,
39、这些函数增强VFP的功能,用户使用起来即简单有方便。本章节主要VFP常用的系统函数,其它系统函数可根据需要查VFP函数大全.用户定义函数将在本章节中介绍。1 .系统函数的形式函数名(形参表)2 .函数的返回值函数经过运算所得结果成为函数的返回值。3 .常用函数的分类通常将常用的函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数五种。下面分别对这五类常用函数的应用格式及功能做以介绍。4 .常用函数(1)数值函数1)绝对值函数格式:ABS(数值表达式)功能:求数值函数表达式的绝对值。例1.14ABS的应用x=-27abs(x),abs(10+x),abs(2+x),abs(2*
40、x)执行结果:28042)符号函数格式:SlGN(数值表达式)功能:返回值表达式的值的符号,当表达式的值为正、负、0时函数分别为1,-1,Oo例1.15SIGN的应用x=37sign(x),sign(-l),sign(x-3)执行结果:1-103)圆周率函数格式:pi()功能:返回圆周率n(数值型)。例1.16PlO应用s=pi()*10*10?“s=,S执行结果:s=314.164)求平方根函数格式:SQRT(数值表达式)功能::返回值表达式值的平方根,数值表达式的值不能为负。例L17sqrt的应用x=-4y=2.22?sqrt(abs(4),sqrt(10+y)执行结果:2.003.505
41、)求整数函数格式:INT(V数值表达式)功能:INT()返回数值表达式的整数值例118求整数函数的应用x=3.97int(x),int(-x)执行结果:3-36)四舍五入函数格式:RoUND(数值表达式),(数值表达式)功能:数值表达式1四舍五入,保存数值表达式2的值。例1.19RoUND()函数应用X=123.4567round(x,2),round(x,1),round(x,0),round(x-l)执行结果:123.46123.51231207)求余函数格式:MoD(V数值表达式1,V数值表达式2)功能:返回数值表达式1除以数值表达式2的余数,且余数的符号与除数相同。假设数值表达式1与数
42、值表达式2同号,函数值为两数的余数,假设异号,函数值为两数的余数再加上除数的值.例L19MOD()应用x=107mod(x,4),mod(x,-4),mod(-x,4),mod(-x,-4)执行结果:2-22-28)求最大值函数格式:MAX(V数值表达式1,数值表达式2,v数值表达式3)功能:求数值表达式1,数值表达式2,数值表达式3中的最大值。9)求最小值函数格式:MIN(V数值表达式数值表达式2Jv数值表达式3)功能:求数值表达式1,数值表达式2,数值表达式3中的最小值。例1.21MAX()应用x=107max(2,10,-2,20,9,x)执行结果:2010)求e的函数格式:EXP(数值表达式)功能:求e的数值表达式例1.22EXP()应用7exp(2)执行结果:7.39(2)字符函数1)求字符串长度函数格式:;LEN(C字符表达式)功能::返回字符表达式的长度。例1.23Ieno应用X=中国哈尔滨y=china71en(x),len(y)执行结果:1052)大小写转换函数格式:LoWER(字符表达式)UPPER(字符表达式)功能:LoWER()是将字符表达式中的大写字母转为小写字母。UPPER()是将字符表达式中的小写字母转为小写字母。例1.24LOWER和UPPER应用X=123StUdyharD71ower(X),upper(x)执行结果:123studyha