Visual FoxPro程序设计习题及实验指导
上QQ阅读APP看书,第一时间看更新

2.4 实验指导

(一)实验目的

1.理解数据类型的含义。

2.掌握常量类型及表示方式,变量的定义、赋值和显示方法。

3.掌握各种表达式的计算和书写。

4.掌握常用函数的功能和使用方法。

(二)实验内容

1.变量的赋值与输出显示。

2.各种常量的表示及其输入/输出方法。

3.运算符的使用及表达式求值。

4.数值处理函数、字符处理函数、日期时间函数、类型转换函数等函数的用法。

(三)实验步骤

【实验2-1】在命令窗口中通过STORE命令为变量X、Y、Z赋相同的值;用“=”命令为变量A、B、C、D分别赋值"李四"、"男"、20和当前日期,并用“?”命令显示上述变量的值。

步骤如下:

(1)在“命令”窗口中用STORE命令为变量X、Y、Z赋相同的值。

在“命令”窗口中输入:STORE VAULE TO X,Y,Z

其中,各内存变量须用逗号分隔,其中VALUE表示具体的值,如STORE 5 TO X,Y,Z。

(2)为变量A、B、C、D分别赋值"李四"、"男"、20和当前日期。

在“命令”窗口中依次按行输入:

(3)用“?”命令显示上述变量的值。

在“命令”窗口中输入:?X,Y,Z,A,B,C,D

【实验2-2】若有变量NAME="张三",SEX="男",OLD=19,DEPT="软件工程系",BIRTH={^1976/09/21},结合“?”显示命令完成下述实验任务:

输出字符表达式"学生:"+ NAME +""+ DEPT的值;

输出算术表达式35-OLD的值;

根据BIRTH值判断是否是1980年以前出生;

输出逻辑表达式OLD >20 AND SEX<>"女"的值。

步骤如下:

(1)在“命令”窗口中分别输入以下命令:

(2)在“命令”窗口中分别输入以下语句,会输出相应的结果:

【实验2-3】验证算术运算、字符运算、日期运算、日期时间运算、关系运算、逻辑运算等运算符的功能,并进行比较分析。

步骤如下:

在“命令”窗口中依次输入以下命令:

提示:运算符“-”可以作算术减法,字符连接运算、日期时间运算等多种用法。可在“命令”窗口中依次输入:

【实验2-4】各种类型的常用函数功能分析。

1.常用数值函数

(1)对数函数

在“命令”窗口中输入:

?LOG(10)  &&表示以e为底的自然对数

则在工作区窗口会显示:2.30

在“命令”窗口中输入:

?LOG10(2)  &&表示以10为底的对数

则在工作区窗口会显示:0.30

(2)指数函数

在“命令”窗口中输入:

?EXP(5) &&表示以自然数e为底,参数值为指数的指数值

则在工作区窗口会显示:148.41

(3)取余数函数

格式:MOD(<数值表达式1>,<数值表达式2>)

说明:若表达式同号,函数值为两个数相除的余数;符号相反时,函数值是余数加上除数的值,符号与表达式2相同。

在“命令”窗口中输入:

?MOD(18,5)

则在工作区窗口会显示:3

在“命令”窗口中输入:

?MOD(18,-5)

则在工作区窗口会显示:-2

在“命令”窗口中输入:

?MOD(-18,5)

则在工作区窗口会显示:2

在“命令”窗口中输入:

?MOD(-18,-5)

则在工作区窗口会显示:-3

提示:请分析上述输入命令的显示结果。

(4)最大值函数

格式:MAX(<表达式1>,<表达式2>[,<表达式3>…])

在“命令”窗口中输入:

?MAX(12,36)

则在工作区窗口会显示:36

在“命令”窗口中输入:

?MAX(11,3,-10)

则在工作区窗口会显示:11

(5)最小值函数

格式:MIN(<表达式1>,<表达式2>[,<表达式3>…])

在“命令”窗口中输入:

?MIN(12,36)

则在工作区窗口会显示:12

(6)开平方函数

在“命令”窗口中输入:

?SQRT(144) &&求144的算术平方根

则在工作区窗口会显示:12.00

在“命令”窗口中输入:

