1 / 94

主 讲: 洪 慧 华 E-mail: zjhonghh@tom Tel : 3041386

非计算机应用专业教材. 数据库原理与应用. 主 讲: 洪 慧 华 E-mail: zjhonghh@tom.com Tel : 3041386. 科学出版社. 第 7 章 程序设计基础. [ 学习目标 ]. 了解 Visual FoxPro 的工作方式; 了解程序的调试方法。 掌握常用的数据类型的使用,以及相互转换; 掌握常量、变量、表达式和常用的函数定义及使用; 掌握程序的基本结构;. 目 录. 7.1 Visual FoxPro 的工作方式 7.2 数据类型 7.3 变量与常量 7.4 表达式 7.5 函 数

sorley
Télécharger la présentation

主 讲: 洪 慧 华 E-mail: zjhonghh@tom Tel : 3041386

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 非计算机应用专业教材 数据库原理与应用 主 讲:洪 慧 华 E-mail: zjhonghh@tom.com Tel:3041386 科学出版社

  2. 第7章 程序设计基础

  3. [学习目标] • 了解Visual FoxPro的工作方式; • 了解程序的调试方法。 • 掌握常用的数据类型的使用,以及相互转换; • 掌握常量、变量、表达式和常用的函数定义及使用; • 掌握程序的基本结构;

  4. 目 录 • 7.1 Visual FoxPro的工作方式 • 7.2 数据类型 • 7.3 变量与常量 • 7.4 表达式 • 7.5 函 数 • 7.6 程序与程序文件 • 7.7 程序的基本结构 • 7.8 多模块程序 • 7.9 程序调试

  5. 7.1 Visual FoxPro的工作方式 • Visual FoxPro系统有两种工作方式: • 即交互方式及程序运行方式。 • 1.交互方式 • 单命令方式:所谓单命令方式,即输入一条指令,完成一个操作的工作方式。 • 菜单方式:即通过打开不同的菜单选择并完成不同的操作。

  6. 2.程序运行方式 • 所谓程序运行方式,即通过程序文件(程序)中的命令完成不同的操作。程序主要由命令或语句组成,同时还包括对数据进行存储和描述的元素,例如:常量、变量、数组、表达式、运算符,以及函数等。

  7. 7.2 数据类型 • 1.字符型 • 字符型(Character)数据是不具备计算能力的文字数据类型,用字母C表示。字符型数据可以是中文字符、英文字符、数字字符和其他ASCII字符,其长度(即字符个数)范围是0~254个字符,如学生姓名。

  8. 2.数字型 • 数字型数据是用来表示数量,并可以进行数值运算的数据类型。数字型数据由数字、小数点、正负号和表示乘幂的字母E组成,数值精度达16位。在Visual FoxPro系统中,按存储、表示形式与取值范围不同,数值型数据又分为数值型、浮点型、双精度型和整形四种不同类型。 • 数值型数据由数字、小数点、正负号和字母E组成,用字母N表示。数值型数据的取值范围是:-0.9999999999E+19~0.9999999999E+20,包括正负号、小数点和字母E在内,其长度最大20位。通常用于表示实数。如317,-99.16,1.3E-5(即1.3×10-5)等。

  9. 浮点型数据是也是数值型数据的一种,用字母F表示。它在功能上和数值型数据等价,只是在存储形式上采用浮点格式,主要是为了得到较高的计算精度,其长度在表中最长可达30位。浮点型数据是也是数值型数据的一种,用字母F表示。它在功能上和数值型数据等价,只是在存储形式上采用浮点格式,主要是为了得到较高的计算精度,其长度在表中最长可达30位。 • 双精度型数据是具有更高精度的一种数值型数据,用字母B表示。它采用固定长度浮点格式存储,占8个字节,其取值范围是:+/-4.94065645841247E-324 ~ +/-8.9884656743115E307.

  10. 整型数据是不带小数部分的数值型数据,用字母I表示。整型数据只用来表示整数,以二进制形式存储,占4个字节。其取值范围是:-21474836~21474836,如班级学生的数量。整型数据是不带小数部分的数值型数据,用字母I表示。整型数据只用来表示整数,以二进制形式存储,占4个字节。其取值范围是:-21474836~21474836,如班级学生的数量。 • 3.日期型(D) • 日期型(Date)数据是表示日期的数据,由年、月、日构成,用字母D表示。日期型数据的默认格式是{mm/dd/[yy]yy},其中mm表示月份,dd表示日期,yyyy表示年度,占8个字节,其取值范围是:01/01/0001~12/31/9999。如{10/01/2005}表示2005年10月1日这一日期数据。

  11. 4.逻辑型(L) • 逻辑型(Logic)数据是描述客观事物真假的数据类型,表示逻辑判断的结果,用字母L表示。逻辑型数据只有真(.t.或.y.)和假(.f.或.n.)两种,固定长度1位。为区别其他数据类型,一般需在表示逻辑值的字母t、y、f、n的前后加圆点符“.”,如表示学生成绩是否及格。

  12. 5.备注型(M) • 备注型(Memo)数据表示不定长字符文本的数据类型。可以把它看成是字符型数据的特殊形式,用字母M表示,在表中占用4个字节。备注型数据没有数据长度限制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为10位,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据的内容而定。

  13. 6.通用型(G) • 通用型(General)数据是标记电子表格、文档、图片等OLE对象(对象链接嵌入)的数据类型,用字母G表示。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,实际数据长度仅受限于磁盘空间,如用于存放Excel电子表格等。

  14. 7.货币型 • 货币型(Currency)数据是表示货币单位的数据类型,用字母Y表示。其取值范围是:-922337203685477.5808 ~ 922337203685477.5807,货币型数据在进行计算时,默认保留4位小数,占据8字节存储空间。

  15. 8.日期时间型 • 日期时间型(Date Times)是表示日期和时间的数据类型,由年、月、日、时、分、秒构成,用字母T表示。日期时间的默认格式是{mm/dd/yyyy hh:mm:ss},其中mm、dd、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数。日期时间型数据也是采用固定长度8位,取值范围是:日期为01/01/0001~12/31/9999,时间为00:00:00~23:59:59。如{8/8/2008 8:8:8}表示2008年8月8日8时8分8秒这一日期时间数据。

  16. 9.二进制字符型和二进制备注型 • 二进制字符型和二进制备注型是以二进制格式存储的数据类型,只能用在表中字段数据的定义。两者分别类似于字符型和二进制型,区别在于所存储的数据不受代码页改变的影响。代码页是供计算机正确解释并显示数据的字符集,通常不同的代码页对应不同的平台或语言。

  17. 7.3 变量与常量 • 7.3.1 常量 • 常量示一个具体的、不变的数据值,在命令或程序中命名后可直接引用,其显著特征是在整个操作过程中它的值和表现形式保持不变。Visual FoxPro按常量的数据类型,将常量分为6种类型:数值型常量、货币型常量、字符型常量、逻辑型常量、日期型常量、日期时间型常量。不同类型的常量有不同的书写格式。

  18. 1.字符型常量 • 字符型常量又称字符串,由任意ASCII字符、汉字和汉字字符组成的字符型数据。 • 用一对双引号“””或单引号“‘”或方括号“[]”作为定界符对括起来,作为和其他类型常量或符号的区别。定界符不作为常量本身的内容,仅规定常量的类型和常量的起止界限。 • [“I am a boy!”]

  19. 2.数值型常量 • 数值型常量即常数,由数字、小数点和正负号构成,是表示一个数量大小的整数或实数值。如;10,-15.33。很大或很小的数值型常量也可以采用科学记数法进行表示,如1.23E10表示1.23×1010,1.23E-10表示1.23×10-10。

  20. 3.货币型常量 • 货币型常量用来表示货币值,书写方法和数值型常量类似,区别在于货币型常量有个前置符号($)。货币型常量计算时默认为4位小数,若输入的值多于4位,系统自动进行四舍五入运算省略多余小数,如常量$42.34567将存储为$42.3457。货币型常量没有科学记数法形式,在内存中占用8个字节。

  21. 4.逻辑型常量 • 逻辑型常量是表示逻辑判断结果的逻辑值,只有真和假两种值,分别用(.t.或.y.)和(.f.或.n.)表示。前后两个句点(.)是逻辑型常量的定界符,缺少定界符的逻辑型常量易被误认为变量名。

  22. 5.日期型常量 • 日期型常量是表示日期值的数据,包括年、月、日三个内容,各部分内容用分隔符斜杠(/)或连字号(-)或句点(.)分隔,其中斜杠(/)是系统默认的分隔符,定界符是花括号({})。 • 传统日期格式:{mm/dd/[yy]yy}(月/日/年) • 严格日期格式:{^yyyy-mm-dd}(年-月-日)

  23. 6.日期时间型常量 • 日期时间型常量表示日期和时间值,包含年、月、日、时、分、秒,其默认格式是:{日期[,] 时间},日期的表示方法同日期型常量,也分传统和严格两种格式,逗号可省略。时间部分的格式为hh:mm:ss[a|p],其中a和p分别表示AM(上午)和PM(下午),这部分内容也可以省略。

  24. 1.设置日期格式中世纪值的系统命令 • 传统的日期型常量格式中可以用2位数表示年份,但涉及到世纪问题就不便区分。Visual FoxPro提供设置命令对此进行相应设置。 • 命令格式: • SET CENTURY ON | OFF | TO [nCentury] • ON:日期数据显示10位,其中年份4 位,即日期值输出时年份含世纪信息; • OFF:(默认值)。日期数据显示8位,年份2位,即日期值输出时不含世纪信息; • TO [nCentury]:指定日期数据所对应的世纪值。nCentury是一个1~99的整数,代表世纪数。

  25. 2.设置日期显示格式 • 用户可以调整、设置日期值和时间值的显示输出格式。既可以用命令方式设置,也可以用菜单方式设置。 • 命令格式:SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITLIAN | JAPAN | USA | MDY | DMY | YMD | SHORT | LONG

  26. 3.选择传统格式和严格格式的命令 • 用户可以通过命令或菜单设置进行两种格式转换。 • 命令格式: • SET STRICTDATE TO [0 | 1 | 2] • 命令说明: • 0:日期型常量或日期时间型常量采用传统日期格式; • 1:日期型常量或日期时间型常量采用严格日期格式作为系统默 • 认格式; • 2:设置结果与1相同,但如果程序代码中出现CTOD()和CTOT()函数时,会出现编译错误。这个设置最适合调试时使用,用来检测2000年兼容性错误; • 参数默认值为1。

  27. 7.3.2 变量 • 定义一个变量,确定三个要素:变量名、数据类型和变量值。 • (1)名称由字母、数字和下划线组成, • (2)命名以字母或下划线开头;自由表中的字段名、索引的TAG标识名长度最多不能超过10个字符,其他的数据容器的命名可使用1~128个字符; • (3)不能使用系统规定的保留字进行命名,如set; • 系统中变量分为字段变量、内存变量、数组变量和系统变量4类。

  28. (1)字段变量 • 字段变量是标识数据库中表的各个字段的变量。 • (2)内存变量 • 内存变量是在内存中定义的一个存储区域中存储的临时变量。

  29. (3)数组变量 • 数组变量是一组具有相同名称、以下标相互区分的有序内存变量,它占用一段连续的内存空间。 • 数组定义:DIMENSION | DECLARE • <数组名1>(<下标上限1>[,<下标上限2>]) • [,<数组名2>(<下标上限3>[,<下标上限4>])…] • 命令功能:参数DIMENSION和DECLARE的功能相同,定义时指明数组的下标上限,同时系统规定数组的下标下界为1,使用一个命令可同时定义多个数组。创建数组后,系统自动给系统内的每个元素赋值为逻辑型值假(.F.)。 • 例7.1 DIMENSION A(5)

  30. (4) 系统变量 • 系统变量是Visual FoxPro系统特有的内存变量。系统变量有很多,其变量名以下划线“_”

  31. 7.3.3 内存变量的常用命令 • 1.赋值 • 赋值给一个或多个内存变量命令格式1: • STORE <表达式> TO <内存变量表> • 给单个变量赋值命令格式2: • <内存变量> = <表达式> • 例7.2 STORE “徐卫娟” TO name ‘将字符串“徐卫娟”赋值给内存变量name。 • 例7.3 a=b+1 ‘将变量b加1后的结果赋值给变量a。

  32. (2)显示 • 在换行后输出显示结果命令格式1: • ? <表达式表> [AT <列号>] • 在当前光标位置输出显示命令格式2: • ?? <表达式表> [AT <列号>] • 命令功能: • 输出表达式运算后的结果值。若命令中含多个用逗号(,)分隔的表达式,则依次运算后输出,多个结果值按空格分开;[AT <列号>]表示变量在指定列号开始输出,此参数设置仅对单个表达式有效;,格式2则直接

  33. (3)将变量保存到某一变量文件(*.MEM)中 • 命令格式: • SAVE TO <变量文件名> [ALL LIKE <通配符> | ALL EXCEPT <通配符> ] • 命令功能: • 参数ALL LIKE <通配符>指明保存所有符合通配符条件的变量,参数ALL EXCEPT <通配符>指明保存所有不符合通配符条件的变量。

  34. (4)将保存到变量文件(*.MEM)中的变量恢复到内存使用(4)将保存到变量文件(*.MEM)中的变量恢复到内存使用 • 命令格式: • RE FROM <变量文件名> [ADDITIVE] • 命令功能: • 省略参数ADDITIVE,则删除内存中现有的所有变量后再恢复文件中的变量,添加此参数,则将从文件恢复的变量追加到现有变量中。

  35. (5)清除变量 • 命令格式: • 1.RELEASE ALL • 2.RELEASE <变量表> • 3.RELEASE ALL [LIKE <通配符> | EXCEPT <通配符> ]

  36. 7.4 表达式 • 表达式是由常量、变量和函数通过特定的运算符连接起来的式子。 • 算术表达式 • 字符表达式 • 表达式 日期时间表达式 • 关系表达式 • 逻辑表达式。

  37. 7.4.1算术表达式

  38. 7.4.2 字符表达式 • 字符表达式是由字符运算符将常量、变量和函数连接起来的式子,运算结果仍为字符型数据。字符运算符有两个,两者优先级相同: • +:将该运算符前后的两个字符串首尾连接,组成新的字符串; • -:将该运算符前后的两个字符串首尾连接,并将前面字符串尾部的空格移到合并后的新字符串的尾部。

  39. 例7.6 a=”Visual ” • b=”FoxPro Study!” • ? a + b, a – b • ‘运算结果为: • Visual FoxPro Study! VisualFoxPro Study!

  40. 7.4.3 日期时间表达式 例7.7?{^2005-04-01}+10 ‘运算结果为:04/11/05 例7.8?{^2005-04-05 10:50:45 PM }-{^2005-04-05 10:20:40 PM} ‘运算结果为:1805

  41. 7.4.4 关系表达式 • 关系表达式是由关系运算符将数值表达式、字符表达式和日期表达式连接起来的式子,它将两个表达式进行比较,结果为逻辑真(.T.)和逻辑假(.F.)。

  42. 例7.9 ? ”abcde” $ ”abcdefg” • ?”abcdefgh” $ ”abcdefg” • 运算结果分别为.T.和.F. • 例7.10 ? ”abcde” = ”abcdefg” • 当系统设置了SET EXACT OFF时,关系表达式结果为.T. • 当系统设置了SET EXACT OFF时,关系表达式结果为.F.

  43. 7.4.5 逻辑表达式 • 逻辑运算符有:.NOT. .AND. .OR.。 • 三者的优先级别从高到低为.NOT. . AND. .OR.

  44. 7.5函数 • 根据函数的返回值类型或者功能可以分为数值函数、字符函数、日期和时间函数、数据类型转换函数和测试函数。

  45. 7.5.2 字符函数

  46. 7.5.3 日期和时间函数

  47. 7.5.4 数据类型转换函数

  48. 7.5.5 测试函数

More Related