VFP讲义-2011-03版--打印版_第1页
VFP讲义-2011-03版--打印版_第2页
VFP讲义-2011-03版--打印版_第3页
VFP讲义-2011-03版--打印版_第4页
VFP讲义-2011-03版--打印版_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、二级课程 _Visual FoxPro讲课教师:孙立新课程介绍 学习目标: 二级顺利通过学习步骤 理论 :掌握基础理论知识,为灵活应用打基础实操 :运用所学知识做题综合提高 :由浅入深的逐步接触考试题型学习必备工具书:高等教育出版社专用教材资料 :无忧精选模拟试题课程按排课次内容1基本概念与基本操作2常量,数据库及表的建立与应用3变量,表达式,变量及表达式在表中的应用4字段有效性,参照完整性多、工作区的应用5简单查询,联接查询6嵌套查询,查询中的计算,排序,输出7查询与视图设计器 定义功能与操纵功能8视图,查询的综合应用9程序初步,程序的基本结构10过程,程序实例与表单设计11程序实例与表单设

2、计12表单的设计,考试的重点13表单的设计,考试的难点14菜单的建立与报表的设计第一章 Visual FoxPro 数据库基础知识点专用术语关系概念数据库的概念建立数据库处理数据库中表间的联系安装、启动、退出界面组成、命令窗口的使用工具栏的使用个性化环境的设置项目管理器的应用11 数据库基础知识111 计算机数据管理的发展1数据与数据处理数据是指存储在某一种媒体上能够识别的物理符号,数据的概念包括两个方面:其一是描述事物特性的数据内容;其二是存储在某一种媒体上的数据形式。数据不仅包括数字、字母、文字和其化特殊的字符组成的文本形式的数据,而且还括图形、图像、动画、影像、声音等多媒体数据。数据处理

3、:指将数据转换成信息的过程。2计算机数据管理的发展 人工管理 特点:数据与程序不具有独立性,一组数据只对应一组程序;数据不长期保存,程序运行结束后就退出计算机系统,一个程序中的数据无法被其它程序利用,因此,程序与程序之间存在大量的重复数据,称为数据冗余。文件管理 特点:程序与数据有了一定的独立性,程序和数据分开存储,有了程序文件和数据文件的区别,数据文件可以长期保存在外存储器上被多次存取。 但文件系统中的数据文件是为了满足特定业务领域或某部门的专门需要而设计,服务于某一特定应用程序,数据和程序相互依赖,同一数据项可能重复出现在多个文件中,导致数据冗余度大,这不仅浪费存储空间,增加更新开销,更严

4、重的是:由于不能统一修改,容易造成数据的不一致性。数据库系统管理 特点:有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据,减小数据的冗余度,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。DBMS:为数据库的建立、使用、维护而配置的软件称为数据库管理系统,VISUAL FOXPRO 6.0(Data Base Management System,DBMS)数据库系统:引进数据库技术后的计算机系统,实现有组织地,动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段1.1.2 数据库系统DBS1有关数据库

5、的概念数据库(DATABASE 简称DB)存储在计算机存储设备上,结构化的相关数据集合数据库应用系统:系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。数据管理系统(DataBase Management System 简称 DBMS):对数据库的建立、使用和维护进行管理。数据库系统(DataBase System 简称 DBS)引进了数据库技术后的计算机系统,数据库系统由五个部分组成: 硬件系统,数据库集合,数据库管理系统及相关软件,数据库管理员和用户。普通用户裸机:计算机的基础硬件组装后的机器操作系统 XP WIN2000等数据库管理系统 DBMS就是vfp数据库

6、应用系统就是用Vfp开发的软件数据库管理员DBS包含(DBMS DB) DBMS 是数据库系统的核心 2数据库系统的特点、数据共享 ,减少冗余 :数据的最小访问单位是字段 即属性、采用特定的数据模型:(关系模型):数据库系统不仅可以表示事物内部各数据项之间的联系,而且可以表示事物与事物之间的联系,从而反应出现实世界事物之间的联系。、数据独立、统一控制113 数据模型1实体的描述实体:客观存在的可以区别开来的事物真实存在的事物:学生、课程、书、库房、商品事物之间的联系:选课、学生借书、职工订货属性:描述实体的特性职工实体(职工号,姓名,性别,出生日期)选课(课程号,学号,成绩)实体集:相同类型的

7、实体的集合成绩表、职工名单在Visual FoxPro中用表来存放同一类实体,即实体集在Visual FoxPro中用一条记录来存放同一个类实体, 2、实体间联系的种类n 一对一联系班级与班长、部门与部门经理n 一对多联系 部门与职工、系与学生 n 多对多联系 学生与选课、职工与供货商 3、数据模型简介n 数据模型是数据库管理系统用来表示实体及实体间联系的方法n 数据库管理系统所支持的数据模型分为三种: 层次模型 (一对多联系) 网状模型 (多对多联系) 关系模型 (用二维表来表示实体及实体间联系的模型)、层次模型(一对多联系)系代码系名系主任地点电话教研室名办公室系主任电话课程号课程名学分课