?SQRT(57)

则在工作区窗口会显示:7.55

(7)取小数位数函数

格式:ROUND(<数值表达式1>,<数值表达式2>)

说明:对<数值表达式1>的值进行四舍五入,其中<数值表达式2>决定其保留的小数位数;当数值表达式2大于或等于零时,表示要保留的小数位数,小于零时,表示整数部分的四舍五入位数。

在“命令”窗口中输入:

?ROUND(12345.6789,3)

则在工作区窗口会显示:12345.679

在“命令”窗口中输入:

?ROUND(12345.6789,0)

则在工作区窗口会显示:12346

在“命令”窗口中输入:

?ROUND(12345.6789,-3)

则在工作区窗口会显示:12000

(8)随机数函数

格式:RAND([N])

说明:产生[0,1]之间的随机数

在“命令”窗口中输入:

?RAND()  &&在工作区窗口显示[0,1]之间的随机数

?INT(RAND()*10)+1  &&在工作区窗口显示[1,10]之间的随机数

2.常用字符处理函数

(1)删除空格函数

格式:

所有函数值返回类型均为字符型。

在“命令”窗口中输入:

?ALLTRIM("□□计算机设计□□□")  &&删除首尾空格,□代表空格,下同

则在工作区窗口会显示:计算机设计

在“命令”窗口中输入:

?LTRIM("□□计算机设计□□□")  &&删除前面空格

则在工作区窗口会显示:计算机设计□□□

在“命令”窗口中输入:

?RTRIM("□□计算机设计□□□")  &&删除尾部空格

则在工作区窗口会显示:□□计算机设计

(2)左取子串函数

格式:LEFT(<字符表达式>,<数值表达式>)

说明:从<字符表达式>值左边取<数值表达式>个字符作为函数值。

在“命令”窗口中输入:

?LEFT("计算机设计",6)

则在工作区窗口会显示:计算机

(3)右取子串函数

格式:RIGHT(<字符表达式>,<数值表达式>)

说明:从<字符表达式>值右边取<数值表达式>个字符作为函数值。

在“命令”窗口中输入:

?RIGHT("计算机设计",4)

则在工作区窗口会显示:设计

(4)任意取子串函数

格式:SUBSTR(<字符表达式>,<数值表达式1>,<数值表达式2>)

说明:在<字符表达式>中从<数值表达式1>值处开始取<数值表达式2>个字符,若<数值表达式2>省略,则从起始位置开始直到所有字符个数。返回值类型为字符型。

在“命令”窗口中输入:

?SUBSTR("计算机设计",5,4)

则在工作区窗口会显示:机设

(5)产生空串函数

格式:SPACE(<数值表达式>)

说明:产生<数值表达式>值所给定的空格字符串。

在“命令”窗口中输入:

?"Visual"+SPACE(2)+"FoxPro 6.0"

则在工作区窗口会显示:Visual□□FoxPro 6.0

在“命令”窗口中输入:

?LEFT("计算机设计",6)+SPACE(2)+SUBSTR("计算机设计",7,4)

则在工作区窗口会显示:计算机□□设计

(6)英文大小写转换函数

格式:LOWER(<字符表达式>)

说明:把<字符表达式>中的大写字母变成小写。

格式:UPPER(<字符表达式>)

说明:把<字符表达式>中的小写字母变成大写。

在“命令”窗口中输入:

?LOWER("I am student!")

则在工作区窗口会显示:i am student!

在“命令”窗口中输入:

?UPPER("I am student!")

则在工作区窗口会显示:I AM STUDENT!

(7)求长度函数

格式:LEN(<字符表达式>)

说明:计算<字符表达式>的长度,其中一个汉字占两个字节的长度,当为空串时长度是0,返回值是数值型N。

在“命令”窗口中输入:

?LEN("I amstudent")

则在工作区窗口会显示:12

在“命令”窗口中输入:

?LEN("2008北京奥运会!")

则在工作区窗口会显示:15

在“命令”窗口中输入:

?LEN("") &&求空串的长度

则在工作区窗口会显示:0

(8)宏代换函数

格式:&<字符型内存变量>[. <字符型表达式>]

