VFP实验报告.docx
《VFP实验报告.docx》由会员分享,可在线阅读,更多相关《VFP实验报告.docx(57页珍藏版)》请在冰点文库上搜索。
![VFP实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/052ebbe9-8ca2-4257-bb4b-cb4a1f50bc04/052ebbe9-8ca2-4257-bb4b-cb4a1f50bc041.gif)
VFP实验报告
实验报告
(一)
学院:
经济与管理学院专业:
旅游管理年级:
09级
姓名:
柯玲玲学号:
091735010实验室号:
计算机号:
19
实验日期:
2010年10月10日指导教师签字:
成绩:
报告退发(订正、重做)
实验一:
熟悉VFP开发环境(验证性,3学时)
一、实验目的
1.熟悉VFP集成开发环境;
2.项目管理器的使用;
3.常用命令的使用;
二、实验内容
1.在硬盘上新建一个以自己学号命名的文件夹,并将此文件夹设置为默认目录。
要使此设置关闭VFP系统后再进入VFP系统时仍然有效该如何保存?
2.设置日期格式为年月日格式,年份四位数显示和两位数显示如何设置,以短划线”-”作为日期分隔符,要使以上设置关闭VFP系统后再进入VFP系统时失效该如何保存?
3.如何将现在小数点后只保留2位改成保留更多的位数?
4.定制工具栏操作:
如何将调色板工具栏里的红色添加到常用工具栏里?
5.在默认目录下建立“学生成绩管理”项目文件和“学生成绩”数据库。
分别在项目中建立数据库和不在项目中建立数据库,比较他们的区别。
6.观察上述第5题的操作过程中命令窗口中出现的命令,并指出各命令的作用。
7.退出VFP系统的命令是什么?
有哪些方法可以退出VFP系统?
三、实验环境
1.硬件:
学生用微机、局域网环境
2.软件:
Windows2000中文操作系统、VisualFoxpro6.0
4、实验步骤
1.操作如下:
(1)选择在一个硬盘内新建一个以自己学号命名的文件夹
(2)工具—选项—文件位置—默认目录—修改—在“使用默认目录”前的小正方框内打钩—点击“定位默认目录”后的省略号小方框—选择所要保存的已建立的文件夹—选定—确定—设置为默认值—确定
2.操作如下:
(1)工具—选项—区域—在“日期格式”中选择“年月日”一项
(2)在“年份(1998或98)(C)”前的小方框打钩时年份显示为四位数,不打钩时显示为两位数
(3)在“日期分隔符(T)”前的小方框打钩,并在后面的小方框填入短划线“-”
(4)要使以上设置关闭VFP系统后再进入VFP系统时失效,直接点击“确定”,不选择“设置为默认值”即可
3.操作如下:
工具—选项—区域—“小数位数(I)”—选择小数位数
4.操作如下:
显示—工具栏—定制—调色板—将红色直接拖动到常用工具栏
5.操作如下:
(1)文件—新建—项目—新建文件—修改项目文件为“学生成绩管理”—保存
(2)在项目中创建数据库:
项目管理器—点击数据前的“+”—数据库—新建—选择新建数据库—修改数据库名为“学生成绩”—保存
(3)不在项目中创建数据库:
文件—新建—数据库—新建文件—修改数据库名为“学生成绩”—保存
(4)二者的区别在于:
项目中创建的数据库更利于管理
6.答案如下:
CREATEPROJECT:
创建一个新的项目
CREATEDATABASE:
创建一个新的数据库
MODIFYDATABASE:
修改数据库(打开数据库设计器)
7.答案如下:
命令:
Quit
方法:
1.在命令窗口输入“quit”,按回车键
2.选择“菜单—退出(X)”
3.直接点击窗口上的
关闭按钮
5、实验调试及总结
1.VFP系统的操作可通过选择菜单项的方式来实现,免去记忆各种复杂的代码,更为简便,但VFP的菜单并不能提供所有常用的命令项,因此学会在命令窗口中键入各种命令是非常必要的。
2.在操作中对VFP配置所做的更改可以是临时的,也可以是永久的。
如果是临时设置,只在当前工作期有效,是保存在内存中并在退出VFP时释放;如果是永久设置,会变成下次启动VFP时的默认设置值,是保存在Windows注册表中。
3.VFP拥有很多的文件类型。
如项目,数据库,程序,表,表单,菜单,标签……
4.项目管理器能够组织管理在应用系统的过程中产生大量的各种文件及相关文档,能够同时进行各类型文件的建立、修改、编辑和管理。
因此我们应养成一个良好的习惯,在开发应用程序时应首先建立一个项目文件。
实验报告
(二)
学院:
经济与管理学院专业:
旅游管理年级:
09级
姓名:
柯玲玲学号:
091735010实验室号:
计算机号:
19
实验日期:
2010年10月17日指导教师签字:
成绩:
报告退发(订正、重做)
实验二:
数据类型、函数和表达式(验证性,3学时)
一、实验目的
1.VFP变量的使用;
2.VFP函数的使用;
3.VFP表达式的使用;
2、实验内容
1.熟悉内存变量的命名规则,举例说说正确的内存变量名和不正确的内存变量名,并在命令窗口中加以测试;
2.测试两种内存变量的赋值命令(=和STORE),分别给变量赋以不同数据类型的值,用type函数测试其数据类型;
3.分别定义一个一维数组和二维数组,并用type函数测试数组元素未赋值时的数据类型及察看未赋值数组元素的值;给同一数组的不同的数组元素赋以不同数据类型的值;
4.测试常用的系统函数的用法并观察其结果(有关表的函数除外);
5.测试不同数据类型数据为空的值(即用EMPTY()函数进行测试);
6.设X=3,Y=10,求Ln|-y|+exy(1-
)的值;设a=3,b=5,c=2,求ax2+bx+c=0的根;
7.求以下逻辑表达式中各个关系表达式的值,并求出逻辑表达式的值:
“Z”>[z].AND.(’ABCLL’=‘ABC’.OR.3^2!
=LEN([VISUALFOXPRO]))
3、实验环境
1.硬件:
学生用微机、局域网环境
2.软件:
Windows2000中文操作系统、VisualFoxpro6.0
四、实验步骤
1.答案如下:
(1)内存变量的命名规则是必须以字母(可以用汉字做变量名,但不提倡)开头,只能由字母、数字或下划线组成,内存变量名长度至多为128个字符。
内存变量不可与系统保留字同名,所谓系统的保留字是VFP语言使用的命令名、函数名等,例如USE、LIST就是系统保留字。
(2)正确的内存变量如:
ABC、abc等。
2.答案如下:
(1)这两个命令都是将表达式的结果赋给内存变量,其区别是:
STORE命令可将同一个表达式的值赋给多个内存变量,变量间用逗号隔开,而“=”命令每次仅可为一个内存变量赋值。
(2)STORE"HOWAREYOU"TOX1,Y1
?
TYPE("X1")
C——字符型
T=2*3+1
?
TYPE("T")
N——数值型
3.答案如下:
(1)括号里有一个数组表达式即为一维数组,两个则为二维数组。
例如:
命令DIMENSIONX(3)定义了数组名为X的一维数组,命令DIMENSIONa(2,3)定义了一个二维数组。
(2)未赋值的数组元素的数据类型为逻辑型。
4.
(1)数值型函数
ABS(X)
求绝对值
?
ABS(-2.0)
2.0
SQRT(X)
求平方根
?
SQRT(9)
3.00
EXP(X)
求e指数的值
?
EXP
(2)
7.39
INT(X)
对X取整
?
INT(7.5)
7
ROUND(X,Y)
对X四舍五入,保留Y位小数
?
ROUND(3.141,2)
3.14
LOG(X)
求以e为底的X的对数
?
LOG(2.72)
1
MOD(X,Y)
求X除以Y的余数
?
MOD(25,4)
1
MAX(X,Y)
求X,Y中的最大值
?
MAX(7,8)
8
MIN(X,Y)
求X,Y中的最小值
?
MIN(1,2,3)
1
RAND()
返回一个0~1之间的随机数
?
RAND()
0.85
(2)字符处理函数
UPPER(S)
将小写字母转换为大写
?
UPPER(“abc”)
ABC
LOWER(S)
将大写字母转换为小写
?
LOWER(“ABC”)
abc
LEN(S)
求S的长度
?
LEN(“Hello”)
5
AT(S1,S2,[,N])
求S1在S2中第N次出现的位置
?
AT(“H”,“CHINA”,1)
2
SUBSTR(S,N1,N2)
S中第N1位起长度为N2的字串
?
SUBSTR(“Hello”,2,2)
“el”
LEFT(S,N)
从字符串S左边取N个字符
?
LEFT(“中国人”,4)
中国
RIGHT(S,N)
从字符串S右边取N个字符
?
RIGHT(”12345”,3)
345
SPACE(N)
生成N个空格
?
space(4)
“”
EMPTY(表达式)
确定表达式是否为空值
?
EMPTY(SPACE(4))
.T.
&<字符型变量>
替换出存储在字符型内存变量中字符串
name=“student.dbf”use&name
打开表student
((3)日期与时间函数
DATE()
求当前日期
?
DATE()
2010/10/17
DATETIME()
求当前日期和时间
?
DATETIME()
2010/10/17
10:
22:
33am
YEAR(D)
求年份
?
YEAR({^2010/10/17})
2010
MONTH(D)
求月份(数值)
?
MONTH({^2010/10/17})
10
CMONTH(D)
求月份(字符)
?
CMONTH({^2010/10/17})
October
DAY(D)
求日期
?
DAY({^2010/10/17})
17
DOW(D)
求星期几(数值)
?
DOW(DATE())
7
CDOW(D)
求星期几(字符)
?
CDOW(DATE())
Sunday
TIME(D)
求当前时间
?
TIME()
10:
56:
35
(4)类型转换函数
ASC(S)
求最左边字符串的ASCII值
?
ASC(“Hello”)
72
CHR(ASCII码)
由ASCII码转相应字符
?
CHR(65)
A
STR(N1,N2,[,N3])
将数值型数据N1转换成长度N2的具有N3位小数的字符型数据
?
STR(3.14,5,1)
“3.1”
VAL(S)
字符型转换为数值型
?
VAL(“3.14”)
3.14
CTOD(S)
字符型转为日期型
?
CTOD("^2010/10/17")
10/10/17
DTOC(D)
日期型转成字符型
?
DTOC({^2010/10/17})
“10/10/17”
DTOS(D)
把yyyymmdd格式转换成字符串日期
?
DTOS(DATE())
“20101017”
(5)系统测试函数
RECNO([<工作区>])
检测当前记录号
RECNO
(1)
当前记录号
RECCOUNT()
检测当前记录数
RECCOUNT()
记录个数
DBF([<工作区>])
返回打开的表名
DBF
(1)
打开的表名
SELECT()
返回当前工作区号
SELECT()
工作区号
TYPE(“表达式”)
返回表达式类型
s="Hello"
?
Type("s")
C
FILE(”文件名”)
测试文件名是否存在
?
FILE(“student.dbf”)
.T.
5.答案如下:
(1)EMPTY()函数可以确定表达式是否为空值。
如果表达式为空,则EMPTY()返回逻辑真值.T.;否则EMPTY()返回逻辑假.F.。
可作为EMPTY()参数表达式的包括字符型,数据型,日期型和逻辑型表达式,也可以是表的字段名表达式。
(2)例如:
?
EMPTY(.T.).F.
?
EMPTY("100").F.
?
EMPTY(SPACE(5)).T.
?
EMPTY(2010/10/17).F.
6.答案如下:
(1)T=log(abs(-y))+(exp(x*y))*(1-sqrt(y))
x=3
y=10
?
T
T=-23107125253585.2800
(2)X1=(-B+SQRT((B^2)-(4*A*C)))/(2*A)
A=3
B=5
C=2
?
X1
X1=-0.6667
X2=(-B-SQRT((B^2)-(4*A*C)))/(2*A)
A=3
B=5
C=2
?
X2
X2=-1.0000
7.答案如下:
(1)关系表达式是由两个同类型的表达式用关系运算符连接起来的式子。
其运算结果为逻辑值.T.(真)或.F.(假)。
(2)?
"Z">[z].T.
?
"ABCLL"="ABC".T.
?
3^2!
=LEN([VISUALFOXPRO]).T.
?
"Z">[z].and.("ABCLL"="ABC".or.3^2!
=LEN([VISUALFOXPRO])).T.
5、实验调试及总结
1.要熟练掌握VFP的多种数据类型及各种数据类型的正确表达形式,务必以谨慎的态度进行操作。
2.常量和内存变量能够使用的数据类型只有6种,分别是:
字符型、数值型、货币型、日期型、日期时间型以及逻辑型。
3.在用双引号或单引号等定界符标识字符串时,不能使用汉字全角状态下的引号,因为VFP命令不能识别全角汉字下的符号。
4.函数是用来实现某指定运算或操作的一种特殊程序,应熟练掌握几种常用的系统函数。
例如:
数值型函数、字符处理函数、日期和时间函数、表与记录函数、类型转换函数、系统测试函数。
5.掌握VFP多种运算符,明确各种运算符的运算优先级:
数值运算符高于关系运算符,关系运算符高于逻辑运算符。
同一等级命令从左到右进行,括号内的运算优先执行,嵌在最内层括号的运算首先进行,然后依次由内向外执行。
实验报告(三)
学院:
经济与管理学院专业:
旅游管理年级:
09级
姓名:
柯玲玲学号:
091735010实验室号:
计算机号:
19
实验日期:
2010年10月24日指导教师签字:
成绩:
报告退发(订正、重做)
实验三:
表与数据库的基本操作(验证性,6学时)
1、实验目的
1.数据库的建立,表的建立;
2.表的完整形约束、数据库和表的打开关闭;
3.表记录的插入、修改和删除;
4.表记录的显示以及记录的定位;
5.记录的排序,单索引和复合索引的建立,索引的使用方法;
6.多工作区的使用,表间关联的建立。
2、实验内容
1.在“学生成绩”项目中建立“学生成绩”数据库;在学生成绩数据库中建立“学生”、“成绩”、“课程”三个数据库表并输入一些相应的数据;在“学生成绩”项目中建立自由表ABC.dbf;并将这些表从项目中移出或移入;
2.对“学生”表设置如下的约束(字段有效性):
学号不能为空,为空时提示信息:
“必须输入学号”、奖学金的默认值为200;对课程表设置如下约束(记录有效性):
课时>=学分*20;
3.对上述三个数据库表进行数据增加、删除(包括逻辑删除和物理删除)和修改操作;
4.用菜单的方法进行表记录的定位,指出什么是当前操作记录;
5.将学生表的学号设定为主索引,升序排列;成绩表的学号和课程号作为普通索引,在表中要有一个学生有多门课的成绩、多个学生有同一门课的数据的条件下试试这两个字段能否作为主索引;课程表的课程号作为主索引,降序排列并对该表察看索引结果;对学生、成绩、课程三个表建立永久性关系;
6.用命令对学生表的学号建立独立索引文件、对成绩表的学号建立非结构化复合索引文件;
7.利用数据工作期建立学生表、成绩表和课程表的关联,使得指针在“学生”表的浏览窗口中移动时,在“成绩”的浏览窗口中同步显示与该学号有关的成绩信息、在“课程”表的浏览窗口中同步显示该生相应成绩的课程名的纪录。
三、实验环境
1.硬件:
学生用微机、局域网环境
2.软件:
Windows2000中文操作系统、VisualFoxpro6.0
四、实验步骤
1.操作如下:
(1)新建项目文件:
文件—新建—项目—新建文件—修改项目文件名为“学生成绩”—保存
(2)在项目管理器中新建数据库:
数据—数据库—新建—新建数据库—修改数据库名为“学生成绩”—保存
(3)在数据库设计器中建表:
在数据库设计器中右击—新建表(N)…—新建表—输入表名为“学生”—保存—进入“学生”表设计器—输入相应的字段名—确定—在“现在输入记录”对话框单击“是”—输入数据—Ctrl+W—“学生”数据库表创建完毕
(4)以相同的步骤创建“成绩”、“课程”数据库表
(5)项目文件中创建自由表:
学生成绩项目管理器—数据—自由表—新建—新建表—输入表名为“ABC”—保存—进入“ABC”表设计器—输入相应的字段名—确定—在“现在输入数据”对话框单击“是”—输入数据—Ctrl+W—“ABC”自由表创建完毕
(6)移去表:
项目管理器—数据选项卡—“ABC”自由表—移去—在对话框中选择“移去”
2.操作如下:
(1)项目管理器—数据库选项卡—“学生成绩”数据库—“student(学生)”数据库表—修改—student表设计器—选中“学号”字段—在规则框中输入:
EMPTY(学号)!
=.T.—在信息框中输入:
“必须输入学号”—选中“奖学金”字段—在默认值框中输入“200”—确定—是
(2)打开course(课程)表设计器—选择表选项卡—在纪录有效性的规则框中输入“课时>=学分*20”—确定—是
3.操作如下:
(1)增加:
追加新纪录:
APPEND[BLANK]
插入新纪录:
INSERT[BLANK][BEFORE]
(2)删除:
逻辑删除:
DELETE[<范围>][FOR/WHILE<条件>]
物理删除:
PACK
(3)修改:
编辑修改:
EDIT[<范围>][FIELDS<字段名表>][FOR<条件>]
4.操作如下:
(1)在VFP中,有一个用以确定当前记录的记录指针,记录指针指向哪一个记录,这一个记录就是当前操作的记录,所以当前记录是某一时刻的操作对象。
数据表中记录的定位,实质上就是确定哪一个记录为当前记录。
(2)项目管理器—student(学生)表—浏览—“表”菜单—转到纪录—定位(L)…—定位
5.操作如下:
(1)学生成绩项目管理器—数据选项卡—student(学生)表—修改—进入表设计器—索引选项卡—选中“学号”,将“排序”和“类型”分别设为“升序”、“主索引”—确定
(2)同样方法将成绩表的学号和课程号修改为普通索引
(3)学生成绩项目管理器—数据选项卡—course(课程)表—修改—进入表设计器—索引选项卡—将课程号设为降序、主索引—确定—是
(4)将学生表的学号设为主索引,成绩表与课程表的学号设为普通索引—学生成绩项目管理器—数据选项卡—学生成绩数据库—修改—进入数据库设计器—在主表“学生”表的“学号”索引标识上按下左键不放,拖动到子表“成绩”表的“学号”上—释放鼠标,关系建立完成—同样方法拖动鼠标,建立主表与课程的永久性关系
6.操作如下:
(1)学生表的学号建立独立索引文件:
USESTUDENT
INDEXON学号TOXH
(2)对成绩表的学号建立非结构化复合索引文件:
USEGUADE
INDEXON学号TAGXH
INDEXON成绩TAGCJ
7.操作如下:
(1)“窗口”菜单—数据工作期—打开—选择student表、course表和grade表—确定—选择student表—单击“关系”—选择要关联的grade表—进入表达式生成器—输入“学号”—确定
5、实验调试及总结
1.表是数据库中最基本的文件,数据库系统的大部分操作与命令都离不开对表中数据的处理,因此我们应该熟练掌握表的创建与表中数据处理。
2.在表结构创建的过程中有个注意点——NULL值,NULL无明确的值,它不等于零或空格,一个NULL值不能认为比某个值(包括另一个NULL值)大或小,相等或不同。
3.熟练掌握表记录的输入和定位、表结构的修改和表数据的追加与删除。
4.表索引可以有效的帮助读者快速地根据关键词找到相应的记录,因此我们应学会创建和操作表索引。
5.数据库的表设计器是创建新表、修改表和定义索引的重要工具,应学会熟练的使用数据库设计器,对字段选项卡、表选项卡和索引选项卡进行管理操作。
6.命令方式能够很好的帮助我们对VFP中数据的操作,应学习和掌握各种命令的格式与用法。
实验报告(四)
学院:
经济与管理学院专业:
旅游管理年级:
09级
姓名:
柯玲玲学号:
091735010实验室号:
计算机号:
19
实验日期:
2010年10月31日指导教师签字:
成绩:
报告退发(订正、重做)
实验四:
查询与视图(验证性,6学时)
1、实验目的
1.顺序查询和索引查询的基本方法
2.求和,平均数、分类汇总等统计方法
3.使用查询设计器建立查询
4.用SQL命令完成各种数据库操作
2、实验内容
1.掌握顺序查询命令Locate和索引查询命令seek的使用方法,并针对student表,举例说明之;
2.掌握求和命令SUM、求平均值命令AVERAGE的使用方法;并针对student表按专业统计奖学金总和和按学生性别统计奖学金平均值;
3.用查询设计器建立查询文件INQUA.QPR。
根据表student.dbf和grade.dbf,查询“计算机”专业中男生的各门课程(即要按课程号分组)的平均成绩,显示字段依次为“课程号”和“平均成绩”两列,以两表中的学号字段进行内部连接,,并要求按课程号的升序显示;
4.利用setrelation命令建立表间临时关系:
子表为student.dbf,父表为grade.dbf,要使得当浏览父表的纪录时子表中相应的记录会跟着联动;并且在命令窗口中输入如下命令观察结果:
browfield学号,student.姓名,student.专业,课程号,成绩
5.用SQL命令实现如下查询(在实验步骤中写出相应的命令,在调试和结果分析中对该命令的各个部分进行解释):
(1)查询Student表中所有的学生信息;
(2)查询Student表中计算机专业的学生的最高奖学金、最低奖学金和平均奖学金;
(3)对Student表按专业统计奖学金,即查询按专业分组的各专业的奖学金总和(提示:
select专业,sum(奖学金)as奖学金合计……)
(4)从student表和grade表中查询学生的学号、姓名、课程号、成绩;
(5)从student表、grade表和course表中查询学生的学号、姓名、课程名、成绩(提示:
……fromstudent,grade,coursewherestudent.学号=grade.学号.and.grade.课程号=course.课程号);
三、实验环境
1.硬件:
学