8、时职工号姓名性别职称、网状模型(多对多联系)专 业 系教 研 室课 程学 生教 员任 课选 课、关系数据模型:(一对一,一对多,多对多)以关系数据理论为基础的,用二维表结构来表示实体及实体之间联系的模型。在关系模型中把数据看成是二维表中的元素,操作的对象和结果都是二维表,一张二维表就是一个关系。12 关系数据库121 关系模型定义:用二维表来表示实体及实体间联系的数据模型关系 属性 元组表 字段 记录1、关系术语关 系 名:表的名字元 组:水平方向上的行属 性:垂直方向上的列关系(属性1,属性2)表(字段1,字段2)域: 属性的取值范围,例:性别属性中的取值仅为男或女关 键 字:属性或属性的组

9、合,其值能够惟一地标识一个元组 主索引外部关键字:如果表中的一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,则这个字段就称为外部关键字 普通索引实践:关键字与域的应用订货管理数据库中做练习建立各表的主关键字建立各表间的联系建立职工表中工资字段上的有效性规则增加性别字段,建立有效性2、关系的特点n 特点a) 关系必须规范化,即在关系模型中对关系有一定的要求,即每个属性必须是不可分割的数据单元发放日期姓名应发工资应扣工资实发工资基本工资绩效工资奖金应发合计保险税费住房应扣合计以上的复合表不可以VFP中实现工资表(发放日期,姓名,基本工资,绩效工资,奖金,保险,税费,住房

10、公积)b) 关系中不允许有完全相同的元组,即冗余c) 在一个关系中不能出现相同的属性名d) 在一个关系中元组即记录的次序无关紧要e) 在一个关系中列即属性的次序无关紧要122 关系运算 1、传统的集合运算: 交,并,差 两个关系必须有相同的关系模式,即相同的结构AB姓名课程成绩 黄杨语文90张亮数学98王司语文97姓名课程成绩张亮数学98李丽语文98李杰数学97专门的关系运算: 查询时再讲 选 择:从关系中找出满足给定条件的元组 查询结果中的属性与原表相同 投 影:从关系模式中指定若干个属性组成新的关系 查询结果中的属性少于原表 联 接:关系的横向结合 查询从两个或两个以上的表完成 自然联接:

11、去掉重复属性的等值联接 13 、数据库设计基础132 数据设计过程1、需求分析用户需求主要包括三方面:a) 信息需求,即用户要从数据库获得的信息内容b) 处理需求:即需要对数据完成什么处理功能及处理的方式c) 安全性和完整性要求:在定义信息需求和处理需求的同时必须相应确定安全性、完整性约束。2、确定需要的表确定数据库中的表是数据库设计过程中技巧性最强的一步。因为根据用户想从数据库中得到的结果(包括要打印的报表,要使用的表单,要数据库回答的问题)不一定能得到如何设计表结构的线索。还需要分析对数据库系统的要求,推敲那些需要数据库回答案的问题。仔细研究需要从数据库中取出的信息,遵从概念单一化“一事一

12、地”的原则,即一个表描述一个实体或实体间的一种联系,并把这些信息分成各种基本实体。3、确定表中的字段a) 每个字段直接和表的实体相关b) 以最小的逻辑单位存储信息c) 表中的字段必须是原始数据: 出生日期:年龄d) 确定主关键字字段 n 数据库的每个表都必须有一个或一组字段可以用以惟一确定存储在表中的每个记录,即主关键字。 n VFP 利用主关键字迅速关联多个表中的数据,不允许在主关键字字段中有重复值或空值 。(主索引)4、确定表间联系 n 一对多联系n 就要把“一方”的主关键字字段添加到“多方”的表中,在联系中,“一方”用主关键字或候选索引关键字,而“多方”使用普通索引关键字。n 例如:仓库

13、与职工之间用仓库号联系n 多对多联系n 方法是创建第三个表(建立新的关系),把多对多的联系分解成两个一对多的联系,所创建的第三个表包含两个表的主关键字。n 例如:职工与供应商的联系是建立订购单表 学生与课程之间的联系是建立成绩表n 一对一联系如果两个表有相同的实体,可在两个表中使用相同的主关键字字段如果两个表有不同的实体及不同的主关键字,选择其中一个表,把它的主关键字字段添加到另一个表中作为外部关键字字段,以此建立一对一关系。5、设计求精数据库设计在每一个具体阶段的后期都要经过用户确认,下面是需要检查的几个方面:1 是否遗忘了字段?2 是否存在保持大量空白字段?3 是否有包括了同样字段的表?4