说明:用于代换<字符型内存变量>的内容。若有可选项,将其与代换的内容连接起来。

在“命令”窗口中依次输入如下命令:

姓名="李四"

STORE"姓名" TO name

?&name

则在工作区窗口会显示:李四

3.常用类型转换函数

(1)字符转日期函数

格式:CTOD(<字符表达式>)

说明:将<字符表达式>的值转换为相应的日期,函数值为日期型D。

在“命令”窗口中输入:

?CTOD("1949-10-01")

则在工作区窗口会显示:1949/10/01

(2)日期转字符函数

格式:DTOC(<日期表达式>)

说明:把<日期表达式>的值转换为相应的字符型数据,函数值为字符型C。

在“命令”窗口中输入:

?DTOC({^1949-10-01})

则在工作区窗口会显示:1949/10/01

(3)字符转数值函数

格式:VAL(<字符表达式>)

说明:将<字符表达式>转换为数值,函数值为数值型N。转换时从字符串最左边开始,若第一个字符为非数字字符,则值为0,否则一直到非数字字符为止。

在“命令”窗口中输入:

?VAL("123.4C5")

则在工作区窗口会显示:123.40

在“命令”窗口中输入:

?VAL("a123.45")

则在工作区窗口会显示:0.00

(4)数值转字符函数

格式:STR(<数值表达式1>[,<数值表达式2>[,<数值表达式3>]])

说明:将<数值表达式1>的值转换为总长度等于<数值表达式2>,小数位数等于<数值表达式3>的字符串,根据需要自动进行四舍五入,函数值为字符C。

在“命令”窗口中输入:

?STR(12345.6789,10,4)

则在工作区窗口会显示:12345.6789

在“命令”窗口中输入:

?STR(12345.6789,7,4)

则在工作区窗口会显示:12345.7

在“命令”窗口中输入:

?STR(12345.6789,12,2)

则在工作区窗口会显示:□□□□12345.68

在“命令”窗口中输入:

?STR(12345.6789,10)  &&省略数值表达式3,转换后无小数部分

则在工作区窗口会显示:□□□□□12346

在“命令”窗口中输入:

?STR(12345.6789) &&省略表达式2和表达式3,转换后长度为10,无小数部分,不足补空格

则在工作区窗口会显示:□□□□□12346

在“命令”窗口中输入:

?STR(12345.6789,2)  &&表达式2的值小于表达式1的长度,则函数值由“*”组成

则在工作区窗口会显示:**

(5)字符转ASCII码值函数

格式:ASC(<字符串表达式>)

说明:返回字符串表达式左边第一个字符的ASCII码值,函数值为数值型N。

在“命令”窗口中输入:

?ASC("STUDENT")

则在工作区窗口会显示:83

(6)ASCII码值转字符函数

格式:CHR(<数值表达式>)

说明:将<数值表达式>值作为ASCII码值,并返回相对应的字符,函数值为字符型C。

在“命令”窗口中输入:

?CHR(83)

则在工作区窗口会显示:S

4.日期时间函数

(1)系统日期和时间函数

DATE():返回系统当前日期,函数值为日期型D。

TIME():返回系统当前时间,函数值为字符型C。

DATETIME():返回系统当前日期、时间,函数值为日期时间型T。

(2)取年份函数

格式:YEAR(<日期型表达式>>)

说明:返回四位数字表示年份,函数值为数据型N。

在“命令”窗口中输入:

?YEAR({^2016/06/17})

则在工作区窗口会显示:2016

(3)取月份函数

格式:MONTH(<日期型表达式>)

说明:返回月份,函数值为数据型N。

在“命令”窗口中输入:

?MONTH({^2016/06/17})

则在工作区窗口会显示:6

(4)取天数函数

格式:DAY(<日期型表达式>)

说明:返回天数,函数值为数据型N。

在“命令”窗口中输入:

?DAY({^2016/06/17})

则在工作区窗口会显示:17

(5)取星期函数

格式:WEEK(<日期型表达式>)

说明:返回当前日期所在周数,函数值为数据型N。

在“命令”窗口中输入:

?WEEK({^2016/06/17})

则在工作区窗口会显示:25