VFP上机指导.docx
《VFP上机指导.docx》由会员分享,可在线阅读,更多相关《VFP上机指导.docx(24页珍藏版)》请在冰豆网上搜索。
VFP上机指导
实验一VFP的基本操作
【实验目的】
1.了解VFP的安装
2.掌握VFP的打开方法、退出方法、界面组成
3.掌握VFP的基本界面操作
4.掌握VFP的工作方式,包括VFP命令的格式与特点,两类工作方式
5.了解VFP的辅助设计工具(向导、设计器、生成器、项目管理器)
【实验内容】
1.练习打开VisualFoxpro(开始――程序――VisualFoxpro、双击桌面的快捷方式(如果桌面上没有快捷方式请实验老师讲解)、开始——运行)
2.了解VFP的界面组成
1)窗口组成:
标题栏、菜单栏、工具栏、命令窗口、主窗口
2)查看每个菜单项的内容
3)命令方式:
在命令窗口中输入如下命令,查看命令运行结果:
creatprojectsb
3.打开项目管理器,单击每个选项卡所包含的内容,了解项目管理器的作用,再执行closeall命令,查看运行结果
4.“新建”――“表”――“向导”,利用向导方式创建一个表,选择样表中的“task”,把所有的字段添加到选定字段中,单击“下一步”,选择“创建独立的自由表”,依次单击“下一步”,最后选择“完成”。
通过这个操作了解“向导”辅助工具的使用。
实验二常量、变量、运算符、表达式、函数
【实验目的】
1.掌握常量的定义、常用的5种常量的表示方法
2.掌握变量的定义、常用的4中变量的表示方法
3.掌握变量表达式值的显示命令
4.掌握常见的5种运算符的运算
5.掌握常见的函数
【实验内容】
1.在命令窗口中依次执行以下命令,查看运行结果:
?
-100.2
?
“25fgh%&$”
?
{^2004-01-03}
setstrictdateto0
?
{01/03/04}
?
.t.
2.在命令窗口中依次执行以下命令并观察每个命令的执行结果
x1=8*4
x2=“pqr”
xy=.t.
xz={^2004-01-01}
listmemorylikex?
releasex1,x2
listmemorylikex?
3.定义一个二维数组a(2,3),分别给数组的每个元素赋值为
1“2”3
4{^1999-09-09}-3.4
执行以下命令查看运行结果是否一样
?
a(2,2)
?
a(5)
4.依次执行以下命令,并观察运行结果
usersda
?
姓名
5.依次执行以下命令,并观察执行结果
?
“Iama”+“student”
?
“Iama”+“student”
?
{10/03/04}+20
?
{10/03/04}-20
?
{04/03/04}-{03/14/04}
?
3>4
?
“abcd”>“ad”
?
{01/03/04}>{02/21/03}
?
“abcd”$“ad”
setexcatoff
?
“abcdef”=“abc”
?
“abcdef”==“abd”
setexacton
?
“abcdef”=“abc”
?
“abcdef”==“abc”
6.依次执行以下命令,并观察执行结果
?
not(5>6)
?
not(5>6)and”abc”>”ad”or$100<$200
?
“abcd”$“ad”OR(1.1+2)^3>66AND{01/03/04}>{02/21/03}
7.依次执行以下命令,并观察执行结果
(1)数值函数
?
abs(-12.45)
?
max(5*4,60/2)
?
min(5*4,60/2)
?
sort(9*4)
?
exp(2*2)
?
log(54.60)
?
int(-4.68)
?
mod(10,3)
?
round(123.34567,3),round(123.34567,-2)
(2)字符函数
?
at(“A”,“ABCADE”,2)
?
substr(“HARDWORK”,3,4)
?
left(“HARDWORK”,3)
?
right(“HARDWORK”,3)
?
space(3)
?
len(“Iamastudent”)
?
trim(“Iamastudent”)
?
alltrim(“Iamastudent”)
(3)日期时间函数
?
time()
?
date()
setstrictdateto0
?
year(date()),month({04/12/04}),day({01/23/1978})
(4)转换函数
?
str(123.4567,6,2)
?
val(“123.45AB”)
?
asc(“abc”)
?
chr(66)
?
dtoc({10/21/04},1)
?
ctod(“10/21/04”)
(5)测试函数
?
type(“[abc]”)
(6)函数的混合使用
?
len(dtoc(date()))
?
len(str(10))
实验三表的建立与修改、命令子句
【实验目的】
1.掌握默认目录的设置方式
2.掌握利用表设计器建立表结构
3.掌握表中数据的输入
4.掌握表的保存与打开(命令方式、菜单方式)、表的显示方式(list/disaplay)
5.掌握表结构和表数据的修改
6.熟练掌握四种常见的命令子句的使用
【实验内容】
1.设置默认目录为D盘根目录
命令方式:
在命令窗口中输入setdefatod:
\
菜单方式:
“工具”——“选项”——“默认目录”
2.建立表文件student.dbf,结构与数据如下所示:
表结构:
字段名
类型
宽度
学号
C
6
姓名
C
8
性别
C
2
出生年月
D
8
系名
C
20
简历
M
4
照片
G
4
输入记录数据
学号
姓名
性别
出生年月
系名
简历
照片
950101
李林
男
1980.10.1
信息管理系
950102
郑兰
女
1981.7.2
会计系
其中简历、照片字段的数据由大家自行在windows下选择两个图标分别输入。
随后存盘退出。
3.重新打开表文件student.dbf,并分别查看它的表结构与记录数据,包括其中的备注字段与照片字段的数据.
4.分别用浏览(browse)方式与编辑方式查看表中的数据。
5.执行list命令查看运行的结果。
6.表的关闭(use、closeall)。
7.表的打开(usestudent、菜单方式)。
8.利用表设计器修改表的结构:
(1)“显示”——“表设计器”,在打开的表设计器窗口中将姓名的字段宽度调整为10。
(2)在“性别”字段后添加新字段为:
入学时间D。
(3)然后再将新字段删除。
9.用类似的方法建立如下表course和score,表结构分别如下所示
course表结构:
字段名
类型
宽度
课程号
I
4
课程名
C
20
课时数
I
4
必修课
L
1
学分数
I
4
表数据
课程号
课程名
课时数
必修课
学分数
1
计算机基础
64
.T.
4
2
数据库技术
48
.T.
3
3
管理信息系统
32
.T.
2
score表结构
字段名
类型
宽度
学号
C
5
课程号
I
4
成绩
I
4
表数据
学号
课程号
成绩
950101
1
87
950101
2
90
950101
3
78
950102
1
89
950102
2
92
10.依次输入以下命令并观察各个命令的执行结果
usestudent
listforsubstr(系名,1,4)=“信息”
listfor“李”$姓名
11.列出score表中从第3条到第5条记录
12.从score表中查找出成绩大于90并且课程号的为2的满足条件的记录
13.从student表中查找出满足条件的记录:
信息管理系的性别为男,并且只显示编号、姓名两个字段
实验四表的维护命令
【实验目的】
1.掌握表与表结构的复制
2.掌握记录指针的定位、移动
3.掌握新记录的插入与追加
4.掌握表记录的删除和恢复、记录的清除
5.掌握表数据的替换
【实验内容】
1.对表student表按如下要求进行操作,将操作后的新表结构显示出来
(1)复制student表的结构为student1,将复制后的新表的结构显示出来
(2)复制一个仅有学号、姓名、系名3个字段的表结构student2
(3)将student复制为表student3
(4)复制一个仅有学号、姓名、系名3个字段的表student4
(5)将1979.12.31以后出生的学生的记录复制到表student5中
(6)将当前记录复制到内存变量当中
(7)将男生记录复制到数组当中
(8)改变(6)中得到的内存变量的值,将其传送到当前记录中
(9)从数组向表中追加记录
2.对表student按如下进行操作
(1)在追加一条新记录,内容为:
“950103”,“张文”,“女”,{08/12/80},“计算机系”
(2)将表中所有性别为女的记录做上删除标记
(3)将编号为“950103”的记录彻底删除
3.打开表score,把其中成绩的值用成绩+平时成绩(假设为5分)
4.打开表student
(1)将表指针移到表的顶端,查看BOF()的返回值
(2)将表指针移到表的底端,查看EOF()的返回值
(3)用goto命令移动表指针,用display命令查看当前记录
(4)用skip命令移动表指针,用display命令查看当前记录
实验五排序与索引
【实验目的】
1.熟练使用排序与索引命令
2.了解排序及索引的概念及区别。
【实验内容】
1.对表student.dbf按照学号排序,排序后的结果放在表xh..dbf中。
2.表student.dbf先按照性别升序排列,如果性别相同再按出生年月降序排列,排序后的结果放在表xbcs.dbf中。
3.分别用命令方式和菜单方式给表student.dbf建立如下索引
(1)对表student.dbf按学号升序建立候选索引,索引标识为xh。
(2)为表student.dbf建立结构化的复合索引,要求先按照性别升序排列,如果性别相同再按出生年月升序排列,索引标识为xbcsny。
4.确定xbcsny为主控索引。
实验六顺序查询、索引查询、数据工作区、数据工作期
【实验目的】
1.熟练的利用数据工作区打开多个表
2.学会使用数据工作期工具
3.能在工作区中熟练的使用顺序查询和索引查询命令,并了解其区别。
【实验内容】
1.用命令方式在不同的工作区打开student.dbf、course.dbf、score.dbf三个表。
2.用数据工作期工具在不同的工作区打开student.dbf、course.dbf、score.dbf三个表。
并试在数据工作期中修改表的属性和建立实验五中要求的结构化复合索引。
3.在表student.dbf中定位所有性别为男的记录。
4.在表student.dbf中定位所有性别为女并且出生年月在80年以后的记录。
5.利用索引查询的方式定位表student.dbf中所有性别为女并且出生年月在80年以后的记录。
实验七表的关联、统计命令
【实验目的】
1.掌握关联的概念及步骤,能在多个表之间建立关联,并在关联的基础上实现多表操作。
2.能熟练的使用average,sum,count,total等命令,对表格进行统计。
【实验内容】
1.在表student.dbf与score.dbf之间分别用命令方式和菜单方式建立关联。
2.求出score.dbf中计算机系所有学生的平均成绩及总成绩。
3.试统计80年以后出生男学生的人数。
实验八数据库的建立、数据词典
【实验目的】
1.掌握数据库的建立及其对数据库中的表格的添加删除等操作。
2.掌握如何在数据库中建立视图
3.了解数据词典的概念及包括的内容
【实验内容】
1.建立数据库scg.dbc,并添加数据库表student.dbf、course.dbf和score.dbf三张表。
2.利用数据词典设置表student.dbf中性别字段只允许输入“男”或“女”,如果输入错误,系统将提示“性别只能是男或女”。
性别字段默认值为“男”。
3.利用数据字典设置表student.dbf的记录有效性,只允许录入学号以“95”开头的记录。
如果输入错误,系统将提示“只允许输入95的学生”。
4.利用数据字典设置表student.dbf的触发器。
(1)插入触发器:
只允许插入80年以后出生的学生记录
(2)更新触发器:
只允许修改“李”姓学生的记录。
(3)删除触发器:
只允许删除女生的记录。
5.将数据库scg.dbc中的student.dbf、course.dbf和score.dbf三张表,并在三个表之间建立相应的永久关系。
6.将数据库scg.dbc中的永久关系,建立参照完整性。
实验九建立查询、视图
【实验目的】
1.熟练的使用查询设计器对单表或多表进行查询。
2.熟练的使用视图设计器对单表或多表进行查询。
【实验内容】
1.表student.dbf中查找包含学号、姓名、性别、系名,1980年1月1日以后出生的学生。
2.查询学生成绩:
姓名、课程名、成绩
。
3.找出成绩在85分以上的学生所在的系。
4.查询各学生成绩总分、平均分
,结果按学号升序排列。
5.建立视图scgview,包含学号、姓名、性别、系名、课程名、成绩,要求通过该视图可以修改学生的成绩。
实验十SQL语言
【实验目的】
1.了解SQL语句的用法。
2.使用SQL语句建立、修改、删除表。
3.使用SQL语句插入、更新、删除记录。
4.使用SQL语句建立查询。
5.使用SQL语句建立视图。
【实验内容】
1.表操作:
(1)建立实验三中的表。
(2)将student表中姓名的字段宽度调整为10。
(3)添加新字段为:
入学时间D
(4)然后再将新字段删除。
2.记录操作:
(1)向表中插入实验三中中的数据。
(2)将score表中所有“计算机基础”课的成绩加上5分。
(3)删除student表中所有性别为女的记录。
3.student.dbf中查找包含学号、姓名、性别、系名,1980年1月1日以后出生的学生。
4.查询学生成绩:
姓名、课程名、成绩
。
5.找出成绩在85分以上的学生所在的系。
6.查询各学生成绩总分、平均分
,结果按学号升序排列。
7.建立视图scgview,包含学号、姓名、性别、系名、课程名、成绩。
实验十一程序的建立、运行,程序文件中专用命令
【实验目的】
1.掌握程序的建立、保存、运行的方法。
掌握顺序执行语句的编写。
【实验内容】
1.VFP,新建一个程序文件excercise1.prg,并保存。
2.打开程序文件excercise1.prg,编写代码,要求完成以下功能:
输出字符“中华人民共和国”,同行输出字符“河海大学(常州校区)”,换行输出“现代教育技术教学部”
3.开程序文件excercise1.prg,添加代码,要求完成以下功能:
(1)利用accept输入命令输入一个字符串,并将输入的字符串存入变量icode中。
(2)利用input输入命令输入一个字符串,并将输入的字符串存入变量icode1中。
(3)利用input输入命令输入一个数值,并将输入的字符串存入变量value1中。
(4)将icode、icode1、value1输出到屏幕上,要求输出到同一行。
4.建立程序文件excercise2.prg,完成以下功能:
清屏,在屏幕上输出“请输入长方形的长:
”“请输入长方形的宽:
”,并将用户输入的长、宽输入到变量length,width中。
利用长方形的周长、面积公式求出周长、面积。
并以“长方形的周长是XXX米”、“长方形的面积是XXX平方米”的形式显示出来。
5.新建程序excercise3.prg。
编写代码,要求完成以下功能:
在屏幕上输出:
“请输入您的用户明:
”,同时可以将用户名输入,并存储于变量username中;
在屏幕上输出:
“请输入您的年龄:
”,同时可以将用户输入的数字存储于变量userage中。
在屏幕上输出:
“欢迎您,XXX,您是XXXX年出生的”,其中第一个XXX代表用户输入的用户名,第二个XXXX代表当前年减用户输入的年龄得到的出生年。
6.建立一个程序文件excercise4.prg,完成以下功能:
关闭信息显示开关,关闭安全开关,清屏。
打开人事档案表:
student.dbf。
显示:
“请输入您想查找的人的姓名”,并将用户输入的姓名保存于变量username中(利用input命令或accept命令)。
在表中查找纪录(利用locate命令),并显示纪录。
暂停操作。
打开安全开关,打开信息显示开关。
实验十二分支、循环结构程序设计
【目的要求】
1.掌握分支、循环结构程序的设计思路、设计方法
【实验内容】
1.打开VFP,新建一个程序文件excercise5.prg,并保存。
2.打开程序文件excercise5.prg,编写代码,要求完成以下功能:
利用Wait命令输入一个字符到变量yn中,判断yn的值,如果yn=‘y’,则输出字符串“感谢您对我们的支持!
!
!
”,否则输出“谢谢合作,再见!
!
!
”
3.建立程序文件excercise6.prg,完成以下功能:
清屏,在屏幕上输出“请输入第一个数:
”“请输入第二个数:
”,并将两个数保存到变量a、b中,将a、b按照大小顺序显示出来。
4.新建程序excercise7.prg。
编写代码,要求完成以下功能:
给与用户提示:
输入三个数,将这三个数按照从达到小的顺序依次列出(同一行)。
5.建立一个程序文件excercise8.prg,完成以下功能:
输入三角形的三个边长A、B、C,若A、B、C能构成三角形,则计算出三角形面积;否则提示“不能构成三角形!
”。
若构成的三角形为直角三角形,也给出“构成直角三角形”的提示。
6.建立一个程序文件excercise9.prg,完成以下功能:
编程序由键盘输入一个数,利用IIF()函数求出该数所对应的函数F(X)的值。
其中:
F(X)=X(X<0),F(X)=2*X(02).
7.建立一个程序文件excercise10.prg,利用case语句完成以上功能。
8.建立一个程序文件excercise11.prg,完成功能:
某班学生计算机考试成绩已登记到COMPUTER.DBF自由表的成绩(N型)字段中,另有评估(C型)字段。
编程序将每个学生的计算机成绩进行评估,评估分为:
“优秀”(90-100)、“良好”(80-89)、“中等”(70-79)、“及格”(60-69)、“不及格”(0-59)五个等级,并将评估结果写到评估字段中。
9.建立一个程序文件excercise12.prg,完成功能:
分别利用while循环、for循环求出1至100以内的和,并显示结果。
利用input命令输入一个整数,分别利用while循环、for循环求出它的阶乘,并将结果输出。
10.建立一个程序文件excercise13.prg,完成功能:
用试探法求解百鸡问题,“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一,百钱百鸡,问鸡翁、母、雏各几何?
”
实验十三子程序、自定义函数、过程、变量作用域
【目的要求】
1.掌握子程序、函数、过程的定义方法与使用
2.掌握各种变量的作用域与使用方法
【实验内容】
1.新建程序excercise14.prg。
编写代码,定义一个变量A、B、C,分别赋值1,2,3。
输出A、B、C。
调用程序excercise14.prg。
重新输出A、B、C。
保存程序。
新建程序excercise15.prg编写代码,对A、B、C重新赋值4,5,6,并用”?
”输出。
观察子程序对主程序的变量影响。
2.修改程序excercise14.prg中的代码,将A声明为全局型内存变量,B声明为局部性内存变量。
修改程序excercise15.prg中的代码,将C声明为隐蔽性内存变量。
其他代码保持不变。
观察输出结果有何不同,总结结论。
3.建立一个程序文件excercise16.prg,完成以下功能:
输入两个数(最好是有正负号)到内存变量A、B中。
利用do…with…语句调用子程序excercise17.prg。
求出A、B两个数的绝对值,利用变量C先后保存并输出。
编写相应的excercise17.prg,完成接收参数功能,和求出接受参数的绝对值并返回的功能。
4.将上题分别利用过程和自定义函数完成功能。
实验十四面向对象程序设计,表单概念及基本操作
【目的要求】
1.掌握表单的概念,表单的属性设置与基本操作。
2.掌握messagebox()的适用于各种参数的使用。
【实验内容】
1.在命令窗口中输入命令,试验messagebox()的各种形式的弹出窗口。
2.新建表单文件form1.scx,保存。
将表单form1属性设置如下:
表单背景色:
RGB(120,11,231),运行,察看结果。
表单属性:
autocenter设置为.T.,运行,察看结果。
分别设置属性:
caption“河海大学(常州校区)”,maxbutton:
enabled=.F.,width=200,height=200,运行,察看结果。
3.建表单文件form2.scx,保存。
双击表单,弹出代码录入窗口,在对象:
form1;过程:
click代码录入窗口中录入:
messagebox(“你好!
欢迎来到表单世界!
!
!
”)。
运行,察看结果。
4.新建表单文件form3.scx,保存。
双击表单,弹出代码录入窗口,在对象:
form1;过程:
click代码录入窗口中录入代码,要求运行是双击表单时,弹出对话框,框中有两个按钮“是”“否”,要求对话框单击“是”时,表单背景色变为红色,否则变为蓝色。
运行,察看结果。
实验十五表单的常用控件的应用
【实验目的】
1.掌握标签、文本框、命令按钮、编辑框、单选按钮、复选框等常用控件的添加及控件的属性设置、事件与方法程序的设置方法及数据环境的设置。
2.了解图形、线条、形状、微调按钮、命令按钮组、计时器、ActiveX控件的重要属性。
【实验内容】
1.新建一个表单form4.scx,在控件工具栏中找到标签、文本框、命令按钮、编辑框、单选按钮、复选框各控件,逐个添加后注意观察各个控件的形态。
2.新建一个表单form5.scx,分别添加图形、线条、形状控件,分别做如下属性调整:
(1)选中已添加图形控件,调整其picture属性使该控件中显示一个图片(可以选c:
\programfiles\MicrosoftVisualStudio\common\graphics中任意图片)。
(2)选中已添加的线条控件,分别调整其Width、Height属性,使其成为水平线和垂直线。
(3)选中已添加形状控件,调