14、 表中是否带有大量并不属于某实体的字段?5 是否在某个表中重复输入了同样的信息?6 是否为每个表选择了合适的主关键字?7 是否有字段很多而记录却很少的表,而且许多记录中的字段值为空?14 Visual FoxPro 系统概述141、安装、 启动、退出n 安装与启动n 开始à程序àn 启动时:答题菜单启动软件n 退出 Page (23)n 用鼠标左键单击Visual FoxPro 6.0 标题栏最右面的关闭窗口按钮n 从“文件”下拉菜单中选择退出选项。n 单击主窗口左上方的狐狸图标,从窗口菜单中选择“关闭”或者按ALT+F4键n 双击小狐狸图标n 在命令窗中键入QUIT命令,

15、按一下ENTER键。142 Visual FoxPro的主界面1、菜单操作鼠标操作:用鼠标左键单击菜单条项目,下拉子菜单出现在屏幕上,单击所选择的项目,则激发与之相关的操作键盘操作:所有菜单项目的名字中都有一个带下划线的字母,该字母是菜单的“热键”,按住ALT键后按下所选菜单的“热键”就激发了该菜单项。光标操作:在选择子菜单时,按光标键将光带移动到所需菜单选项上,然后按回车键即可激发相关操作2、命令窗口的使用 (笔试选择)n 打开n 单击“常用”工具栏上的“命令窗口”按钮,按下则显示,弹起则隐藏n Ctrl+F2组合键n 关闭n 单击合令窗口右上角的关闭按钮n Ctrl+F4组合键 可以写的清

16、除主屏幕的命令为:CLEAR 退出VFP: QUIT? 换行 ? 不换行 clear 命令窗口中字体的格式设置 格式字体 或右键属性清除操作记录,清除主屏幕,3、项目管理器窗口项目管理器是Visual FoxPro中各种数据和对象的主要组织工具。143、工具栏的使用n 工具栏的显示与隐藏n “显示“菜单à工具栏,在弹出的对话框中选择要打开或关闭的工具栏,单击”确定“按钮n 工具栏的定制n “显示“菜单à工具栏,在弹出的对话框中选择要打开或关闭的工具栏,单击右侧的新建,输入工具栏名称后,将所需的按钮拖到新的工具栏上即可n 工具栏的修改n 在工具栏对话框中选择要删除的工具栏,单

17、击右侧的删除按钮 在工具栏对话框中,当选中系统定义的工具栏时,右侧有“重置”按钮,单击该按钮可以将用户定制过的工具栏恢复到系统默认构成。n 工具栏的删除n 在工具栏对话框中选择要删除的工具栏,单击右侧的删除按钮n 注意:系统原有的工具栏不能被删除144、Visual FoxPro 的设置1.使用选项对话框选择“工具”菜单中的“选项”命令,打开选项对话框,进行具体的设置n 日期与时间:在区域选项卡n 状态栏,系统信息:在显示选项卡n 设置保存n 一次性:单击“确定”按钮n 永久保存:单击“设置为默认值”之后,再单击“确定”按钮n 文件位置中默认目录的应用 工具à选项à文件位置

18、帮助文件的位置也要在这个选项卡下进行设置15项目管理管理器151、项目管理器的应用n 理解项目的意义:是指文件,数据、文档和Visual FoxPro对象的集合。项目管理器是Visual FoxPro中处理数据和对象的主要组织工具。它为系统开发者提供了极为便利的工作平台。一是提供了简便的、可视化的方法来组织和处理表、数据库、表单、报表、查询和其他一切文件,通过单击鼠标就能实现对文件的他建、修改、删除等操作;二是在项目管理器中可以将应用系统编译成一个扩展名为.app的应用文件和.exe的可执行文件。n 如何新建项目P31项目管理器将一个应用程序的所有文件集合成一个有机的整体,形成一个扩展名为.p

19、jx的项目文件。1. 创建一个项目有两种途径:一是仅创建一个项目文件,用来分类管理其他文件,2. 使用应用程序向导生成一个项目和一个Visual FoxPro应用程序框架.n 新建项目,打开项目n 各类文件选项卡数据:包括了一个项目中的所有数据:数据库,自由表,查询和视图文档:输入和查看数据所用的表单,打印表和查询结果所用的报表和标签代码:扩展名为.prg的程序文件,函数库apiliraries 和应用程序.app文件其他:文本文件,菜单文件和其他文件全部:以上各类文件的集中显示窗口n 使用项目管理器n 新建不同类型的文件n 打开不同类型的文件n 修改不同类型的文件n 将文件从项目中移出n 将

