Visualfoxpro实验报告终结版.docx
- 文档编号:30650460
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:46
- 大小:368.97KB
Visualfoxpro实验报告终结版.docx
《Visualfoxpro实验报告终结版.docx》由会员分享,可在线阅读,更多相关《Visualfoxpro实验报告终结版.docx(46页珍藏版)》请在冰豆网上搜索。
Visualfoxpro实验报告终结版
VisualFoxpro
实验报告
班号:
学号:
姓名:
南京林业大学信息学院计算机系
实验一数据库系统及visualfoxpro概述
实验目的和要求:
1.掌握vfp启动和关闭的方法。
2.熟悉vfp的集成操作环境,掌握工具栏,“命令”窗口的使用。
3.了解vfp“选项”对话框的使用,掌握一些常用的设置以及命令。
4.掌握项目的建立与打开方法。
5.了解项目管理器的结构和定制方法。
实验内容:
一、vfp的启动
1、如何启动vfp,你所使用的vfp是哪一个版本?
观察vfp主窗口。
2、如何退出vfp,写出5种不同方法。
哪一种方法是vfp所特有的。
二、工具栏的使用
1、vfp提供了多少种工具栏?
打开和关闭工具栏的办法有哪些?
2、如果不通过查看主窗口中的工具栏,如何判断某个工具栏处于打开还是关闭状态?
三、命令窗口的使用
1、如何打开”命令窗口”?
试试CTRL+F2组合键。
2、在命令窗口中,输入下列命令,写出功能或结果。
(注意:
vfp中的命令要用英文半角来书写,中文汉字除外,vfp中命令不分大小写)
命令:
结果:
?
“vfp”
?
1+2
?
?
3/9
clear
dird:
\*.*
mdd:
\vfp
copyfilec:
\*.txttod:
\vfp\
renamed:
\vfp\*.txttod:
\vfp\*.doc
deletefiled:
\vfp\*.txt
3、在命令窗口中,星号(*)和“&&”的作用是什么?
“?
?
”与“?
”的区别在哪里?
4、在命令窗口输入如下命令:
clear
?
7*8
?
”张三李四王二麻子”
继续如下实验:
在按[enter]键执行命令之前,按[esc]键,将删除当前输入的命令
将光标移到以前输入命令的任意位置,按[enter]键重新执行此命令
选择要重新处理的代码块,然后按[enter]键
在命令窗口中选中多条命令后,单击鼠标右键,
并在弹出的快捷菜单中执行“运行所选区域”命令,
系统可以依次执行所选的多条命令。
试试看吧!
四、“选项”对话框的使用
1、执行菜单命令“工具”/“选项”,可打开“选项”对话框。
观察“选项”对话框中共有几个选项卡?
观察每个选项卡的功能。
2、选中“文件位置”选项卡,可以设置默认工作目录,也可以查看vfp中各个文件所在路径和位置。
请设置默认工作目录为软盘。
3、“区域”选项卡,可以设置日期格式,如何设置可以采用系统的日期格式?
把日期格式设置为“意大利语”,日期分隔符为“~”,使用日期中的年份,采用12小时制并计秒。
点击“确定”按钮。
请继续在命令窗口中输入如下命令,有何区别,请写出结果:
?
date()
?
datetime()
4、“语法着色”选项卡,可以更改vfp命令中不同区域的文字颜色,请将数字的前景色改为红色,字体为粗体,背景色改为蓝色,点击“确定”按钮。
请继续在命令窗口中输入如下命令,有何区别:
?
90+89
?
”xyz”
5、现在请选择“格式”/“字体”,打开字体对话框,选择字体:
隶书,字号:
三号,字型:
粗体。
看看命令窗口中命令的效果吧。
在其他的代码窗口中,你也可以用同样的方法来改变代码文本的格式啦!
五、项目的创建
将你的软盘插入软驱,用你的学号新建一个文件夹。
在命令窗口中输入:
setdefaulttoa:
\xxxxx\(其中xxxxx为你的学号)
此时你的工作路径就在你的软盘下了。
1、以你的学号为项目文件名,创建一个项目,保存在软盘上。
查看a:
\xxxxx\路径下,有几个文件?
扩展名分别是什么?
哪一个是备注文件?
2、项目管理器有几个选项卡?
分别是什么?
请认真记牢这几个选项卡,他们对我们将来的学习非常重要。
3、向项目中添加文件。
选中“其他”选项卡,选择“其他文件”,选择添加按钮,向项目中添加一个位图文件。
设置它为“排除”。
对该文件重命名为:
11.bmp。
为其添加项目说明“我的位图文件”。
查看项目管理器,写出该文件所在路径。
4、如何实现项目间的文件共享?
新建一个项目,使它与刚才项目共享文件11.bmp。
实验二常量、变量、函数和表达式
实验目的和要求:
1.掌握各种类型常量的表示方法
2.掌握变量的赋值方法
3.掌握常用函数的功能,格式和使用方法
4.掌握各种类型表达式的构造方法
实验内容:
一、常量的表示
在命令窗口中依次输入、执行下列命令,写出结果:
命令:
结果:
?
3.14
?
1.234567890543556788
?
1.45e-12
?
”894350”
?
[xkdi]
?
’abcd”45”hij’
?
[c’de’fg]
?
{^2003/10/1}
?
{2003/10/9}
Setstrictdateto0
?
{2003/10/9}
Setdatetolong
?
{2003/10/910:
29}
?
{//}
?
{//:
}
注意:
setstrictdateto0&&不进行严格的日期/时间检查
setdatetolong&&控制日期时间的显示格式
二、变量的赋值
在命令窗口中,执行下了命令,写出相应结果
1、使用“=”实现赋值
cvar=”vfp”
?
cvar
?
cvar,m.cvar,m->cvar
2、使用store命令
store1tonvar1,nvar2
?
nvar1,nvar2
cvar=nvar1
?
cvar,nvar1,nvar2
三、数组
1、创建数组,dimension命令
dimensionarray[3]
创建数组时,数组中各元素的初始值是多少?
数组元素下标从几开始?
给array数组中每一个元素赋值,请写出结果:
array[1]=1
array[2]=2
array[3]=3
array[2]=array[1]*24+array[2]
?
array[2],array[1],array[3]
2、创建三行,四列的二维数组,数组名为array1。
Dimensionarray1(3,4)
执行下列命令,写出结果,分析为什么会这样?
store“good”toarray1[1]
?
array1[1]
store234toarray1[5]
?
array1[5],array1[2,1]
四、常用函数
1、数值型函数
ABS(),INT(),MAX(),MIN(),MOD(),ROUND(),RAND(),SQRT()
根据如下要求,写出相应命令
1)求出-34+9的绝对值,并写出结果。
2)求出-7.98的整数部分,并写出结果。
3)求出50,78,-56,0,26,9当中的最大值,并写出结果。
4)求出ABS(5-7),MAX(12,4,5),INT(9.8)中的最小值,并写出结果。
5)说出MOD()函数功能,它有几个参数?
如果第二个参数是负数,则该函数结果是正数还是负数?
6)求出函数:
ROUND(12365.5878,MIN(INT(2.8),3,-2,ABS(-5)))的值。
7)生成一个介于30和60之间的一个随机数,并写出你的结果。
8)求出36的平方根,写出结果。
2、字符函数
ALLTRIM(),TRIM(),LEN(),AT(),SUBSTR(),LEFT(),RIGHT(),SPACE(),
BETREEN(),EMPTY()
根据如下要求,写出相应命令及结果(□代表空格)
1)删除“□□□□中□国□□□”前后空格。
2)删除“□□□人们□”末尾空格。
3)求字符串“□□HELLO!
□□”的长度。
4)求出字符串“LL”在“□□□HELLO!
LL□□”中首次出现的位置。
5)根据如下命令,写出结果:
cstring=”我们是中国人”
?
substr(cstring,1,6)
?
sunstr(cstring,3,2)
?
substr(cstring,min(6,2))
前两个结果都是正确的,第三个?
?
为什么呢?
6)从字符串“2344555”左边截取6个字符,请写出2种方法。
7)从字符串“我爱祖国天安门”左边截取6个汉字,请写出2种方法。
8)写出space(5)的功能。
9)打开“选项“对话框,选择“数据”选项卡,把“排序序列”选择成machine,执行between("a","A","c")命令,察看结果。
再把“排序序列”选择成pinyin,执行此命令,察看结果。
写出结果。
相同吗?
再试几个题目,自己总结在machine设置下,英文字母的大小顺序。
在pinyin设置下,英文字母的大小顺序是如何,他们将影响到between()函数的结果。
有时自己的结果和书上的会不一样,不要被蒙蔽吆。
10)写出下列命令结果
?
empty(“”)
?
empty(““)
?
empty(“sd”)
3、日期时间函数
date(),datetime(),day(),dow(),time(),month(),year()
根据如下要求,写出相应命令及结果。
设置系统日期格式为ANSI格式。
显示当前系统日期
显示当前系统时间
显示当前系统日期和时间
显示今天是一个星期中的第几天
显示今天的日期
显示今天的月份
显示今天的年份
4、数据类型转换函数
ASC(),CHR(),VAL(),DTOC(),CTOD(),STR()
1)ASC()函数功能:
显示首字符的ASCII码值。
如果它的参数是中文字符串,那结果是什么呢?
试试如下命令。
?
ASC(“V”)
?
ASC(‘我’)
2)在命令窗口执行如下命令:
?
CHR(55)
结果是:
CHR()函数功能是:
3)执行下列命令,熟练VAL()函数功能
STORE‘23’TOX
Y=’56ER’
Z=VAL(X)+VAL(Y)
?
X,Y,Z
K=X+Y
?
k
结果是:
为什么Z和K的结果不一样?
4)DTOC()函数功能:
是把日期型数据转换成字符型数据。
?
DTOC({^2003/3/6})
结果是:
SETDATETOLONG
?
DTOC(DATE())
结果是:
5)CTOD()函数功能:
把字符型转换成日期型
?
CTOD(‘2006/12/8’)
结果是:
6)STR()函数功能:
把数值型数据转换成字符型数据
执行下列命令,并写出结果:
?
STR(3.14,3)
?
STR(456.87,2)
?
STR(487010010101)
5、其他常用函数
INKEY(),TYPE(),IIF(),MESSAGEBOX()
写出下列命令的结果
1)?
inkey
(2)
?
inkey(0)
2)?
type(‘12’)
?
type(‘date()’)
3)?
iif(min(2,0,9)>max(1,-9),”max”,”min”)
?
iif(min(2,0,9)>max(-9,-90),"max","min")
说出这两条命令的功能以及结果:
4)显示右图所示的对话框,所使用的命令为:
如果选择“是”按钮,则messagebox()函数的返回值是多少?
Ø表数据库函数:
Bof()
Dbgetprop()
Dbsetprop()
Dbused()
Deleted()
Eof()
Fcount()——字段个数
File()
Order()
Reccount()——记录个数
Recno()
Seek()
Tablerevert()
Tableupdate()
Tag()
Used()
五、表达式
1、在命令窗口中,执行如下命令:
?
time()+100
则出现如右图所示对话框,请分析这个对话框出现的原因。
2、假设,x=7,y=5。
编写一段命令,计算使z=9x3+8y7
3、下列表达式能否实现(125-17)/1251/3的功能,为什么?
?
?
125-17/125^(1/3)
六、名称表达式与宏替换
1、执行下列命令,写出结果
x=100
y=”x”
store123.9to(y)
?
x,y
结果:
2、执行下列命令,写出结果
x=’1’
y=’2’
m12=34
?
m&x&y
结果:
对比下列命令段:
x=1
y=2
m12=34
?
m&x&y
结果:
为什么呢?
自己分析原因。
实验三程序控制和程序设计
实验目的和要求:
1.掌握创建、编辑、运算程序的方法。
2.初步掌握条件语句,循环语句的功能和使用方法
3.掌握程序调试的一般方法
实验内容
一、程序文件的创建
1、打开实验一中在a:
\xxxxx\下,用你自己学号创建的项目,用你的学号创建程序文件。
在编辑窗口中输入如下程序:
h=2
r=4
z=3.14*r*r*h/3
?
z
运行该程序,查看结果。
2、在vfp中,程序文件的扩展名是什么?
运行程序的方法有哪些?
说出三种方法。
3、如何打开调试器窗口?
观察调试器窗口。
4、使用调试器单步执行刚才程序,观察局部窗口内容的变化。
请熟练使用调试器,它对你的帮助会很大,虽然看起来有点复杂,其实很简单。
二、程序设计
功能:
显示所按键。
输入:
9输出:
按的是数字键9
创建程序文件p1.prg,代码如下:
clear
waitwindows“请按键”tockey
docase
casebetween(ckey,”0”,”9”)
?
”按的键是数字键”+ckey
casebetween(ckey,”a”,”z”)orbetween(ckey,”A”,”Z”)
?
”按的键是字母键”+ckey
caseckey=space
(1)
?
”按的键是空格键”
caseckey=chr(13)
?
”按的键是回车键”
otherwise
?
”按的键不是字母键、数字键、空格键、回车键!
”
endcase
请自己理解该段程序算法及功能。
请继续〉〉〉〉〉〉〉〉。
。
。
。
。
在项目中,新建一个表单文件f1.scx(创建办法同上)。
则会打开表单设计器,观察它,是不是一个我们所说的windows窗口呢?
现在我们就来设计它。
打开表单控件工具栏:
选择“按钮”控件单击,再在表单上单击,则被放到表单上了:
双击这个按钮(command1),会打开一个窗口,称为代码窗口,
把刚才的程序复制到代码窗口中。
关闭代码窗口。
保存并关闭表单设计器。
在项目管理器中,选择“文档”选项卡,选中你刚才创建的表单文件f1,运行它。
会出现一个窗口,这就对了。
点击这个窗口上的按钮command1,会弹出一个提示框,按下键盘上的任意按键,看看窗口上出现了什么?
是的,一个小的应用程序完成了。
是不是这样的界面会友好些呢!
?
三、自定义函数
1、自己创建一个有参函数,文件名为area.prg。
功能:
求圆面积。
圆的半径有用户随机输入,从而达到程序的通用性。
程序代码:
2、在命令窗口中执行刚才的函数。
查看结果是否正确。
四、自定义过程
创建程序文件test.prg,包含以下几个功能函数:
****自定义函数jiecheng,用于计算阶乘,参数名为num
代码:
****自定义函数p99,用于显示“九九乘法”表。
代码:
九九乘法表:
1:
1
2:
24
3:
369
4:
481216
5:
5101520
……
****自定义函数max1,用来求三个数中最大值
代码:
五、如何调用test.prg文件中的每个函数?
举例说明之。
六、程序改错题(2003年):
下列程序功能是:
实现二进制字符串数据压缩。
压缩算法是:
字符串首字符+该字符个数+分隔符+另一个字符个数+分隔符+……
例如:
二进制字符串为“111100*********111000111110000”,压缩后显示为:
14*5*9*3*5*4(即字符串首字符为1,4个1,5个0,9个1….,分隔符为*)
要求:
1、创建程序文件pcode.prg。
将下列程序输入到其中并进行修改。
2、在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
程序代码:
cstring=“111100*********111000111110000”
cresult=left(cstring,1)
ncount=1
forn=2tocstring
ifsubstr(cstring,n,1)=substr(cstring,n-1,1)
ncount=ncount+1
else
cresult=cresult+allt(str(ncount))+”*”
ncount=ncount+1
endif
endfor
cresult=cresult+allt(str(ncount))
waitwindows‘压缩后为’+cresult
程序的错误有两种:
语法错误和逻辑错误。
语法错误可以通过调试器的跟踪窗口得知错误位置。
但逻辑错误,程序在编译过程中,是无法把它找出来的,这就需要程序设计者,自己来调试,找出自己算法的错误所在了,但局部窗口对你应该有很大帮助。
实验四表结构和数据录入
实验目的和要求:
1.掌握自由表结构的创建和修改方法
2.掌握记录的输入方法
3.掌握表的打开和关闭
4.掌握表的浏览及定制技术
实验内容:
一、表的创建
1、根据以下表结构,创建学生表(xs.dbf)。
保存到a:
\xxxx\目录下。
把它添加到你的项目中去。
Xs.dbf:
xhc(7),xmc(6),xbc(4),zydhc(6),xdhc
(2),jgc(10),csrqD(8),bzM(4)
cj.dbf:
xhc(7),kchc(6),cjN(3,0)
查看软盘下你的文件夹中有多少个名字为xs的文件,他们的扩展都是什么?
分别代表什么类型的文件?
2、创建表格有多少种方法?
试举出3种。
使用createtable-SQL命令创建cj表。
表结构如上:
二、修改表结构
1、利用表设计器对xs表实现如下修改:
删除csrq字段,把xdh字段名改为xidaihao,字段宽度改为5。
添加nl字段,字段类型为数值型,小数位数为0位,允许为空值。
2、使用altertable-SQL语句把xidaihao字段名改为xdh。
三、记录的输入
1、如何打开表的浏览窗口,说出2种方法。
如何实现浏览窗口和编辑窗口间的切换?
2、向xs表中追加记录的方法有哪些?
自己向xs表中录入10条记录,向cj表中录入10条记录。
以备后用。
3、insert-SQL和append命令的区别是什么?
四、表的打开与关闭
1、打开xs表。
关闭xs表。
2、在编号最小的工作区打开xs表。
在5号工作区打开xs表。
打开xs表并冠以别名xuesheng。
五、表的浏览
1、使用界面操作实现如下操作:
打开xs表,使用浏览窗口浏览该表。
表的打开和浏览是一样的吗?
定义浏览窗口中的标题为“学生表”,如右图。
把xs表中的女同学筛选出来。
只显示xs表中学号,姓名,籍贯三列。
显示xs表中男同学的名单(只有学号,姓名两列),并定义浏览窗口标题为“男生名单”。
2、以上操作通过browse、setfilterto和setfieldto实现之。
看看有什么不同。
请把相应的命令写在上题空白处。
3、从表的浏览窗口看,通用型字段和备注型字段有无内容,应如何判断?
4、在“工作区属性“窗口中,是否可以设置表的浏览窗口的标题?
实验五表记录的维护和表的索引
实验目的和要求:
1.掌握表记录定位的基本方法。
2.掌握表记录维护的方法。
3.掌握创建结构复合索引的操作方法,以及索引的使用方法。
实验内容:
一、表记录的定位
1、打开xs表,观察vfp系统状态栏,xs表中有几条记录?
使用“表”菜单,把记录指针定位到最后一条记录上。
浏览xs表,看看记录指针在什么地方,这时bof(),eof(),recno()的值是多少?
使用go/goto命令实现上述操作。
2、再使用同样的方法,把记录指针定位到第3条记录上去。
再来看一下bof(),eof(),recno()的值是多少?
使用go/goto命令实现如上操作。
3、使用“表”菜单,把记录指针定位到相对于当前记录向上(向表头)2条记录。
bof(),eof(),recno()的值是多少?
使用skip命令实现如上操作。
4、使用“表”菜单,把记录指针定位到年龄为15岁的的记录上。
bof(),eof(),recno()的值是多少?
使用locate命令实现如上操作。
二、数据的修改
1、打开学生表。
使用“表”/“替换字段”实现:
☞把xs表中所有学生年龄加一岁。
☞把xs表中所有男生的性别更改为”m”。
女生更改为“fm”。
在本题的基础上,继续>>>>>>>……
2、使用update命令实现下列操作。
☞把xs表中男生学号前加上“b”,以标记该生为男生。
(如学号为‘001’的是男生,则它的学号被更改为“b001”。
)使用浏览窗口查看结果是否正确,写出命令:
☞把xs表中年龄小于15岁的女生学号前加上“g”,以标记该生为女生,(如学号为‘003’的是女生,则它的学号被更改为“g003”),并把她们的年龄减去一岁。
使用浏览窗口查看结果是否正确,写出命令:
3、使用replace命令实现下列操作。
对xs表中记录作如下修改:
如果是男生,则年龄增长一岁,如果是女生,则年龄减小一岁。
使用浏览窗口查看结果是否正确,写出命令:
4、比较replac命令和update命令的使用相同吗?
不同的,哪里不同呢?
!
三、记录的删除和恢复
1、把xs表中的年龄小于10岁的男生作删除标记。
在把它们恢复。
2、先把xs表关闭,使用delete-SQL命令把xs表中年龄小于15岁的同学作删除标记。
使用recallall命令恢复女生记录。
3、关闭xs表,使用delete命令把xs表中女生作删除标记。
4、比较delete-SQL命令和delete命令的使用有什么不同?
5、执行pack命令,通过浏览窗口查看结果。
是的,刚才带有删除标记的记录被删除了。
6、执行zap命令,系统提示什么样的信息给你?
谨慎选择…………>点击“是”。
通过浏览窗口查看结果。
表中所有记录都被删除了!
所以使用zap命令要谨慎。
现在,只好重新向xs表中录入记录了,请向xs表中录入10条记录。
四、数据的复制
执行下列命令,观察结果:
usexs
browse
copytoxs01forxb=’f’
usexs01
browse
copytoa:
\xs02fieldsxh,xmforxb=’m’sdf
copytoa:
\xs03fieldsxh,xmforxb=’m’xls
查看一下你的软盘根目录下是否有xs02和xs03文件,它们是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual foxpro实验报告终结版 foxpro 实验 报告 终结