vfp实验指导书.docx
- 文档编号:25432896
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:36
- 大小:559.58KB
vfp实验指导书.docx
《vfp实验指导书.docx》由会员分享,可在线阅读,更多相关《vfp实验指导书.docx(36页珍藏版)》请在冰豆网上搜索。
vfp实验指导书
VFP程序设计
实验指导书
(非计算机专业本科)
华北科技学院计算机学院
杨月江编
2015年3月
目录
实验一项目管理器的使用3
实验二数据类型、函数和表达式4
实验三表和数据库的操作5
实验四多表操作及表的操作命令7
实验五查询与统计命令、查询设计器8
实验六用SELECT-SQL命令实现单表和多表查询9
实验七:
顺序和选择结构程序设计10
实验八:
循环结构程序设计及多模块程序设计13
实验九表单设计
(1)16
实验十表单设计
(2)18
实验十一输出类、输入类控件20
实验十二输出类、控制类控件23
实验十三控制类控件26
实验十四:
多重容器类28
实验十五表单设计的综合设计30
实验十六报表、菜单设计32
实验一项目管理器的使用
一、实验目的
1、熟悉VFP系统环境的使用。
2、熟悉VFP环境设置
3、掌握项目掌握器的使用。
二、实验内容
1、在D盘根目录下建立一个“专业班级学号+VFP实验”文件夹。
(如:
广告060201VFP实验)
2、建立项目
在上述文件夹下新建名为COLLEGE.PJX的项目,并在项目中新建一名为TEACH.TXT的文本文件,文本文件的内容不限。
3、在该文件夹下新建数据库文件SBGL.DBC。
4、在SBGL.DBC数据库中建立具有如下结构的表文件STUD.DBF:
字段字段名类型宽度小数
1学号字符型4
2姓名字符型8
3性别逻辑型1
4出生日期日期型8
5系名字符型10
5、按“学号”字段升序建立名为“学号”的主索引,并输入如下3条记录:
记录号学号姓名性别出生日期系名
10001王平.T.01/01/80计算机
20002张小强.T.01/01/80会计
30003赵峰.T.01/01/80计算机
6、将上述建立的文件夹设置为“默认目录”。
7、将日期格式设置为“月/日/年”的格式。
三、实验要求
1、完成实验任务并将有关的实验结果保存在电脑磁盘上。
实验二数据类型、函数和表达式
一、实验目的:
1、深入了解VFP的数据类型与存储类型,以及常量、变量、函数和表达式的应用。
二、实验内容:
(一)《学习指导》
1、判断常量或表达式的类型,并用Type()函数加以验证。
(1){^2002/7/14}D
(2).T.L
(3)”Ilikethisgame!
”C
(4)2<3OR’B’>’A’L
(5)31415E-4N
(6)$2000.46738Y
(7){^2002/09/1321:
34:
56}T
(8){^2002-09-13}-{^2002-09-10}N
(9)[It’sabook..]C
(10)8<>9AND9==9L
2、试用函数完成操作
(1)取出当前日期,并将当前日期转换成字符型,接在字符“今天的日期是:
”后显示输出。
?
”今天的日期是:
”+dtoc(date())
(2)从字符串“北京2008年奥运会”中分别取出字符串“2008”,“奥运会”。
?
Substr(“北京2008年奥运会”,5,4)?
Substr(“北京2008年奥运会”,11,6)
(3)把字符串“北京-”,数字2008和字符串“-奥运会”连接起来,形成字符串“北京-2008-奥运会”。
?
“北京-”+str(2008,4)+“-奥运会”
(4)判断子字符串“奥运会”是否包含在字符串“北京2008年奥运会”中,并给出该子串在长字符串中的位置。
?
at(“奥运会”,“北京2008年奥运会”,1)
(5)求出字符串“北京2008年奥运会”的长度。
?
len(“北京2008年奥运会”)
(6)用随机数函数产生一个任意的3位整数。
?
int(rand()*1000)
(7)已知字符型变量PI的值“3.1415”,试将PI的数值用&替换出来,并与100相加。
Pi=”3.1415”?
&pi+100
(8)试将字符串“BEIJING”转换“BeiJing”的形式。
?
substr(“BEIJING”,1,1)+lower(substr(“BEIJING”,2,2))+substr(“BEIJING”,4,1)+
lower(substr(“BEIJING”,5,3))
(9)试用日期函数将当前日期与时间转换成“yyyy年mm月dd日hh时mm分ss秒”的格式。
例如:
2002年9月1日9时20分10秒。
?
str(year(date()),4)+”年”+str(month(date()),2)+”月”+str(day(date()),2)+”日”+
Substr(time(),1,2)+”时”+Substr(time(),4,2)+”分”+Substr(time(),7,2)+”分”
(10)求字母“Z”与字母“A”的ASCII码差值。
?
asc(“Z”)-asc(“A”)
三、实验要求:
1、把实验的实现过程记录下来上交。
实验三表和数据库的操作
一、实验目的
1、熟练数据库表设计器和数据库设计的基本操作,
2、掌握多表间关系的建立。
3、熟悉表的命令的操作。
二、实验内容:
1、新建一个项目文件:
学生管理.pjx
2、新建一个数据库文件:
学生管理.dbc
3、利用数据库设计器:
在学生管理.dbc数据库中添加三张表student表、grade表和course表。
4、建立student表、grade表和course表。
student表结构如下:
字段字段名类型宽度小数
1学号C5
2姓名C8
3性别L1
4出生日期D8
5专业C8
6奖学金N72
按“学号”字段升序建立名为“学号”的主索引,并输入如下6条记录:
记录号学号姓名性别出生日期专业奖学金
199001王强.T.1980/06/01计算机250.00
299002李英.F.1982/12/05电子200.00
399003赵力.T.1979/06/05金融150.00
499004黄伟.T.1981/10/09电子150.00
599005陈静.F.1980/05/24计算机300.00
699006周明.F.1980/02/15金融200.00
grade表结构如下:
字段字段名类型宽度小数
学号C5
课程号C4
成绩N62
按“学号”字段升序建立名为“学号”的普通索引,按“课程号”字段升序建立名为“课程号”的普通索引,并输入如下记录:
记录号学号课程号成绩
199001C00187.00
299001c00380.00
399002c00680.00
499003c00278.00
599003c00578.00
699003c00285.00
799004c00186.00
899004c00692.00
999005c00186.00
1099005c00175.00
1199006c00268.00
1299006c00568.00
COURSE表结构如下:
字段字段名类型宽度小数
1课程号C4
2课程名C10
3课时N
4学分N
按“课程号”字段升序建立名为“课程号”的主索引,并输入如下记录:
记录号课程号课程名课时学分
1C001高等数学724
2C002大学英语905
3C003数字电路603
4C004数据库原理543
5C005会计学原理543
6C006计算机基础362
5、利用数据库设计器建立student表和grade表之间的一对多的关系。
6、利用数据库设计器建立course表和grade表之间的一对多的关系。
7、在student表中为字段设置有效性规则,要求学号不能为空。
8、以course表为例,设置记录有效性规则。
要求每学分对应的课时至少应在18学时以上。
四、实验要求
1、完成实验任务并将有关的实验结果保存在电脑磁盘上。
实验四多表操作及表的操作命令
一、实验目的:
1、熟悉利用数据工作期建立表间的临时关系。
2、熟悉常用的表操作命令。
二、实验内容:
1、利用数据工作期建立student表和grade表间的临时关系,并浏览其结果,分析其与永久关系的区别。
2、练习常用的表操作命令。
打开关闭表命令:
Use[<表名>]
表记录显示的命令:
list、display。
注意各命令选项的使用以及list与display的区别。
表记录修改命令:
edit、browse、replace命令的使用。
尤其注意replace命令的使用,以及与其他两个命令的区别。
记录删除与恢复命令:
delete、pack、zap和recall命令。
注意区分逻辑删除与物理删除的区别。
表记录的定位命令:
绝对定位命令go[to]<记录号>和相对定位命令skip[+/-]
注意绝对定位与相对定位的区别,尤其对于索引文件已打开的表文件。
表记录的索引:
建立索引index命令、打开索引setindexto、设置控索引setorderto
三、实验要求:
1、写出各命令的功能和注意事项。
实验五查询与统计命令、查询设计器
一、实验目的:
1、掌握查询和统计命令实现查询
2、掌握查询设计器的使用
四、实验内容
[查询和统计命令]
1、查找STUDENT表中非计算机专业的首条女生记录,并显示记录内容。
2、索引查找STUDENT表中1980年5月24日出生的首条记录,并显示该记录。
3、统计STUDENT表中姓名中含有“静”的学生人数并存入内存变量JRS中,显示该变量值。
4、统计所有男生的奖学金总额和平均奖学金。
5、筛选出1980年出生的学生记录,显示于浏览窗,关闭浏览窗后取消记录筛选。
6、对GRADE表中和STUDENT表实现指针联动查询,要求在显示GRADE表中所有学生课程成绩的浏览窗口中,同时将各个学生姓名和专业显示出来。
[查询设计器的使用]
1、用查询设计器建立查询文件CJCX1.QPR,根据表STUDENT.DBF和GRADE.DBF,查询“金融”专业学生各门课程的平均成绩,显示内容按顺序包括课程号和平均成绩两列,以两表中的学号进行内部连接,并要求按课程号升序显示。
操作步骤:
(1)启动查询器
(2)添加表
(3)选择输出列
(4)设置筛选记录的条件
(5)指宣对查询结果进行排序的依据
(6)指定分组所依据的字段
(7)选择查询结果的输出去向
(8)运行查询
(9)查看生成的SQL命令
(10)保存查询,键入查询文件名。
2、用查询设计器建立查询文件CJCX2.QPR,根据表STUDENT.DBF、COURSE.DBF和GRADE.DBF,查询姓“李”同学的各门课程的课程号、课程名和平均成绩。
显示内容按顺序包括学号,姓名,各门课程的课程号、课程名和平均成绩五个字段。
以两表中的学号和课程号进行内部连接,并要求按课程号升序显示。
三、实验要求:
1、完成实验任务并将有关的实验结果保存在电脑磁盘上。
实验六用SELECT-SQL命令实现单表和多表查询
一、实验目的:
1、掌握结构化查询语言SQL的SELECT命令的使用方法。
二、实验内容:
1、单表查询
(1)查看student表的学生信息
(2)查看student表中学生的学号、姓名和奖学金信息
(3)查看student表中计算机专业的学生信息
(4)查看student表中姓赵的同学的学号和专业信息
(5)查看student表中所有学生的最高奖学金,并使用列标题最高奖学金,查询结果保存在数组jxj中
(6)查看student表中奖学金在300与500之间的同学信息(请写出两种实现的查询语句)
(7)统计student表中各个专业的同学人数,查询结果保存在自由表zyrs中
(8)查看student表中计算机专业的同学人数,查询结果送往屏幕显示
(9)查看显示student表中1980年出生的学生信息,并按学号升序排列
(10)查看student表中黄伟同学的专业和出生日期
(11)查看student表中奖学金是200或300的同学信息(用两种方法实现)
(12)查看student表中各个专业的平均奖学金,使用列标题平均奖学金
(13)查看student表中所有计算机专业女同学的学号和姓名
(14)查询student表中姓“王”或姓名中带有“伟”字的学生信息。
(15)查询student表中“计算机”和“金融”专业所有学生的学号,姓名,性别和专业信息。
(16)查询book表中清华大学出版社出版的书籍信息
(17)查询book表中价格低于20元的书籍的书名和出版社信息
(18)查询borrow表中学号为0005的同学的借阅情况
(19)查询borrow表中借阅日期在1999年5月1号之前的借阅情况
(20)查询stud表中赵峰同学的出生日期
2、多表查询:
(只要求掌握内部连接)
(1)根据表student和grade查询有成绩记录的学生的学号,姓名,课程号和成绩。
用两种方法实现。
(2)根据stud表和borrow表,查询王平同学的借阅书籍的书号,借阅日期
三、实验要求:
1、完成实验任务并将有关的实验结果保存在电脑磁盘上。
实验七:
顺序和选择结构程序设计
一、实验目的:
1、掌握程序的建立、修改与运行
2、掌握基本输入输出语句与函数
3、熟练掌握IF语句(包括单分支和双分支)和DOCASE语句的使用。
4、分析程序的运行结果。
二、实验内容:
1、编写程序分别统计所有学生和计算机专业学生的奖学金总额,把统计结果分别保存在数组x和y中,最后输出x和y的值。
2、从键盘输入两个数存入变量x和y,若x>y则交换他们的值,否则直接输出x和y的值。
3、编写一个程序,输入一个名字,在student表中查找,若能找到,则将该同学的奖学金增加100元,若查不到则提示“找不到该同学”。
4、编写程序,从键盘输入一个日期,查询STUDENT表中该日期以后出生的学生信息,并显示在浏览窗口中。
5、分析结果
执行下列程序后,变量x的值为()。
x=1
ifx>=1
docase
casex>0
x=x+1
casex>1
x=x+1
otherwise
x=4
endcase
else
x=3
endif
6、执行下列命令序列,屏幕显示()
a=100
b=50
a=a+b
b=a-b
b=a*2
?
a+b
7、执行下列命令序列,屏幕显示()。
b=6
docase
casemod(b,3)=0
b=b+1
casemod(b,2)=0
b=b+2
otherwise
b=b+3
endcase
?
b
8、执行下列命令序列,屏幕显示()
inputtoa
ifa=10
b=0
endif
b=1
?
b
三、实验要求:
1、完成实验任务并将程序保存在电脑磁盘上,要求把程序输入的数据和运行的结果写出来。
实验八:
循环结构程序设计及多模块程序设计
一、实验目的
1、熟悉掌握DO-WHILE循环、FOR循环和SCAN循环三种循环结构的使用。
2、掌握过程的定义与调用。
3、掌握参数的传递(形参与实参的对应关系)。
二、实验内容:
1、计算自然数1~100的偶数之和(用dowhile和for语句两种写法实现)
2、求1到100间能被7整除的个数和这些数的和。
3、求N!
4、逐条输出STUDENT表中1980年出生的学生记录(使用scan循环结构)
5、编写一个程序自course表最后一条记录开始依次向前逐条显示当前记录,等待用户按下任一键后,再显示前一条记录。
6、分析结果
下面程序执行后,变量x的值为()。
x=0
dowhile.t.
fori=5to1step-1
x=x+i
endfor
ifx>10
exit
endif
enddo
(A)15(B)10(C)5(D)0
7、分析结果
有如下程序段:
input"请输入字符串:
"toc1
?
fori=1tolen(c1)step2
?
?
substr(c1,i,1)
endfor
运行时输入"abcde",则输出的结果为()
8、设程序fac.prg如下:
parametera,b,c
d=b*b-4*a*c
docase
cased<0
d=-1
cased>0
d=1
otherwise
d=0
endcase
?
d
在主程序中执行下列命令:
dofacwith3,4,1
显示的结果为()。
9、执行下列程序后,显示内容为()。
x=5
y=6
z=7
doproc1withx,y
?
?
z
return
procedureproc1
parameterx,y
ifx>y
?
x,y
else
?
y,x
endif
endproc
10、设程序abc.prg如下:
parametersn
fori=1ton
ifmod(i,2)=1
ifmod(i,5)=0
?
?
str(i,3)
endif
endif
endfor
在执行命令doabcwith30后,显示的结果为()。
三、实验要求
1、利用程序编辑器完成程序。
2、把程序保存在磁盘上,并把输入的数据和运行的结果写出来。
实验九表单设计
(1)
一、实验目的:
1、学习VFP表单设计步骤;
1、学习表单设计器各窗口与工具栏的使用;
2、学习事件驱动编程方式思想,掌握VFP的事件代码编写方法。
3、掌握事件的发生次序。
二、实验内容:
1、创建如上图所示的表单,实现STUDENT表的翻页浏览与编辑,具体要求如下:
(1)新建一个表单,打开数据环境,添加student表,并将student表的部分字段映像到表单中,接着在表单的右边添加5个命令按钮,各命令按钮大小一样,垂直方向对齐,间距一样,大体布局如图所示。
(2)在表单的右上角按序添加标签控件LABEL1,文本框控件TEXT1,标签控件LABEL2;
(3)LABEL1、LABEL2的标题分别为“第”、“页”,背景透明,大小自动适应内容,字体为黑体,11号、加粗。
(4)TEXT1背景透明,无边框,文本在控件里居中;
(5)TEXT1用以显示当前页记录号
(6)在表单的左上角添加LABEL3控件,用以显示系统日期。
(7)表单背景色为纯蓝色,运行时在屏幕上居中。
(8)命令按钮COMMAND1标题为“首页”,实现STUDENT表第1条记录的浏览与编辑。
(9)命令按钮COMMAND2标题为“上一页”,实现当前记录上一条记录的浏览与编辑。
(10)命令按钮COMMAND3标题为“下一页”,实现当前记录下一条记录记录的浏览与编辑。
(11)命令按钮COMMAND4标题为“末页”,实现STUDENT表最后一条记录的浏览与编辑。
(12)命令按钮COMMAND5标题为“退出”,实现表单的释放。
2、在表单上创建一个文本框text1,一个标签label1和一个命令按钮command1,要求单击命令按钮时,文本框显示当前系统日期,标签显示当前系统时间。
3、新建表单zuidazhi,在text1,text2,text3中输入三个数,按"比较"命令按钮,则在Text4中显示其中最大数。
三、实验要求
1、按要求完成表单设计,并将相应代码写在实验报告中。
实验十表单设计
(2)
一、实验目的:
1、熟悉表单设计的过程
2、熟悉各个控件的使用及代码的编写
二、实验内容
第一题:
设计如上方左图所示的表单运行初始界面(各对象的大小、布局大致如图),
要求如下:
(注:
该题只能使用属性窗口或生成器的设置实现)
(1)新建表单,其Name属性为Form1,运行时在屏幕居中,背景色为RGB(0,0,255);
(2)往表单添加两个标签控件,Name属性分别为Label1与Label2;
(3)Label1的标题为“您好!
欢迎使用VISUALFOXPRO”,允许折行,背景透明;文字为楷体、28号、白色(RGB(255,255,255))、加粗,且在标签里居中;
(4)Label2的将显示系统当天日期,背景透明,自动调整大小以容纳其内容,文字字体为楷体、18号、白色(RGB(255,255,255))、加粗、斜体;
(5)保存表单,名为huangying.scx
第二题:
设计如上方左图所示的表单界面(各对象的大小、布局大致如图)。
要求如下:
(注:
该题只能使用属性窗口或生成器的设置实现)
(1)新建表单,Name属性为Form1,运行时在屏幕居中,标题为"调色板";
(2)在表单的左上角添加一名为Image1的图象对象,显示图形来自位图文件:
C:
\ProgramFiles\MicrosoftVisualStudio\Vfp98\fox.bmp;(或者自己在本地机上找一个图。
任何类型都可:
.bmp,.jpg,.ico,.gif等)
(3)添加一个标签控件Label1,字体为黑体12号,标题为"调出你所喜欢的颜色",自动调整大小以容纳内容,背景透明;
(4)添加一个形状控件Shape1,形状是长48、宽24的椭圆,背景色设置为青色,
即RGB(0,128,128),边框颜色为白色,即RGB(255,255,255);
(5)添加三个标签控件Label2,Label3和Label4,标题分别为"红(R)"、"绿(G)"
和"蓝(B)";
(6)添加三个微调控件Spinner1、Spinner2和Spinner3,微调的最大值和最小值
分别为255和0,键盘输入的最大值和最小值分别为255和0,增加量为10;
(7)完成后以mytsb.scx为文件名保存所设计的表单。
第三题:
设计如上方左图所示的表单运行初始界面(各对象的大小、布局大致如图),
要求如下:
(注:
该题只能使用属性窗口或生成器的设置实现)
(1)新建表单,其Name属性为Form1,标题为“登录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vfp 实验 指导书