20、文件添加到项目中16 Visual FoxPro的向导、设计器、生成器简介1、 启动向导的四种途径(P39)a) 在项目管理器中选定要创建的文件的类型,然后选择“新建”,系统弹出如图所示的“新建XX”的对话框,然后单击“向导”按钮b) 从“文件”菜单中选择“新建”,或者单击工具栏上的“新建”按钮,打开“新建”对话框,选择待创建文件的类型。然后单击相应的向导按钮就可以启动相应的向导。c) 在“工具”菜单中选择“向导”子菜单,也可以直接访问大多数的向导。d) 单击工具栏上的“向导”图标按钮可以直接启动相应的向导。2、 Visual FoxPro的设计器:(P40)Visual FoxPro的设计器

21、创建和修改应用系统各种组件的可视化工具。3、 Visual FoxPro 的生成器(p42)是带有选项卡的对话框,用于简化对表单,复杂控件和参照完整性代码的创建和修改过程。第二章: Visual FoxPro 程序设计基础知识点n 常量n 分类n 输写方式n 变量n 分类n 如何使用n 表达式n 分类n 计算规划n 函数n 功能n 语法格式21 常量与变量211、常量 所有的符号应该在中文半角或英文状态下输入 ctrl+空格键中英文切换n 概念:是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是在所有的命令操作或程序运行过程中其值不变。n 分类:n 数值型 N 、货币型 Y 、字符

22、型 C 、日期型 D 、时间日期型 T 、逻辑型 L 在输写之前应将输入法切换到英文状态,符号与定界符应中小写、数值:n 同以前的写法n 5.878E12表示5.878*1012、货币n 与数值常量类似,书写时要加上一个前置的$ 符号、字符型 n 字符型:也称为字符串,其表示方法用半角单引号,双引号或方括号把字符串扩起来n 单引号,双引号或方括号称为定界符,定界符不作为常量本身的内容,它只规定了常量的类型以及常量的起始和终止界限n 字符型常量的定界符必须成对匹配,如果某种定界符本身也是字符串的内容,则需要用另一种定界符为该字符串定界。n 不包括任何字符的字符串(“)叫空串,长度为零;空串与包含

23、空格的字符串(“ “)不同。长为空格的个数。可以用 len ()函数测试得到字符串的长度。、日期型常量日期型常量的定界符为一对花括号,花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔,系统默认为斜杠(),常用的其他日期分隔符有连字号(),句点(.)和空格。 例: 2004/12/101. 日期型常量的格式有两种:n 传统的日期格式受SET DATE TO 和 SET CENTURY TO 设置的影响n 12/25/2004 或30/12/2005 工具à选项à常规à严格日期级别=0n 严格的日期格式,这种格式的日期在书写日期常量是要注意:花括号内第一个

24、字符必须是脱字符(),年份必须用4位,年月日的次序不能颠倒、不能缺省。n 2004/12/25 、1987/02/01n 工具à选项à常规à严格日期级别=0 ,1,2 任何时候都有效2. 影响日期格式的命令n SET MARK TO 日期分隔符n 用于设置显示日期型数据时使用的分隔符如:“-”、“.”若缺省则为“/”n SET DATE TO AMERICAN|ANSI|BRITISH|USA|MDY 等 n 设置日期显示的格式 n SET CENTURY ON/OFFn 用于设置显示日期型数据时是否显示世纪 n Set StrictDate to 0|1|20

25、表示不进行严格的日期格式检查,目的是与早期Visual FoxPro兼容;1 表示进行严格的日期格式检查,它是系统默认的设置;2 表示进行严格的日期格式检查,并且对CTOD()和CTOT()函数的格式也有效。、日期时间型n 包括日期和时间两部分内容 在VFP中不可以不写日期,直接写时间,不存在单独的时间型数据例:2004/12/25 ,12:25:56 pm注意:AM(或A)和PM(或P)分别代表上午和下午,默认值为AM,如果指定的时间大于等于12则自然为下午的时间。、逻辑型n 只有逻辑真和逻辑假两个值,性别 男 .t. 女 .f.n 逻辑真的表示形式有:.t. .T. .y. .Y. n 逻

26、辑假的表示形式有:.f. .F. .n. .N.前后两个句点作为逻辑型常量的定界符必不可少n 注意在表中写每种类型常量时不用加定界符,而在输出时写常量时必须加定界符,字段名不加定界符,因为字段名是字段变量见讲义辅助第二章 实践:以上各种常量在表中的应用212、变量(P52)变量值是能够随时更改的,每个变量有一个变量名,代码通过变量名来访问变量的取值,变量名以字母,汉字和下划线开头,后接字母、数字、汉字和下划线构成。数字不要做为变量名的起始字符 A_9 仓库1 12_b n 字段变量:各条记录对同一个字段名可能取值不同, 即表中的属性 EMAIL (026 雇员管理.dbc) 单击打开 字段变量

