




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据与数据运算2.1数据与数据类型2.2常用函数2.3表达式2.4VisualFoxPro命令1第2章数据与数据运算2.1数据与数据类型1
数据有许多重要的属性,包括数据类型,完整性约束等,其中首先关心的是数据类型。因为数据处理的基本原则是对相同类型的数据才能进行操作,违反了这条原则,就会发生错误。
VisualFoxPro中常量、变量、函数及表达式的数据类型有6种:字符型、数值型、逻辑型、日期型、日期时间型、货币型。
本节引入了数据容器的概念。数据容器:用户存放数据的地方。例如常量、变量、数组、记录、对象,等等。2.1.1常量
常量:在程序运行的过程中其值固定不变的量称为常量。
常量用来表示一个具体的、不变的值。常量有6种数据类型:
2.1数据与数据类型2数据有许多重要的属性,包括数据类型,完整性约束等,其1.字符型(Character)
通常用来表示文本类型的信息。由中英文字符、数字、空格和各种专用符号组成。两个或两个以上字符型数据的组合称为字符串。用定界符括起来的字符串即为字符型常量。定界符规定为:'',"",[]。如果一种定界符已作为字符型常量的组成部分,应当选择另一种定界符来标识字符串。字符型数据如:“STRING”、’昆明市’、[123]。例2.1
显示字符型常量在命令窗口键入并执行如下命令:?"用定界符括起来的"+'字符串'+[即为字符型常量]在主屏幕上显示结果如下:用定界符括起来的字符串即为字符型常量31.字符型(Character)3
2.数值型(Numeric)
数值型数据用来表示一个数量的大小,由数字、小数点和正负号等组成,包括整数(1268)、小数(0.38)、负数(-112)、浮点数(148.931)科学计算数(1.2E-8)等。数值型数据用来进行数学运算。
数值型数据在内存中用8个字节表示,其取值范围是:-0.9999999999E+20~0.9999999999E+20。3.逻辑型(Logic)表示逻辑判断结果的值。逻辑型数据只有两个值:逻辑值真True(用.T.或.y.表示)或逻辑值假False(用.F.或.n.表示)。如表达式3>4的运算结果为:.F.例2.2
在命令窗口键入并执行如下命令:
?3>442.数值型(Numeric)44.日期型(Date)日期数据是表示日期的特殊数据,日期型常量必须用一对花括号”{“和”}”作为定界符,花括号中包含用分割符
”-”、“/”、“.”分隔的年、月、日三部分内容。其格式分为传统格式和严格格式两种:①传统格式:{mm/dd/yy}系统默认的日期型格式为美国格式:{月/日/年},即以{mm/dd/yy}的形式来表示。传统的日期型格式要受到命令语句:SETDATETO
和
SETCENTURY的影响。②严格日期格式常量以{^yyyy-mm-dd}的形式来表示,且花括号中第一个字符必须是^,年份为4位数。如{^2006-10-01}表示2006年10月1日。55例2.3
在命令窗口输入如下命令?{^2006-10-01},{10-01-06}执行结果为:.10/01/200610/01/20065.日期时间型(DateTime)日期和时间数据是表示日期和时间的特殊数据.
日期时间型数据的取值范围是:日期为01/01/0001~12/31/9999,时间为00∶00∶00~23∶59∶59.在传统格式中,系统默认的日期时间型以{月/日/年时:分:秒a|p}的形式来表示。严格格式的日期时间型常量以{^yyyy-mm-ddhh:mm:ssa|p}的形式来表示,其中a和p分别表示上午和下午,如
{^2005-12-2210:30:20p}表示2005年12月22日晚上10点30分20秒。66例2.4
在命令窗口输入如下命令?{^2005-12-2210:30:20p},{12-22-0510:30:20p}执行结果为:12/22/200510:30:20pm12/22/200510:30:20pm6.货币型(Currency)货币单位数据,数字前加前置符号”$”。货币型数据在存储和计算时,采用4位小数,并将多余4位的小数四舍五入。如$123.45678,将存储为$123.4568。货币常量不用科学记数法形式,在内存中占8个字节,取值范围是:-922337203685477.5807~922337203685477.5807。
772.1.2变量
在程序运行过程中,其值可以发生变化的量称为变量。变量的值是可以随时更改的。
VisualFoxPro中有两类变量:一类是构成数据库表的字段名变量,另一类是独立于数据库以外的内存变量。给变量命名时,变量名应遵守以下原则:
以字母、汉字或下划线开头;变量名中只能含有字母(汉字)、数字和下划线;变量名不能是VisualFoxPro的保留字,如对象名、系统预先定义的函数名等。82.1.2变量在程序运行过程中,其值可以发生变化的
1.字段变量:数据库表中定义的字段名。
字段名变量是指数据表文件中已定义好的任一数据项。在数据表中有一个记录指针,由它指向的记录定义为当前记录,字段名变量的值随着记录指针的移动而改变,如果一个数据表中有20条记录,则每一个字段名就有20个可取值。字段名变量的数据类型分为13类,见表2.1所示。91.字段变量:数据库表中定义的字段名。9表2.1字段名变量的数据类型类型名称
说明
内存大小
应用举例
字符型(Character)数字、字母、符号1~254姓名、住址货币型(currencY)货币单位8存款、价格数值型(Numeric)整数、小数8考试成绩浮点型(Float)同数值型8日期型(Date)年月日 8参加工作时间日期时间型年月日时分秒8上班时间(DateTime)整型(Integer)无小数点数4单位人数双精度型(DouBle)双精度数 8逻辑型(Logical)真或假1作业完成否通用型(General)OLE(对象链接与嵌入)4EXCEL表格、图片备注型(Memo)文本4人员简历、产品简介注:整型数据的范围是:-2147483647~2147483647;浮点型、双精度型数据的范围是:±4.94065645841247E-324~±8.9884656743115E370数值型数据的范围是:-0.9999999999E+20~0.9999999999E+2010表2.1字段名变量的数据类型注:整型数据的范围是:-214
2.内存变量(不依赖数据表而独立存在的变量)
内存变量是内存中的一个存储单元,这个存储单元中存放的数据就是内存变量的值。内存变量由赋值语句定义,它的数据类型取决于赋值数据的类型。内存变量是独立于数据库文件而存在的变量,用来存储数据处理过程中所需要的中间结果和最终结果。它参与计算处理,还可以作为控制变量,用来控制应用程序的运行。内存变量是一种临时工作单元,需要时可以临时定义,不需要时可以随时释放。内存变量共分为6种类型:字符型(C)、数值型(N)、逻辑型(L)、日期型(D)、日期时间型(T)和货币型(Y)。(字段变量和内存变量的区别见下表2.2)112.内存变量(不依赖数据表而独立存在的变量)11表2.2字段变量和内存变量的区别字段变量
内存变量
数据库表文件的组成部分独立于数据库表文件而存在随表文件的定义而建立 需要时随时定义有C,N,D,L,M,G等13种类型 有C,N,L,D,T,Y等类型多值变量 单值变量
关机后保存在数据库表文件中 关机后不保存(可预先存入内存变量 文件中)注:给内存变量赋值的常用命令有:=,store,input,wait,accept
系统变量是VisualFoxPro系统特有的内存变量;系统变量名都是以下划线开始,它与一般变量有相同的使用方法;在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名冲突。如主窗口屏幕可通过系统变量_SCREEN的属性进行设置:
_SCREEN.fontName="黑体"
_SCREEN.fontSize=1612表2.2字段变量和内存变量的区别12例2.5
变量赋值与运算示例。
在命令窗口中输入并执行如下命令:X=8STORE2TOY,Z,W?X+Y10S=“中国.”STORE“昆明”TOT?S+T中国.昆明13例2.5变量赋值与运算示例。132.1.3数组数组是一批数据的有序集合,数组中的每一个数据称为一个数组元素。在VisualFoxPro中,数组元素均为内存变量。数组必须先定义后使用。1.数组的定义格式:DIMENSION
<数组名>(<下标1>[,<下标2>])[,<数组名>(<下标1>[,<下标2>])…]
DECLARE<数组名>(<下标1>[,<下标2>])…[,<数组名>(<下标1>[,<下标2>])…]功能:定义一维或二维数组。数组名为一个内存变量,每个数组最多可包含3600个元素,数组的下标(数值表达式)值最小为1。使用数组时应注意数组元素的排列次序。要特别注意142.1.3数组数组是一批数据的有序集合,数组中的每一个数据例2.6
定义数组示例在命令窗口输入如下命令:DECLAREA(3),B(2,3)其执行结果:该命令定义了一维数组A(3)和二维数组B(2,3):一维数组A(3)有三个元素,分别表示为:A(1)、A(2)、A(3)。二维数组B(2,3)有六个元素,分别表示为:B(1,1)、B(1,2)、B(1,3)、B(2,1)、B(2,2)、B(2,3)。
数组元素可以是任意类型的数据,其数据类型由对该变量的赋值决定。数组元素在赋值前的类型为逻辑型,其值为逻辑假(.F.)。15例2.6定义数组示例152.数组的使用定义数组后,数组中的每个元素就可以像内存变量一样被使用。数组元素的赋值方法与内存变量的赋值方法一样,常用STORE命令来赋初值。格式:STORE<表达式>TO<数组名>功能:给数组中的每个元素赋相同的值。执行赋值命令时,系统将根据<表达式>的类型确定或改变数组元素的类型。与对内存变量的操作一样,使用
LIST/DISPLAYMEMORY
命令可以显示数组元素的类型及其值;使用命令
CLEARMEMORY
或RELEASE<内存变量表>|ALL
可以删除整个数组(包括内存变量);使用命令
SAVETO<文件名>
可以将数组连同内存变量一起保存到内存变量文件(.mem)中,需要时用命令
RESTOREFROM<文件名>
命令将其从内存变量文件中恢复到内存中。162.数组的使用16例2.7
数组定义与赋值示例在命令窗口输入如下命令:DECLAREA(3)STORE0TOA赋值后,数组A中每个元素都为0。此外,同一数组的不同元素,数据类型可以不一致。A(1)="VisualFoxPro"?A(1)VisualFoxProA(2)={^2006-10-01}?A(2)10/01/06A(3)=.T.?A(3).T.
LISTMEMORY17例2.7数组定义与赋值示例172.1.4变量的作用域
变量只有在应用程序运行时的某一时刻才存在,所谓变量的作用域即某个变量在应用程序中的有效作用区间。在VisualFoxPro中可用命令语句Local、Private和Public指定变量的作用域,其指定的变量分别为局部变量、私有变量和全局变量。1.局部变量用Local<变量表>命令建立局部变量,其建立的变量或数组只能在定义它们的程序中存在,不能被更高层和更低层的程序访问。当定义它们的程序停止运行时,这些变量和数组将被释放。例2.8
定义局部变量Localx,y,z主程序子程序1Localx,y子程序2182.1.4变量的作用域主子程序1子程182.私有变量Private<变量表>命令将调用程序中定义的变量和数组在当前程序中隐藏起来,这样用户便可以在当前程序中重新使用和这些变量同名的变量,而不影响这些变量的原始值。一旦拥有这些变量的程序停止运行,所有被声明为Private的变量和数组即可重新被访问。私有变量可以被当前过程及所调用的过程访问,系统默认在程序中定义的都属于私有变量。例2.9
定义私有变量Privatem,n3.全局变量Public<变量表>关键字定义全局变量和数组。在当前VisualFoxPro工作期中,任何运行的程序都能使用和修改它们。在命令窗口中创建的任何变量和数组被自动赋予全局属性。例2.10
定义全局变量Publici,j,k
主程序子程序1Privatem,n子程序2192.私有变量主子程序1子程192.2常用函数VisualFoxPro向用户提供了丰富的标准函数。函数是用程序来实现的一种数据运算或转换,灵活地运用这些函数不仅可以简化许多运算,而且能够加强VisualFoxPro的许多功能.常用的函数类型有:数值型、字符型、日期(时间)型、逻辑型、类型转换及测试函数等。函数的一般形式是:<函数名>(参数表)VFP的函数与数学函数没有根本的区别。在使用函数时应注意:(1)所有函数必须跟随有圆括号,无论函数是否需要参数(除宏代换函数&外)。(2)每个函数必然有一个返回值,返回值有确定的数据类型。(3)传送给函数的参数也有一定的数据类型,必须按要求的数据类型传送参数值。202.2常用函数VisualFoxPro向用户提供了丰富下面介绍一些常用的函数。2.2.1数值运算函数2.2.2字符操作函数2.2.3日期时间函数2.2.4类型转换函数2.2.5测试函数21下面介绍一些常用的函数。2.2.1数值运算函数212.2.1数值运算函数1.求绝对值函数格式:ABS(<数值型表达式>)功能:求数值型表达式的绝对值。函数值为数值型2.取整函数格式:INT(<数值型表达式>)功能:INT取数值型表达式的整数部分。2.2.1数值运算函数2.取整函数格式:INT(<数值型表达式>)CEILING(<数值型表达式>)FLOOR(<数值型表达式>)功能:INT取数值型表达式的整数部分。
CEILING取大于或等于指定表达式的最小整数。FLOOR取小于或等于指定表达式的最大整数。函数值均为数值型2.取整函数例:取整函数的应用x=63.52?INT(x)输出的函数值为:
63?INT(-x)输出的函数值为:
-63例:取整函数的应用例:取整函数的应用x=63.52?INT(x),CEILING(x),FLOOR(x)输出的函数值为:
636463?INT(-x),CEILING(-x),FLOOR(-x)输出的函数值为:
-63-63-64例:取整函数的应用3.求最大值函数格式:MAX(<表达式1>,<表达式2>,…,<表达式n>)功能:求n个表达式中的最大值说明:这n个表达式必须是同类型的数据。表达式的类型可以是数值型、字符型、货币型、浮点型、双精度型、日期型和日期时间型例:求最大值函数的应用?MAX('教授','讲师','副教授','助教')输出的函数值为
助教3.求最大值函数4.求最小值函数格式:MIN(<表达式1>,<表达式2>,…,<表达式n>)功能:求n个表达式中的最小值说明:这n个表达式必须是同类型的数据。表达式的类型可以是数值型、字符型、货币型、浮点型、双精度型、日期型和日期时间型例:求最小值函数的应用?MIN({^2004-07-15},{^2001-06-16})输出的函数值为:06/16/014.求最小值函数5.求指数函数格式:EXP(<数值型表达式>)功能:将数值型表达式的值作为指数x,求出ex的值。函数值为数值型6.求对数函数格式:LOG(<数值型表达式>)LOG10(<数值型表达式>)功能:LOG求数值型表达式的自然对数,LOG10求数值型表达式的常用对数,数值型表达式的值必须大于零。函数值为数值型5.求指数函数7.求平方根函数格式:SQRT(<数值型表达式>)功能:求数值型表达式的算术平方根,数值型表达式的值应不小于零。函数值为数值型7.求平方根函数8.四舍五入函数格式:ROUND(<数值型表达式1>,<数值型表达式2>)功能:对<数值型表达式1>进行四舍五入。数值型表达式2表示保留的小数位数说明:如果数值型表达式2的值非负,表示需保留的十进制小数位;如果数值型表达式2的值为负数,其绝对值表示整数部分四舍五入的位数;如果数值型表达式2的值为非整数,先对其取整再四舍五入例:四舍五入函数的应用?ROUND(24.3459,3),ROUND(123.5822,-2),ROUND(5.623,2.5)输出的函数值为:24.3461005.628.四舍五入函数9.求模函数格式:MOD(<数值型表达式1>,<数值型表达式
2>)功能:求<数值型表达式1>除以<数值型表达式2>所得出的余数,所得余数的符号和表达式2相同。如果被除数与除数同号,那么函数值即为两数相除的余数。如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值.
例:求模函数的应用?MOD(-12,5),MOD(12,-5),MOD(5*7,12/4)输出的函数值为:3-329.求模函数10.圆周率函数格式:PI()功能:返回圆周率π的近似值11.符号函数格式:SIGN(<数值型表达式>)功能:返回数值型表达式的符号。自变量为正、负、零,分别返回1、-1、010.圆周率函数2.2.2字符操作函数1.宏代换函数&格式:&<字符型内存变量>[.字符表达式]功能:&函数用于代替字符型内存变量的值。即函数值为字符型内存变量中去掉定界符后的字符序列。可以在<字符型内存变量>中输入VisualFoxPro命令(或命令的一部分),用&函数来执行.说明:若<字符型内存变量>后面还有其他字符串,则以“.”表示<字符型内存变量>的结束.2.2.2字符操作函数1.宏代换函数&例2.21&宏替换函数使用示例1STORE"您好!"TOH?H您好!STORE"H"TOD?D,&D,HH您好!您好!例2.22&宏替换函数使用示例2ACCEPT"请输入文件名:"TOfname请输入文件名:学生USE&fname例2.21&宏替换函数使用示例1例2.23&宏替换函数使用示例3STORE"DISPLAY"TOCUSE学生&CGO8&C例2.24&宏替换函数使用示例4STORE"*"TOvarSTORE"X&var.Y"TOZ?Z例2.23&宏替换函数使用示例32.取子串函数格式:SUBSTR(<字符型表达式>,<起始位置>[,<字符个数>])功能:截取<字符型表达式>中从<起始位置>开始的
共<字符个数>个字符例:取子串函数的应用bd="computer"?SUBSTR(bd,4,3),SUBSTR(bd,1)输出的函数值为:putcomputer2.取子串函数3.4.5删除字符串前后空格函数格式:LTRIM(<字符型表达式>)
RTRIM|TRIM(<字符型表达式>)
ALLTRIM(<字符型表达式>)功能:LTRIM删除字符串的前导空格。
RTRIM和TRIM删除字符串的尾部空格。ALLTRIM删除字符串中的前导和尾部空格。ALLTRIM函数兼有
LTRIM和RTRIM函数的功能例2.26STORESPACE(2)+'BOOK'+SPACE(2)TOS?S+S+S,TRIM(S)+ALLT(S)+LTRIM(S)3.4.5删除字符串前后空格函数6.子串位置检索函数AT()格式:AT(<字符表达式1>,<字符表达式2>[,<数值表达式>])功能:若<字符表达式1>是<字符表达式2>的子串,
则返回<字符表达式1>在<字符表达式2>的起
始位置值,如果不是子串,则函数值为0。
<数值表达式>表示子串在<字符表达式2>中第几次出现,其默认值为1。函数值为整数例:求子串位置函数的应用?AT("is","Thisisacomputer"),AT("字符串","字符型表达式")输出的函数值为:306.子串位置检索函数AT()7.字符串替换函数格式:STUFF(<字符型表达式1>,<起始位置>,<字符数>,
<字符型表达式2>)功能:用<字符型表达式2>替换<字符型表达式1>中由
<起始位置>开始<字符数>所指定的子串说明:<字符型表达式2>串和被替换字符个数不一定相等。若<字符数>≤0,则直接插入;若字符型表达式2的值是空串,则删除<字符型表达式1>串中<字符数>个字符;若<起始位置>≤0,则从首字符开始替换7.字符串替换函数字符串替换函数举例例:字符串替换函数的应用STORE'abcdefghijk'TOs?STUFF(s,5,3,'123'),STUFF(s,5,3,'1')输出的函数值为:Abcd123hijkabcd1hijk?STUFF(s,5,0,'123'),STUFF(s,5,0,'1')字符串替换函数举例8.生成空格函数格式:SPACE(<数值型表达式>)功能:生成若干个空格,空格的个数由数值型表达式的值决定8.生成空格函数9.取左子串函数格式:LEFT(<字符型表达式>,<数值型表达式>)功能:截取<字符型表达式>左面的<数值型表达式>个字符说明:若<数值型表达式>的值大于字符串的长度,则给出整个字符串若<数值型表达式>不为整数,则自动取整后再取子串若<数值型表达式>的值小于或等于0,则给出一个空字符串9.取左子串函数9.取左子串函数例:取左子串函数的应用?LEFT(''计算机科学与技术'',18)?LEFT(''计算机科学与技术'',6.5)输出的函数值为:计算机科学与技术计算机9.取左子串函数10.取右子串函数格式:RIGHT(<字符型表达式>,<数值型表达式>)功能:截取<字符型表达式>右面的<数值型表达式>个字符。有关说明同
LEFT()函数10.取右子串函数10.取右子串函数例:取右子串函数的应用。?RIGHT(''计算机科学与技术'',10)?RIGHT(''计算机科学与技术'',4.5)输出的函数值为:科学与技术技术10.取右子串函数2.2.3日期和时间函数日期时间函数是处理日期型或日期时间型数据的函数1.系统时间函数格式:TIME()功能:给出当前的系统时间,形式为
hh:mm:ss,函数值为字符型2.2.3日期和时间函数日期时间函数是处理日期型或日期时2.系统日期函数和系统日期时间函数格式:DATE()功能:给出当前的系统日期,函数值为日期型
格式:DATETIME()功能:给出当前的系统日期和时间,函数值为日期时间型2.系统日期函数和系统日期时间函数3.求年函数格式:YEAR(<日期型表达式>|<日期时间型表达式>)
功能:返回日期型表达式或日期时间型表达式所对应的年份。函数值为数值型3.求年函数4.求月函数格式:MONTH(<日期型表达式>|<日期时间型表达式>) CMONTH(<日期型表达式>|<日期时间型表达式>)功能:MONTH函数返回日期型表达式或日期时间型表达式所对应的月份数,函数值为数值型
CMONTH函数返回月份的英文名,函数值为字符型4.求月函数5.求日函数格式:DAY(<日期型表达式>|<日期时间型表达式>)功能:返回日期表达式或日期时间型表达式所对应的日期值。函数值为数值型例:日期、月份、年份函数的应用d={^2004-09-05}?YEAR(d),MONTH(d),DAY(d)输出的函数值为:2004955.求日函数6.求时、分和秒函数格式:HOUR(<日期时间型表达式>)
MINUTE(<日期时间型表达式>)
SEC(<日期时间型表达式>)功能:HOUR函数返回日期时间型表达式所对应的小时部分(按24小时制)。
MINUTE函数返回日期时间型表达式所对应的分钟部分
SEC函数返回日期时间型表达式所对应的秒数部分6.求时、分和秒函数6.求时、分和秒函数例:求时、分和秒函数的应用d={^2005-05-12,4:45:52P}?HOUR(d),MINUTE(d),SEC(d)输出的函数值为:1645526.求时、分和秒函数7.求星期函数格式:DOW(<日期型表达式>) CDOW(<日期型表达式>)功能:DOW函数返回日期型表达式中星期的数值,用1~7表示星期日~
星期六。函数值为数值型
CDOW函数返回日期型表达式中星期的英文名称,函数值为字符型
7.求星期函数7.求星期函数例:求星期函数的应用?DOW({^2005-05-12}),CDOW({^2005-05-12})输出的函数值为:5Thursday7.求星期函数2.2.4类型转换函数1-2.大小写字母转换函数格式:LOWER(<字符型表达式>)
UPPER(<字符型表达式>)功能:LOWER将字符串中的大写字母转换成小写,其他字符不变
UPPER将字符串中的小写字母转换成大写,其他字符不变
2.2.4类型转换函数1-2.大小写字母转换函数3.将字符串转换成日期或日期时间函数格式:CTOD(<字符型表达式>)功能:将指定的日期字符串转换成日期型数据。说明:字符型表达式中的日期部分格式要与系统设置的日期显示格式一致,其中的年份可以用
4位,也可以用2位。3.将字符串转换成日期或日期时间函数例:CTOD函数的应用?CTOD("2/10/2006")STORECTOD("10/1/2006")TOA?ASTORECTOD("9/22/2006")TOB?B?"到国庆节还有",A-B,"天!"例:CTOD函数的应用4.将日期或日期时间转换成字符串函数格式:DTOC(<日期表达式>|<日期时间表达式>[,1])功能:DTOC函数将日期数据或日期时间数据的日期部分转换为字符型数据说明:字符串中日期和时间的格式受系统设置的影响。若选用1,结果为yyyymmdd格式;缺省可选项,返回值为mm/dd/yy例2.39DTOC函数的应用?"今天的日期是:",DTOC(DATE())?DTOC(DATE(),1)4.将日期或日期时间转换成字符串函数5.将数值转换成字符串函数格式:STR(<数值表达式>[,<长度>[,<小数位数>]])功能:将数值型表达式的值转换成字符数据。说明:
<长度>表示转换后字符串的长度。
<小数位数>表示四舍五入后保留的小数位数省略<小数位数>时,转换后将无小数部分省略<长度>,<小数位数>时,字符串长度为10,无小数部分如果指定的<长度>小于整数部分的位数,则返回指定长度个星号*,表示出错5.将数值转换成字符串函数例:STR函数的应用?str(23.45*10,6,2),str(3.14159,4,2),str(123.45,2,2)输出的函数值为:234.503.14**例:STR函数的应用6.将字符串转换成数值函数格式:VAL(<字符型表达式>)功能:将由数字、正负号、小数点组成的字符串转换为相应的数值型数据说明:若字符串中含有非上述字符,则转换到该字符为止若串的第一个字符即非上述字符,函数值为0
前导空格不影响转换返回值四舍五入默认保留2位小数6.将字符串转换成数值函数例:VAL函数的应用?VAL("23.45")+100输出的函数值为:123.45?VAL(''11A.126'')输出的函数值为:11.00?VAL(''A11.126'')输出的函数值为:0.00例:VAL函数的应用7.将字符转换成ASCII码的函数格式:ASC(<字符型表达式>)功能:给出指定字符串首字符的ASCII码值。
函数值为数值型.
8.将ASCII值转换成相应字符函数格式:CHR(<数值型表达式>)功能:将数值型表达式的值作为ASCII码,给出所
对应的字符例:ASC函数和CHR函数的应用?ASC(''abcd''),CHR(97)输出的函数值为:97a7.将字符转换成ASCII码的函数2.2.5测试函数1.表尾测试函数格式:EOF([<工作区号>|<表别名>])功能:测试指定或当前工作区中记录指针是否移到表结束处。若记录指针指向表中最后一个记录之后,函数值为.T.,否则为.F.2.表起始测试函数格式:BOF([<工作区号>|<表别名>])功能:测试指定或当前工作区中记录指针是否移到表开始处。若记录指针指向表中第一个记录之前,函数值为.T.,否则为.F.2.2.5测试函数1.表尾测试函数3.记录号测试函数格式:RECNO([<工作区号>|<别名>])功能:返回指定或当前工作区中表的当前记录的记录号,函数值为数值型说明:省略参数时,默认为当前工作区若记录指针在最后一个记录之后,返回比记录总数大1的值若记录指针在第一个记录之前或者无记录,返回1若测试的工作区未打开表文件,RECNO()的值为03.记录号测试函数4.记录个数测试函数格式:RECCOUNT([<工作区号|别名>])功能:返回当前或指定表中记录的个数说明:如果在指定的工作区中没有表被打开,则函数值为0
如果省略参数,则默认为当前工作区
RECCOUNT函数返回的值不受SETDELETED
和SETFILTER的影响,返回的是表文件中物理上存在的记录个数4.记录个数测试函数5.数据类型测试函数格式:VARTYPE(<表达式>,[<逻辑表达式>])功能:测试表达式的数据类型,返回用字母代表的数据类型。函数值为字符型例2.46?VARTYPE(.t.),VARTYPE(2*3.14+12)?VARTYPE(DATE()),VARTYPE(ABC)5.数据类型测试函数5.数据类型测试函数格式:VARTYPE(<表达式>,[<逻辑表达式>])功能:测试表达式的数据类型,返回用字母代表的数据类型。函数值为字符型说明:未定义或错误的表达式返回字母U
若表达式是一个数组,则根据第一个数组元素的类型返回字符串若表达式的运算结果是NULL值,则根据函数中逻辑表达式的值决定是否返回表达式的类型。如果逻辑表达式为.T.,则返回表达式的原数据类型。如果逻辑表达式为.F.或省略,则返回X,表明表达式的运算结果是NULL值5.数据类型测试函数5.数据类型测试函数例:数据类型测试函数的应用a=DATE()a=NULL?VARTYPE(456),VARTYPE([Good]),VARTYPE(a,.T.),VARTYPE(a)输出的函数值为:NCDX5.数据类型测试函数6.表文件测试函数格式:DBF([<工作区号>|<表别名>])功能:用于给出指定工作区的表文件名。7.求字符串长度函数格式:LEN(字符型表达式)功能:求字符串的长度,即所包含的字符个数。若是空串,则长度为0。函数值为数值型例:求字符串长度函数的应用C='VisualFoxpro程序设计'?LEN(C)
输出的函数值为:216.表文件测试函数8.文件测试函数格式:FILE(<文件名>)功能:检测指定的文件是否存在。若文件存在,函数值为.T.,否则函为.F.说明:文件名必须是全称,包括盘符、路径和扩展名,且<文件名>是字符型表达式8.文件测试函数9.记录删除测试函数格式:DELETED([<工作区号>|<别名>])功能:测试当前或指定表中记录指针所指的当前记录是否有被逻辑删除。若是则为真,否则为假9.记录删除测试函数10.NULL值测试函数ISNULL()格式;ISNULL(<表达式>)功能:判断一个表达式的运算结果是否为
NULL。若是则返回值为真,否则为假注:NULL值是一个不明确值(准确地说,只是一种状态,而不是一个值,在表的浏览窗口中只能用Ctrl+0输入),因此不能与其他值比较大小。11.空值测试函数EMPTY()格式;EMPTY(<表达式>)功能:判断一个表达式的运算结果是否为空值。
若是则返回值为真,否则为假。注:空值与NULL值是两个不同的概念。如函数EMPTY(.NULL.)的返回值为假(.F.)。首先空白一定是空值,其次对不同类型的空值还有不同的规定,如表2.4。10.NULL值测试函数ISNULL()12.判断值介于两个值之间的函数格式:BETWEEN(<表达式>,<表达式L>,<表达
式H>)功能:判断表达式的值是否介于相同数据类型的另
外两个表达式值之间。若是,返回.T.值,
否则返回.F.。如果<表达式L>或<表达式H>
是NULL值,则函数值也是NULL值。例2.52:BETWEEN函数的应用。store8toNstoreNULLtoM?BETWEEN(N,0,20),BETWEEN(N,M,20)输出的函数值为:.T..NULL.12.判断值介于两个值之间的函数13.条件测试函数格式:IIF(<逻辑型表达式>,<表达式1>,<表达式2>)功能:如果<逻辑型表达式>的值为.T.,则函数值为
<表达式1>的值,否则为<表达式2>的值。例2.53:求分段函数的值:
x=-2Y=1?IIF(X<0,-Y,IIF(X>0,Y,Y-1))输出的函数值为:-113.条件测试函数14.字段数测试函数FCOUNT()格式:FCOUNT([<工作区号>|<表别名>])功能:函数返回指定工作区中表文件的字段数,若在指定工作区
中没有表文件打开,则返回值为0。若无参数,则测试当前工作区。15.出错函数ERROR()格式:ERROR()功能:函数返回一个错误号码。只有当ONERROR激活时,
ERROR函数才能返回正常的错误号码,否则返回0值。16.出错信息函数MESSAGE()格式:MESSAGE([<1>])功能:函数返回与ERROR函数对应的出错信息字符串。若有可选
项<1>,则给出当前出错的命令行内容。14.字段数测试函数FCOUNT()17.别名函数ALIAS()格式:ALIAS([<工作区号>])功能:函数返回指定工作区中表文件的别名,若在指定工作区中
没有表文件打开,则返回值为空串。若无参数,则测试当前工作区。例2.54
SELECT2USE专业ALIASBBSELECT1USE学生?ALIAS()学生?ALIAS(2)BB17.别名函数ALIAS()18.INKEY函数格式:INKEY([<数值表达式>])功能:函数返回用户按键的ASCII码,其值为0~255之间的整数。
<数值表达式>指定在用户没有按键的情况下等待的秒数
,若未指定<数值表达式>,则等待时间为0;若指定的<数
值表达式>为0,则INKEY函数将一直等待用户按键。例2.55系统等待8分钟,若不按键则退出系统;若按键则执行
”查询.prg”程序。CLEAR@2,10SAY“等待8分钟,若不按键则退出系统!”STORECHR(INKEY(480))TOCKIFCK==“”CLEARALLQUITELSEDO查询ENDIF18.INKEY函数19.查找是否成功测试函数格式:FOUND([<工作区号|别名>])功能:在当前或指定表中,检测是否找到所需的数据。若找到所需的数据记录,函数值为.T.,否则为.F.说明:如果省略参数,则默认为当前工作区若指定的工作区中没有表被打开,则返回.F.19.查找是否成功测试函数VisualFoxPro使用4种类型的运算苻:算术、关系、逻辑和字符运算苻。表达式是由同类型的各种数据(如常量、变量、函数)通过各种运算符连接起来的具有一定意义的式子。表达式的求值结果为单个值。根据表达式运算结果的数据类型不同,表达式分为:字符表达式、数值表达式、关系表达式、逻辑表达式。当同一表达式中使用了几种运算符时,其优先级为:算术运算符或字符运算符-关系运算符-逻辑运算符。同一级别中的全部运算为从左至右的顺序进行,只有在使用了括号的情况下才能改变运算顺序。3+5<56/8.or."abc">"123".and..not."abc">"abc"2.3表达式80VisualFoxPro使用4种类型的运算苻:算术、关系2.3.1.数值表达式数值表达式是由算术运算符将数值型数据连接起来的式子,其运算结果仍然是数值型数据。算术运算符对表达式进行算术运算,产生数值型、货币型等结果。它包括6种运算符:
加法运算 -减法运算
乘法运算
除法运算
%求余运算**或^乘方运算 ()优先运算符运算优先级规则:先乘除和求余,后加减,乘方优先于乘除,函数优先于乘方,圆括号的优先级别最高。同级运算时,从左至右依次运算。例2.55
计算半径为12cm的圆面积。?PI()*12^2
452.3893812.3.1.数值表达式812.3.2.关系表达式关系表达式由关系运算符将两个运算对象连接起来的式子,即:<表达式1><关系运算符><表达式2>。关系表达式运算结果是逻辑值真.T.或逻辑值假.F.,关系表达式通常称为简单逻辑表达式。关系运算符对两个表达式进行比较运算,产生逻辑结果(真或假)。它包括8种运算符:<小于 <=小于等于>大于 >=大于等于=等于 <>、#、!=
不等于$子串包含运算 ==字符串精确比较使用关系运算符时,应注意以下几点:①用于比较的两个表达式的数据类型必须相同.②数值型数据是按其数值大小进行比较的;字符型数据是根据ASCII码值的大小进行比较的;日期型数据是按年、月、日的先后进行比较的。③关系成立值为.T.,否则值为.F.。822.3.2.关系表达式82例2.57?250>=300.F.?"ABC"<"BCD".T.?CTOD("01/01/2006")<=CTOD("08/01/2006").T.例2.58
字符串精确比较示例SETEXACTOFF&&系统默认,以右字符串为结束标志STORE"数据库技术"tos1STORE“数据库技术"tos2STORE"数据库技术与应用"tos3?S1=S2,S1=S3,S2=S1,S3=S1,S2==S1&&=为字符串部分相等的比较,即只要右边的字符串与左边的字符串的前边部分相等。
.F..F..T..T..F.SETEXACTON?S1=S2,S1=S3,S2=S1,S3=S1,S2==S1&&=为填充空格,等长比较
.T..F..T..F..F.83例2.57832.3.3逻辑表达式
逻辑表达式是由逻辑运算符将两个逻辑数据连接起来的式子,逻辑表达式运算结果是逻辑值真.T.或逻辑值假.F..逻辑运算符对一个或两个逻辑型表达式进行逻辑运算,产生逻辑型结果(真或假)。它包括4种运算符:.AND.
逻辑与
.OR.
逻辑或.NOT.(或!)逻辑非
()
括号运算规则:逻辑非优先于逻辑与,逻辑与优先于逻辑或,括号最优先。逻辑表达式实际上是一种判断条件,条件成立则表达式值为.T.;条件不成立则表达式值为.F.。例如,
查询计算机专业的男生。其判断条件为:
性别=‘男’.AND.专业=‘计算机’842.3.3逻辑表达式842.3.4.字符表达式字符表达式是由字符运算符将字符型数据连接起来的式子,其运算结果仍然是字符型数据。字符运算符对两个字符型数据进行包含及连接运算,它包括3个运算符:1.包含运算符$格式:<子字符串>$<字符串>功能:用于表示两个字符串之间的包含与被包含的关系,参与运算的数据只能是字符型的。如果<子字符串>被包含在<字符串>中时其结果为.T.,否则为.F.。例2.59
?"ST"$"STRING".T.?"周逊"$"周逊教授".T.
?"this"$"THISISASTRING".F.852.3.4.字符表达式852.字符串连接运算符+格式:<子字符串>+<字符串>功能:用于把两个或两个以上字符串连接成一个新的字符串。3.压缩空格(空格移位连接)运算符-格式:<子字符串>-<字符串>功能:将第一个字符串尾部的空格去掉,然后与第二个字符串连接成一个新的字符串,第一个字符串尾部的空格移到新的字符串的末尾。
例2.60STORE"this"TOASTORE"isastring"TOB?A+Bthisisastring?A-Bthisisastring_862.字符串连接运算符+862.4VFP中的命令
VFP的命令又称为语句,它是充分吸收多种高级语言的优点逐步发展形成的,但比高级语言的语句更精炼、功能更强。VFP中的所有任务都由不同的命令来完成。当选择执行某个菜单中的命令,或通过VFP提供的工具完成某些任务时,实际上也是调用了一些VFP的命令,只不过这时的命令由VFP自动生成,而不用手工输入而已。 常用命令(共有187条命令)及格式见附录一。872.4VFP中的命令 VFP的命令又称为语句,它是充分吸2.4.1命令结构
1.命令的一般格式
命令通常由两部分组成:第1部分是命令动词,表示应该执行的操作;第2部分是若干短语,对操作提供某些限制性的说明。一般格式为
命令动词[<范围>][<表达式表>][for<条件>][while<条件>]①命令动词:是一个英文动词,表示这个命令所要完成的操作.为了便于使用,当命令动词超过4个字母时,可以只写前4个字母.②范围:表示对数据库表文件进行操作的记录范围,共有4种选择:
ALL:表示对数据库表文件中的所有记录进行操作。
NEXT<n>:表示对表中当前记录开始的以下n个记录进行操作。
RECORD<n>:表示仅对第n条记录进行操作。
REST:表示对从当前记录开始一直到表中的最后一条记录之间的所有记录进行操作。
③表达式表:可以是一个或多个由逗号分隔开的表达式,用来表示命令所进行操作的结果参数。多数情况下为:FIELDS<字段名表>882.4.1命令结构1.命令的一般格式88④
for<条件>:对表中指定范围内所有满足条件的记录进行操作。
while<条件>:从指定范围内第一条记录开始,对满足条件的记录进行操作,直到遇到第一个不满足条件的记录就停止操作。
注意:当“For”条件和“While”条件同时存在时,WHILE条件优先(覆盖“For”条件)。
⑤[]:可选项,表示可根据实际需要选用或省略该项内容⑥<>:必选项,表示命令中必须选择该项.但在具体输入命令时,不能有方括号和尖括号。⑦|/:任选项,表示根据实际需要任选且必选其中一项内容。⑧……:省略号,表示前面的选项可以重复选择多次,各个项目之间用逗号隔开。89④for<条件>:对表中指定范围内所有满足条件的记录2.命令的书写规则①任何一条命令都必须以命令动词开头,后面的多个短语通常与顺序无关,但必须符合命令格式的规定。②用空格来分隔每条命令中的各个短语。③一条命令的最大长度是8192=213个字符。如一条命令太长一行输不下时,可用分行符“;”在行尾分行,并在下行连续书写。④命令中的字符大小写可以混合使用。⑤命令动词和命令字超过四个字母时,可只输入前四个字母.
如:CREATE
可简写为CREA
DISPLAY
可简写为DISP⑥VisualFoxPro中没有规定保留字,但用户在选择变量名、字段名和文件名时,应尽可能不使用系统中的命令动词和命令字,以免程序在运行过程中发生混乱。902.命令的书写规则903.运行方式VisualFoxPror的工作方式有两种:命令方式(也称交互方式)和程序方式。(1)命令方式命令方式即在窗口中输入命令行,按Enter键立即执行。例2.61USE
学生LIST(2)程序方式程序方式先要通过命令”MODIFYCOMMAND<命令文件名>”建立或编辑命令文件,然后用DO命令执行:
DO<命令文件名>
913.运行方式912.4.2赋值命令与显示命令1.赋值命令:给内存变量赋值
(1)STORE命令功能:建立内存变量,并给内存变量赋予初值或为已建立的内存变量重新赋值(注意:该命令不能给字段变量赋值!)。格式:
STORE<表达式>
TO〈变量表〉
当用STORE
命令为单个变量赋值时,可以简写为:
<内存变量>=<表达式>
例2.62
STORE1TOx,y,zSTORE"男"
TO性别
例2.64
x=1x=2*(x+10)x=x+1922.4.2赋值命令与显示命令1.赋值命令:给内存变量赋2.显示命令?/??功能:计算并显示变量、表达式和常量的值。格式:?/??<表达式>
例
STORE1TOx,y,z ?x,y,z ?2*(x+y+z)
m1="ABC" m2="DEF" ?m1+m2
?"Iamastudent." ? 观察以下两组命令的运行结果:
?"3*5-4="?3*5-4?"3*5+4="??3*5+4
注意:(1)当?命令后面没有任何表达式时,输出一个空行。(2)?/??命令的区别是:?命令从光标当前行的下一行开始显示;??命令在当前光标位置开始显示。932.显示命令?/??注意:93
第2章数据与数据运算2.1数据与数据类型2.2常用函数2.3表达式2.4VisualFoxPro命令94第2章数据与数据运算2.1数据与数据类型1
数据有许多重要的属性,包括数据类型,完整性约束等,其中首先关心的是数据类型。因为数据处理的基本原则是对相同类型的数据才能进行操作,违反了这条原则,就会发生错误。
VisualFoxPro中常量、变量、函数及表达式的数据类型有6种:字符型、数值型、逻辑型、日期型、日期时间型、货币型。
本节引入了数据容器的概念。数据容器:用户存放数据的地方。例如常量、变量、数组、记录、对象,等等。2.1.1常量
常量:在程序运行的过程中其值固定不变的量称为常量。
常量用来表示一个具体的、不变的值。常量有6种数据类型:
2.1数据与数据类型95数据有许多重要的属性,包括数据类型,完整性约束等,其1.字符型(Character)
通常用来表示文本类型的信息。由中英文字符、数字、空格和各种专用符号组成。两个或两个以上字符型数据的组合称为字符串。用定界符括起来的字符串即为字符型常量。定界符规定为:'',"",[]。如果一种定界符已作为字符型常量的组成部分,应当选择另一种定界符来标识字符串。字符型数据如:“STRING”、’昆明市’、[123]。例2.1
显示字符型常量在命令窗口键入并执行如下命令:?"用定界符括起来的"+'字符串'+[即为字符型常量]在主屏幕上显示结果如下:用定界符括起来的字符串即为字符型常量961.字符型(Character)3
2.数值型(Numeric)
数值型数据用来表示一个数量的大小,由数字、小数点和正负号等组成,包括整数(1268)、小数(0.38)、负数(-112)、浮点数(148.931)科学计算数(1.2E-8)等。数值型数据用来进行数学运算。
数值型数据在内存中用8个字节表示,其取值范围是:-0.9999999999E+20~0.9999999999E+20。3.逻辑型(Logic)表示逻辑判断结果的值。逻辑型数据只有两个值:逻辑值真True(用.T.或.y.表示)或逻辑值假False(用.F.或.n.表示)。如表达式3>4的运算结果为:.F.例2.2
在命令窗口键入并执行如下命令:
?3>4972.数值型(Numeric)44.日期型(Date)日期数据是表示日期的特殊数据,日期型常量必须用一对花括号”{“和”}”作为定界符,花括号中包含用分割符
”-”、“/”、“.”分隔的年、月、日三部分内容。其格式分为传统格式和严格格式两种:①传统格式:{mm/dd/yy}系统默认的日期型格式为美国格式:{月/日/年},即以{mm/dd/yy}的形式来表示。传统的日期型格式要受到命令语句:SETDATETO
和
SETCENTURY的影响。②严格日期格式常量以{^yyyy-mm-dd}的形式来表示,且花括号中第一个字符必须是^,年份为4位数。如{^2006-10-01}表示2006年10月1日。985例2.3
在命令窗口输入如下命令?{^2006-10-01},{10-01-06}执行结果为:.10/01/200610/01/20065.日期时间型(DateTime)日期和时间数据是表示日期和时间的特殊数据.
日期时间型数据的取值范围是:日期为01/01/0001~12/31/9999,时间为00∶00∶00~23∶59∶59.在传统格式中,系统默认的日期时间型以{月/日/年时:分:秒a|p}的形式来表示。严格格式的日期时间型常量以{^yyyy-mm-ddhh:mm:ssa|p}的形式来表示,其中a和p分别表示上午和下午,如
{^2005-12-2210:30:20p}表示2005年12月22日晚上10点30分20秒。996例2.4
在命令窗口输入如下命令?{^2005-12-2210:30:20p},{12-22-0510:30:20p}执行结果为:12/22/200510:30:20pm12/22/200510:30:20pm6.货币型(Currency)货币单位数据,数字前加前置符号”$”。货币型数据在存储和计算时,采用4位小数,并将多余4位的小数四舍五入。如$123.45678,将存储为$123.4568。货币常量不用科学记数法形式,在内存中占8个字节,取值范围是:-922337203685477.5807~922337203685477.5807。
10072.1.2变量
在程序运行过程中,其值可以发生变化的量称为变量。变量的值是可以随时更改的。
VisualFoxPro中有两类变量:一类是构成数据库表的字段名变量,另一类是独立于数据库以外的内存变量。给变量命名时,变量名应遵守以下原则:
以字母、汉字或下划线开头;变量名中只能含有字母(汉字)、数字和下划线;变量名不能是VisualFoxPro的保留字,如对象名、系统预先定义的函数名等。1012.1.2变量在程序运行过程中,其值可以发生变化的
1.字段变量:数据库表中定义的字段名。
字段名变量是指数据表文件中已定义好的任一数据项。在数据表中有一个记录指针,由它指向的记录定义为当前记录,字段名变量的值随着记录指针的移动而改变,如果一个数据表中有20条记录,则每一个字段名就有20个可取值。字段名变量的数据类型分为13类,见表2.1所示。1021.字段变量:数据库表中定义的字段名。9表2.1字段名变量的数据类型类型名称
说明
内存大小
应用举例
字符型(Character)数字、字母、符号1~254姓名、住址货币型(currencY)货币单位8存款、价格数值型(Numeric)整数、小数8考试成绩浮点型(Float)同数值型8日期型(Date)年月日 8参加工作时间日期时间型年月日时分秒8上班时间(DateTime)整型(Integer)无小数点数4单位人数双精度型(DouBle)双精度数 8逻辑型(Logical)真或假1作业完成否通用型(General)OLE(对象链接与嵌入)4EXCEL表格、图片备注型(Memo)文本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天门职业学院《现代临床医学概论》2023-2024学年第二学期期末试卷
- 山东省滨州市博兴县2025年初三全真英语试题模拟试卷(5)含答案
- 四川外语院重庆第二外国语校2024-2025学年初三下学期第一次模拟(网考)考试语文试题含解析
- 山东杏林科技职业学院《大学基础读写4》2023-2024学年第一学期期末试卷
- 泰州职业技术学院《英语综合技能1》2023-2024学年第二学期期末试卷
- 南昌师范学院《内科学》2023-2024学年第一学期期末试卷
- 2025年网络营销与跨境电商考试题及答案
- 四川省资阳市乐至县2024-2025学年初三5月综合练习(二模)化学试题试卷含解析
- 陕西省西北工业大咸阳启迪中学2025届初三下学期普通毕业班第二次模拟考试语文试题含解析
- 交通运输工程2025年相关知识考试题目及答案
- 企业会计人员劳动合同模板2025
- 浙江省肿瘤医院医疗废物暂存间环保设施提升改造项目报告表
- 敬老院安全培训课件
- 《加拉帕戈斯群岛》课件
- (高清版)DB2201∕T 43-2023 肉犊牛饲养技术规范
- 社区老旧小区外墙翻新脚手架方案
- 2025年医院消化内科年度工作计划
- 2024届河南省郑州市高三一模语文试题(解析版)
- 初中二年级 岭南版 美术 第三单元《瞬间的表情》课件
- 大国精神知到智慧树章节测试课后答案2024年秋中北大学
- 财政评审项目造价咨询技术服务方案审计服务方案
评论
0/150
提交评论