Visual FoxPro 程序设计实验教程
上QQ阅读APP看书,第一时间看更新

实验1 Visual FoxPro中的数据与运算

一、实验目的

1.熟悉Visual FoxPro 6.0主窗口。

2.掌握内存变量的赋值和显示方法。

3.熟悉数组的定义和赋值。

4.掌握表达式的计算方法。

5.掌握常用函数的使用方法。

二、实验内容

实验1.1 启动Visual FoxPro 6.0

单击“开始”菜单,选择“程序”|“Microsoft Visual FoxPro 6.0”“| Microsoft Visual FoxPro 6.0”命令。

问题1:如何关闭和显现命令窗口?

实验1.2 内存变量

1.赋值与显示内存变量

在命令窗口输入下列命令。

STORE 15 TO a1,a2        &&将数值15赋值给2个内存变量

xm="李强"             &&将字符型数据赋值给内存变量xm

rq={^2015-06-05}         &&将日期型数据值赋值给内存变量rq

团员否=.F.             &&将逻辑型数据赋值给内存变量团员否

a2=a1+1              &&a1加1后再赋值给a2

?a1,a2              &&换行显示a1,a2的值

?xm                &&换行显示xm

??rq,团员否            &&不换行显示rq和团员否的值

LIST MEMO LIKE a?        &&显示以a开头的内存变量信息

显示结果参见图1-1。

问题2:在初次赋值之后,哪些内存变量的值又发生了变化?

2.清除内存变量

在命令窗口输入下列命令。

CLEAR             &&清屏幕

RELEASE ALL LIKE a*     &&清除以a开头的所有内存变量

DISPLAY MEMO LIKE *     &&显示全部内存变量

图1-1 内存变量的赋值、显示操作结果

显示结果参见图1-2。

图1-2 内存变量的清除操作结果

3.数组

在命令窗口输入下列命令。

CLEAR             &&清屏幕

RELEASE ALL         &&清除全部内存变量

DIME a(3)           &&定义数组

a(1)=10            &&给数组元素a(1)赋值

a(2)=20            &&给数组元素a(2)赋值

LIST MEMO LIKE a*      &&显示a开头的所有内存变量

显示结果参见图1-3。

图1-3 数组的定义、赋值操作结果

问题3:如果执行a(3)=a(2),请问a(2)、a(3)的值分别是多少?可以定义三维数组吗?

4.表达式

(1)算术运算表达式

?65-(2+8)*4^2/5      &&结果为:33.00

问题4:求6+(5×3)2÷4的值,请写出表达式和计算结果。

(2)字符运算表达式

?"更快 "+"更高"+"更强"

?"更快 "-"更高"+"更强"

显示结果参见图1-4。

图1-4 字符运算操作结果

问题5:如果a="123"、b="xyz"、c="天地人",则a+b+c和a-b-c的结果各是什么?

(3)日期运算表达式

?{^2015-06-05}+10

?{^2015-06-05}-{^2014-06-05}

?{^2015/06/05 8:10}+120

显示结果参见图1-5。

图1-5 日期运算操作结果

问题6:从北京奥运会开幕到今天已经过去多少天?

(4)关系运算表达式

?"a">"b","马">"羊"             &&字母、汉字比较

?6#7,"a"<>"b"               &&不等号的应用

?{^2015/01/01}>{^2015/01/02}        &&两个日期比较

?"abc"$"ab","ab"$"abc"           &&包含运算

?"abc"="ab","abc"=="ab"          &&单等号与双等号比较

显示结果参见图1-6。

图1-6 关系运算操作结果

技巧解析:同类型数据才能比较大小。

问题7:"大"与"abcd"谁大?

(5)逻辑运算表达式

?3>6.or.5<7.and.not.T.    &&结果为:.F.

技巧解析:各类运算符优先级从高到低顺序是:圆括号()→算术运算→字符和日期运算→关系运算→逻辑运算。

问题8:写出"张三"大于等于"李四"并且3不等于2的逻辑表达式和计算值。

5.常用函数

(1)数值运算函数

?INT(7.8)             &&取整数函数INT()

?ROUND(45.345,2)         &&四舍五入函数ROUND()

?MOD(10,3)            &&求余数函数

?MAX(15,8,27),MIN(15,8,27)     &&求最大、最小值函数MAX()、MIN()

?SIN(PI()/4)           &&正弦函数SIN()和圆周率函数PI()

显示结果参见图1-7。

图1-7 数值运算函数操作结果

问题9:求INT(8.8)和INT(8.1)的值。

(2)字符处理函数

?LEN("abc"),LEN("中国")           &&求字符串长度函数LEN()

?RIGHT("abc",2)              &&取右子串函数RIGHT()

?SUBSTR("china",2,3)            &&取子串函数SUBSTR()

?"天"+SPACE(2)+"地"             &&空格函数SPACE()

?AT("cd","abcdef"),AT("cf"," abcdef")   &&求字串位置函数AT()

显示结果参见图1-8。

图1-8 字符处理函数操作结果

问题10:请写出从"dgtadastabcdagdt"字符串中截取"abc"的命令。

(3)日期时间函数

?DATE()              &&系统日期函数DATE()

?YEAR({^2015/01/05})       &&求年份函数YEAR()

问题11:通过你本人的出生日期计算你现在的年龄,请写出相应命令。

(4)转换函数

?DTOC({^2015/06/05})       &&日期型转换成字符型函数DTOC()

?DTOC({^2015/06/05},1)       &&日期型转换成字符型函数DTOC()

?STR(10.456,5,2)         &&数值型转换成字符型函数STR()

?VAL("10.456")+2         &&字符型转换成数值型函数VAL()

显示结果参见图1-9。

图1-9 转换函数操作结果

问题12:如果rq={^2015/06/05},则如何将变量rq转换成字符串"2015年6月5日"?请写出相应命令。

(5)测试函数

API=120

?IIF(API>100,"空气有污染","空气质量较好")

问题13:X=90,IIF(X>100,X-50,X+50)的值是多少?

6.提高性实验

根据下列问题,写出相应命令及命令运行的结果。

(1)计算的值,设x=7.8,y=15.3。

(2)今天距今年的圣诞节还有多少天?

三、思考题

1.为什么要使用内存变量?清除内存变量的意义是什么?

2.Visual FoxPro 6.0有几大类常用函数?

3.使用表达式的目的是什么?