27、考试题 当内存变量与字段变量同名时,字段变量优先于内存变量,如果想使用内存变量,则在内存变量前要加m.变量名 m->变量名 才可访问内存变量n 内存变量:内存中的一个存储区域,变量值是存放在这个区域里的数据,而变量的类型即为变量值的类型。当把一个常量赋给一个变量时,这个常量就被存放到该变量对应的存储区域中而成为变量新的取值。在Visual FoxPro中,变量的类型可以更改,也就是说:可以把不同类型的数据赋值给同一个变量,而变量的值始终为最后一次给变量赋予的值。n 根据变量取值不同分为 C 字符 N 数值 Y 货币 L 逻辑 D 日期 T 日期时间见讲义辅助第二章 变量在VFP里的应用1

28、变量的赋值不必事先定义,赋值命令的两种格式:n 格式一:内存变量名表达式例:CKH=“WH2” CKH为变量名,输写时不加尖括号 只提供其中的指定内容项 “WH2” 为变量的取值,是字符型常量,要加定界符n 格式二: STORE <表达式> TO 内存变量名表 同时给多个变量赋予相同的值例:STORE ”中国人“ TO A1,A2,A3则将“中国人”这个字符值同时赋给A1,A2,A3这三个变量 注意:要将a,b,c三个变量分别赋予1,2,3的值第一种方式: store 1,2,3 to a,b,c 第二种方式: a=1,b=2,c=3 第三种方式: a=1 b=2 c=3第一种与第

29、二种方式均为错误的赋值方式,第三种为正确的赋值方式功能注释:n 等号一次只能给一个内存变量赋值,STORE命令可以同时给若干个变量赋予相同的值,各内存变量名之间必须用逗号分开。n 在VFP中,一个变量在使用之前并不需要特别的声明或定义,当用STORE命令给变量赋值时,如果该变量不存在,系统会自动建立它。n 可以通过对内存变量重新赋值来改变其内容和类型。2.数组n 定义:是内存中连续的一片存储区域,它由一系列元素组成。n 每个数组元素可通过数组名及相应的下标来访问 梅1123(1,2)n 每个数组元素相当于一个简单的变量,可以给各元素分别赋值,n 在VFP中,一个数组中的各元素的数据类型可以不同

30、。 数组定义的命令格式n 与简单内存变量不同,数组在使用之前一般要先创建,规定数据组是一维数组还是二维数组,VFP中只能创建一维或二维数组 n 命令格式为DIMENSION 数组名(下标上限, 下标上限, n DECLARE 数组名(下标上限, 下标上限), 两种格式的功能完全相同,数组创建后,系统自动给每个数组元素赋予逻辑假.f.,整个数组的数据类型为A(array),而各个数组元素可以分别存放不同类型的数据。使用数组时应注意的问题n 在一切使用简单内存变量的地方,均可以使用数组元素。n 在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。梅2215=”月月”n 在同

31、一个运行环境下,数组名不能与简单变量名重复。n 在赋值语句中的表达式位置不能出现数组名。n 可以用一维数组的形式访问二维数组 n 如果给数组中不存在的元素赋值,则错误为“下标超界”见讲义辅助第二章 二、数组使用时的相关命令2.1.3 内存变量常用命令1.内存变量的赋值 Store <表达式> to <内存变量名表> Store “12” to a,b,c <内存变量名>=<表达式> h=202.表达式值的显示 ? <表达式表> 换行输出 ? <表达式表> 不换行输出3.内存变量的显示n LIST MEMORY LIKE 通

32、配符TO PRINTER|TO FILE<文件名> 满屏后不暂停n DISPLAY MEMORY LIKE 通配符TO PRINTER|TO FILE<文件名> 满屏后暂停显示4.内存变量的清除 n CLEAR MEMORYn RELEASE <内存变量名表>n RELEASE ALL EXTENDEDn RELEASE ALL LIKE <通配符>|EXCEPT<通配符> ? 一个 * 任意多个功能: 格式1清除所有内存变量 格式2清除指定的内存变量 release ba 格式3 清除所有的内存变量,在人机会话状态时其作用与格式1相

33、同.如果在程序中,则应该加上短语EXTENDED,否则不能删除全局内存变量。格式4 表示选用LIKE短语清除与通配符相匹配的内存变量。d=45bcd=456ad=481release bcddisp memoryrelease all like ?d* 在使用以上命令时注意: DIME ARR1(3,5) RELEASE ARR1(2,3) && 是错误的 数组中的数据元素不可以是不连续的 RELEASE ARR1 && 是正确的 可以将整个数组清除5数组在表间的数据传递功能n 将表的当前记录复制到数组KK _ TO _ n SCATTER TO SZ&

34、& sz 为数组名 scatter to sz 表 数组n 将数组值复制到表的当前记录 n && sz 为上一命令中的数组名 GATHER FROM SZ 表 数组n 在当前表在打开时应用如下命令 APPEND BLANKGATHER FROM SZ 见讲义辅助第二章 三、数组数据传递功能应用22 表达式 (P55)n 定义:是由运算对象(常量、变量、函数)和各种运算符(包括圆括号)组成的一个式子。每个表达式都可以按照运算符的运算规则和优先级别对运算对象进行运算,最终能计算出一个结果,即表达式的值,根据表达式的值的类型,表达式可以分数值表达式(数值,货币,日期时间)、字

35、符表达式(字符)、日期时间表达式(日期时间)和逻辑表达式(关系表达式,逻辑表达式)。表达式的形式:² 单一的运算对象(如常量、变量或函数)² 由运算符将运算对象连接起来形成的式子221 数值、字符、日期时间表达式一数值表达式n 由算术运算符将数值型数据连接起来形成,其运算结果仍然是数值型数据n 运算符分别为:² ();* 、 乘方;*;/;% 求余 ;+;-² 注意其中的% 号为求余运算符 ² 表达式用VFP 来表示 圆柱体表面积公式 pi() s=pi()*r2*2+2*pi()*r*h x2=(-b-sqrt(b2-4*a*c)/(2*a)

36、二字符表达式n 由字符串运算符将字符数据连接起来形成,其运算结果仍然是字符型数据。n +:前后两个字符串首尾连接形成一个新的字符串n -:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串的尾部n 两种方法连接后形成的新串的长度相同n 可用LEN(“字符串”)测定三日期时间表达式n 运算符也有+ 和 - 号两个n 格式及意义 page 57注意:不能用运算符+将两个<日期> 或<日期时间> 型数据连接起来见第二章辅助文件:&&日期时间表达式222 关系表达式1关系型关系运算符同级运算 <、=、>=、<=、= 精确比较(<

37、;>、#、!=) 不等于、$、子串包含测试运算符=和$仅适用于字符型数据,其他运算符适用于任何类型的数据,但前后两个运算对像的数据类型要一致.2关系运算规则n 数值型和货币型数据比较² 按数值的大小比较,包括负号 同数学中的数轴n 日期和日期时间型数据² 越早的日期或日期时间越小,越晚的越大n 逻辑型数据² .t. 大于.f.n 子串包含测试² <前字符型表达式>$<后字符型表达式> 例: "妈妈好"$"世上只有妈妈好!" .t.² 如果前者是后者的子字符串,结果为.t.否则

38、为.f.3字符串精确比较与EXACT设置n 用=比较时:只有当两个字符串完全相同(包括空格以及各字符的位置)时,运算结果才为.t.否则为.f.n 用=比较字符型数据时: SET exact ON |OFF² exact 系统默认为OFF状态,此时只要右边的字符串与左边的字符串的前面部分内容相匹配,即可为.t.例:“cabc”=“cab” 的结果为.t.² 处于ON状态时,比较到两个字符串全部结束,先在较短字符串的尾部加上若干空格,使两个字符串的长度相等,再进行比较。例:“abc”=“abc ” 的结果为.t.4赋值与相等比较的区别在赋值命令<内存变量>=<

39、表达式>中,等号左面只能是一个内存变量的名。命令的功能是计算等号右面的表达式的值,并将计算结果赋给内存变量,命令执行前,内存变量可以存在,也可以不存在,命令执行后,内存变量的值与类型是表达式的值与类型。在相等比较运算<表达式1>=<表达式2>中,等号左右两边都是表达式,当然也可以是变量。相等比较运算式本身是一个关系表达式,其运算结果也可以赋给一个内存变量。关系表达式不是命令,不能直接执行。223 逻辑表达式n 定义:由逻辑运算符将逻辑型数据连接来而形成,其运算结果仍然是逻辑型数据n 运算符有:.not.、 .and. 、.or.n 运算规则 page 60 表2.

40、5(10%3=1 and 15%2=0)or("电脑"#"计算机")n 不同类型的运算符也可能出现在同一个表达式中,这时它们的运算优先级顺序为:算术、字符串及日期时间、关系、逻辑见第二章辅助文件:表达式的应用 在030文件夹中完成下列各题 book.dbf23常用函数(略)24程序与程序文件知识点:程序的定义程序中的设置环境的命令程序中常用的交互命令程序的基本结构与应用模块程序、过程的设计,变量的作用域,变量的隐藏调试器的应用241 程序的概念是能够完成一定任务的命令的有序集合采用程序方式有如下的好处:1. 可以利用编辑器,方便地输入,修改和保存程序,2

41、. 程序文件一旦建立,就可以被多次运行,而且一个程序在运行过程中还可以调用另一个程序,3. 在程序中可以出现在命令窗口中无法使用的命令和语句。程序举例:1、命令注释:以提高程序的可读性以NOTE 或* 开头的代码行为注释行。命令行后也可以添加注释,这种注释以符号&&开头,注释为非执行代码,不会影响程序的功能,2、set talk on|off 命令 用以设置是否在执行程序时显示有关执行的状态信息3、SET SAFETY OFF/ON 对于相同文件的再次建立是否提示改写4、命令分行程序中每条命令都以回车键结尾,一行只能写一条命令,若命令需要分行书写,应在一行终了时键入续行符:“;

42、”再按回车键.5、可以在命令窗口中像执行程序一样一次执行多条命令,方法是:A. 在命令窗口中选择需要的多条命令,B. 按回车键,或单击鼠标右键并在弹出的快捷菜单中选择“运行所选区域”242、程序建立及运行n 建立及修改n MODIFY COMMAND 程序名n 文件-新建-程序n 运行n 程序-运行-选择程序n DO 程序文件名n 常用工具栏上的 按钮程序中的特殊语句功能解释:DO :转去执行另一个程序nn CANCAL:终止程序的运行n RETURN:结束当前程序的运行,返回到调用它的上级程序,若无上级程序则返回到命令窗口n QUIT :退出VFP系统,返回到操作系统.243、简单的输入输出

43、语句n 功能:实现人机交互,便于操作n INPUT INPUT “提示信息” to 变量名n 接收各种类型的数据:数值,字符,逻辑,日期n 不同类型的数据要用不同的定界符定界n ACCEPT accept “提示信息” to 变量名n 只接收字符型数据, 输入时不需要加定界符 n WAIT n 只接收一个字符 25、程序的三种结构 :程序中命令或语句执行的流程结构n 顺序结构r=thisform.text1.valueh=thisform.text2.valuethisform.text3.value=pi()*r2*2+2*pi()*r*hthisform.text4.value=pi()*

44、r2*hn 选择结构n 循环结构顺序结构n 按命令在程序中出现的先后次序依次执行n 在编写程序时只需按实现目标将每条语句依次输写即.可251、选择结构n 依条件执行相应的语句2.1条件结构 (有两种情况需要进行不同的处理)IF <条件> <语句序列1> ELSE <语句序列2>ENDIF例右图:2.2分支结构n 实现一种扩展的选择结构,n 可以根据条件从多组代码中选择一组执行n 结构如下:DO CASE CASE<条件1><语句序列1> CASE<条件2> <语句序列2> CASE <条件 n>&l

45、t;语句序列n>ENDCASE例右图同步练习:从键盘上输入一个1-12的数字,程序给出该数字对应月份所属的季节3、循环结构n 也称重复结构,是指程序在执行的过程中,其中某段代码被重复若执行干次.n 被重复执行的代码段称为循环体VFP支持循环结构的语句包括:n DO WHILE ENDDOn FOR ENDFORn SCAN-ENDSCAN3.1循环之一DO WHILEDO WHILE <条件> <语句序列1> LOOP <语句序列2> EXIT <语句序列3>ENDDOn 先判断DO WHILE 处的条件是否成立,若成立进入循环n 当执行到

46、ENDDO时,返回到DO WHILE 处再判断循断条件是否为真,以确定是否再次执行循环体.若为假,则执行ENDDO后面的语句.n 如果第一次判断条件时,条件即为假,则循环体一次都不执行n 如果循环体包括LOOP命令,那么当遇到LOOP时,就结束循环语句的执行,而是转回DO WHILE 处重新判断条件.n 如果循环体包含EXIT命令,那么当遇到EXIT时,就结束该语句的执行,执行ENDDO后面的语句; 见讲义辅助文件第二章 程序 循环举例3.2 循环程序之二FOR . ENDFORFOR <循环变量> =<初值> to <终值> step 步长<t循环体

47、> ENDFOR |NEXT 功能注释: 1、 用于实现循环次数已知的循环程序2、 步长的默认值为13、 <初值><终值>和<步长>都可以是数值表达式,但这些表达式仅在循环语句执行开始时被计算一次,在循环语句的执行过程中,初值、终值和步长是不会改变的。4、 可以在循环体内改变循环变量的值,但这会影响循环体的执行次数。5、 EXIT 和LOOP 命令同样可以出现在该循环语句的循环体内,功能同前3.3 循环程序之三:SCANENDSCAN 语句功能:该循环语句一般用于处理表中的记录,语句可指明需处理的记录范围及应满足的条件语句格式:Scan <范围&

48、gt; for 条件 while 条件<循环体>Endscan注意:条件可由FOR 和WHILE 引导。该语句也称为扫描循环语句,其功能相当于 locate ,continue 和 do while -enddo 语句功能的合并。见第二章辅助文件程序 SCAN26、多模块程序设计261 模块的定义和调用1模块及定义定义:应用程序一般都是多模块程序,包含多个程序模块。模块是一个相对独立的程序段,可以被其他模块所调用,也可以去调用其他的模块,通常:把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。说明:模块程序可以接收调用程序传递过来的参数,并能够根

49、据接收到的参数控制程序流程或对接收到的参数进行处理.过程头:PROCEDURE|FUNCTION命令表示一个过程的开始,并命名过程,过程必须以字母或下划线开头,可以包含字母、数字和下划线。A_b a_3 同变量的命名规则过程尾:ENDPROC|ENDFUNC命令表示一个过程的结束。过程返回:当过程执行到RETURN命令时,控制将转回到调用程序(或命令窗口)并返回表达式的值。如果缺省RETURN命令,则在过程结束处自动执行一条隐含的RETURN命令,若RETURN命令不带表达式,则返回逻辑真.t.一般情况下,过程保存在主程序的后面,也可以保存在称为过程文件的单独文件里,过程文件的建立仍使用MOD

50、IFY COMMAND 命令,文件的默认扩展名为.prg要调用过程文件中的过程,首先要打开过程文件。打开过程文件的命令是:SET PROCEDURE TO <过程文件> ADDITIVE可以打开一个或多个过程文件,一旦一个过程文件被打开,那么该过程中的所有过程都可以被调用。如果选用ADDITIVE,那么在打开过程文件时并不关闭原先打开的过程文件。2调用无参模块程序的格式为:格式一:使用DO命令:do <文件名> | <过程名>格式二:在名字后加一对小括号<文件名>|<过程名>()书中例题248262 参数传递模块程序可以接收调用程序传

51、来的参数,并能够根据接收到的参数控制程序流程,并对接收的参数进行处理,从而大大提高模块程序的功能设计的灵活性。接收参数的命令有 parameters 和lparameters 它们的格式为Parameters <形参变量1>,<形参变量2>Lparameters <形参变量1>,<形参变量2>调用有参模块程序的格式为:格式一: Do <文件名>|<过程名> with <实参1>,<实参2>:称为程序调用方式 Do mj with r,h,s格式二: <文件名>|<过程名>(&

52、lt;实参1>,<实参2>) : 称为函数调用方式 v= Tj(r,h)实参可以是常量,变量,也可以是一般形式的表达式:在程序编辑完成后可在命令窗口中试运行:? Mj(23,12) 或? Tj(2,3) 其中的数字可任意更改。调用模块程序时,系统会自动把实参传递给对应的形参,形参的数目不能少于实参的数目,否则系统会产生运行时的错误;如果形参的数目多于实参的数目,那么多余的形参取初值逻辑假.f.值。此题出现在上机考试题的改错题:参考上机考试题的49.2.1与 54.2.2的程序修改 采用格式1程序调用方式,调用模块程序时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,

53、并把它赋值给相应的形参变量,这种情形称为按值传递。如果实参是变量,那么传递的将不是变量的值,而是变量的地址,这时形参和实参实际是同一个变量(尽管它们的名字可能不同),在模块程序中对形参变量值的改变,同样是对实参变量值的改变,这种情形称为按引用传递。形参变,实参也变 do p1 with x,y 采用格式2 函数调用方式,调用模块程序时,默认情况下都以按值方式传递参数,形参的变化,不会影响实参值的变化,如果实参是变量,可以通过命令 set udfparms 命令重新设置参数传递的方式。 Set udfparms to value|referenceTo value 是按值传递,形参变量值的改变不

54、会影响实参变量的取值To reference: 按引用传递,形参变量值改变时,实参变量的值也随之改变例2.49按值传递和按引用传递示例此题中的(x2)用一对圆括号将一个变量括起来使其变成一般形式的表达式,所以不管什么形式,总是按值传递。形参变,实参不变还可以在调用程序和被调用程序之间传递数组,当实参是数组元素时,总是采用按值传递方式传递元素值,当实参是数组名时,若传递方式是按值传递,那么就传递数据的第一个元素给形参变量,若传递方式是按引用传递,那么传递的将是整个数组。参考例2.502.6.3 变量的作用域一个变量除了类型和取值之外,还有一个重要的属性就是它的作用域,变量的作用域指的是变量在什么范围内有效或能够被访问。在Visual FoxPro中,若以变量的作用域来分,内存变量可以分为公共变量,私有变量,和局部变量1、全局变量在任何模块中都可使用的变量称为公共变量,公共变量要先建立后使用,公共变量可以用:public 命令建立Public <内存变量表>Public a,b,y该命令的功能是建立公共的内存变量,并为它们赋初值逻辑假.f.值 dime ar(3,5) ? ar(3,4)公共变量一旦建立就一直有效,即使用程序运行

温馨提示

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

评论

0/150

提交评论