实验一
实验题目:Visual FoxPro 8.0语言基础
实验目的:
1、熟悉VF的界面和环境
2、掌握常量、变量的定义和使用
3、掌握各种运算符、表达式和函数
实验内容:
1、内存变量的操作
(1)建立如下内存变量:
AB=8,AN=8, AM="18",B=10,R="HAPPY",A=123,方法:store 8 to AB,AN
AM="18"
B=10
R="HAPPY"
A=123
(2)将上述变量保存到A1.MEM文件中。
方法:save to A1
(3)显示所有以A开头的变量。
方法:disp memo like A*
(4)清除所有内存变量
方法:Clear memory
2、运算符与表达式
在命令窗口中执行以下命令,写出各表达式的结果。(1)?2*2^3+6
结果是:22
(2)?"I "+"LOVE "-" CHINA"
结果是:"I LOVE CHINA "
(3)?{^1998/08/12}-{^1998/08/10}
结果是:2
(4)? "as"=="as"
结果是:.T.
(5)?(8>5) and "string"$"str"
结果是:.F.
3、函数
写出以下各函数的结果。
(1)?INT(10-3.2)
结果是:6
(2)?ROUND(282.467,1),ROUND(282.467)
结果是:282.5 282
(3)?ABS(2*3-8)
结果是:2
(4)?SQRT(4)
结果是:2.00
(5)?mod(25,-4)
结果是:-3
(6)执行下列命令的结果:
Y="123"
S="VISUAL FOXPRO"
?456+&Y
?AT("1","1234141",3)
?LEN(S)
?substr(S,8,3)
结果是:579
7
13
"fox"
(7) ?YEAR({^2011/03/12})
结果是:2009
(8)?DTOC(^2011/03/12})
结果是:"03/12/11"
(9)?str(123.467,5,1)
结果是:"123.5"
(10)?ASC("APPLE")
结果是:65
(11)?CHR(66)
结果是:"B"
(12) 执行下列命令的结果:
B="a"
A=5
?2*& B
结果是:10
(13)ALLTRIM(" 中国 ")
结果是:"中国"
4、综合练习,写出下列各组命令中每条命令的执行结果。(1)X=STR(12.4,4,1)
Y=RIGHT(X,3)
Z=“&Y+&X”
?Z,&Z
结果是:2.4+12.4 14.80
(2)X="惠普586"
Y="个人计算机"
?LEN(X),RIGHT(X,3)+Y
结果是:7 586个人计算机
(3) ?AT("人民 ","中国人民解放军"),AT("人民","中国银行") ?SUBSTR("778899",5)-"1"
?TYPE("DTOC(DATE() )")
结果是:0 0
991
C
实验二
实验题目:数据表与数据库操作
实验目的:
1、掌握表结构的定义,表记录的输入、修改、浏览、删除等基本操作
2、掌握过滤器和字段表的设置和应用
3、掌握排序与索引创建和使用
4、掌握统计命令
5、掌握数据库和数据库表的操作
实验内容:
1、新建一个学生信息表,并输入如图记录。(注:在实验报告书写时表要画出来)
方法: CREATE 学生信息表
CREATE 成绩表
2、增加一个备注字段,字段名为“简历”。
方法:显示→表设计器→插入→输入字段名“简历”,设置字段类型“备注”→确定。
3、显示表结构。
方法: list structure
4、显示表中的所有女同学的学号、姓名、性别和入学成绩信息。
方法:List 学号,姓名,性别,入学成绩 for 性别="女"
5、在第2条记录的后面插入一条新记录。
方法: go 2
insert
6、从表中彻底删除刚插入的记录。
方法: go 3
Delete
pack
6、设置过滤器,条件为“性别=‘女’”,筛选出“学号”和“姓名”字段,并显示结果。
方法: set filter to 性别=’女’
set fields to 学号,姓名
list
8、取消所有设置的过滤器和字段表。
方法: set filter to
Set fields to
9、用成批替换命令计算各条记录的总成绩(总成绩=计算机基础+VF)
方法: replace all 总成绩 with计算机基础+VF
10、查找并显示学号为“201051005”同学的成绩信息。
方法:Locate for 学号="201051005"
Display
11、测试当前记录指针所处的位置。
方法:?recno()
12、对“成绩表”中“总成绩”字段按降序建立排序文件,并显示排序文件记录。方法:sort to 成绩表1 on 总成绩 /D
Use 成绩表1
List
13、在“成绩表”中,分别按“学号”升序和“总成绩”降序建立普通索引。
方法:index on 学号 tag 学号 asce
index on 总成绩 tag 总成绩 desc
14、按“学号”降序显示“成绩表”中的记录。
方法:set order to 学号
list
15、统计“成绩表”中“计算机基础”的平均分
方法:average 计算机基础 to a
16、统计“成绩表”中“总成绩”在150分以上的记录个数。
方法:count for 总成绩>150 to b
17、建立一个“学生管理”数据库
方法:create database 学生管理
18、将“学生信息表”和“成绩表”添加到“学生管理”数据库中。
方法: add table 学生信息表
Add table 成绩表
19、设置“成绩表”的“计算机基础”字段的字段有效性规则为:成绩>=0 AND 成绩<=100,出错提示信息为:“输入错误,成绩只能在0—100之间。
方法:打开“成绩表”表的表设计器,选择“计算机基础”字段,在“规则”文本框中输入“成绩>=0 AND 成绩<=100”,在“信息”文本框中输入“输入错误,成绩只能在0——100之间”。
4、设置“学生信息表”记录有效性规则为“学号”字段不能为空。出错提示信息为:“必须输入学号”。
方法:打开“学生信息表”表的表设计器,选择“表”选项卡,在“规则”文本框中输入有效性条件“.NOT.EMPTY(学号)”,在“信息”文本框中输入“[必须输入学号]”
5、以“学生信息表”为父表,“成绩表”为字表建立联系,设置级联性更新。方法: 打开“学籍管理”数据库设计器,父表按“学号”字段建立主索引,子表按“学号”字段建立主索引,将父表的“学号”索引拖到子表“学号”索引上, “数据库|清理数据库”,“数据库|编辑参照完整性”,在“更新规则”选项卡中选择“级联”选项,确定。
实验三
实验题目:查询与视图设计
实验目的:
1、理解视图的概念与作用
2、掌握使用查询设计器建立查询的方法
3、掌握使用视图设计器建立视图的方法
实验内容
(一)
根据“学籍管理数据库“的“学生信息表”建立一个查询,查询结果以浏览的方式显示,显示的字段包括“专业编号”、“学号”、“姓名”、“性别”、“出生日期”、“毕业学校”6个字段。学生信息表的结构为:(专业编号 CHAR(3),学号 CHAR(9),姓名 CHAR(6),性别 CHAR(2),出生日期 DATE(8),毕业学校CHAR(20))。
实验步骤:
1.打开“学籍管理数据库”。
2.选择“文件”中“新建”菜单,在弹出的对话框中选中“查询”单选按钮,然后单击“新建”按钮。
3.在“添加表或视图”对话框中选择相应的数据库和表。本实验中添加的表是“学籍管理”数据库中的“学生信息表”。
4.在“查询设计器”窗口中的“字段”选项卡中,依次双击“专业编号”、“学号”、“姓名”、“出生日期”、“毕业学校”6个字段作为输出字段,关闭查询设计器并保存到以“学生”为名字的查询文件中。
5.在完成上述设置后,可以用下面的3种方法运行“学生”查询文件。
(1)单击工具栏上的“!”按钮,显示查询结果。
(2)选择“查询”中“运行查询”菜单。
(3)在“命令”窗口中输入“DO 学生.QRP”命令调用查询结果
(二)
根据“学籍管理数据库”中的“学生信息表”和“成绩表”建立一个查询,查询结果以浏览方式显示,显示的字段包括“专业编号”、“课程编号”、“学号”、“姓名”、“性别”、“成绩”、“平时成绩”7个字段,要求“平时成绩“大于或等于90分,且“专业编号”为“C01”。学生信息表的结构同上,成绩表的结构为:(课程编号 CHAR(3),学号 CHAR(9),成绩 NUM(2),平时成绩NUM(2))
实验步骤:
1.打开“学籍管理”数据库。
2.建立“学生信息表”和“成绩表”的一对一关系。
3.选择“文件”中“新建”菜单,在弹出的对话框中选中“查询”单选按钮,然后单击“新建”按钮。
4.在“添加表或视图”对话框中选择相应的数据库和表。
5.在“查询设计器”窗口中的“字段”选项卡中,依次双击“专业编号”、“课程编号“、“学号”、“姓名”、“性别”、“成绩”、“平时成绩”7个字段作为输出字段。
6.在“查询设计器”窗口中的“筛选”选项卡中,设置“平时成绩”>=90
7.保存文件,运行并查看结果。
(三)
用本地视图设计器创建“学籍管理”数据库中的“学生信息表”与“成绩表”相关联的视图,以“学生信息表”和“成绩表”中的“学号”为主关键字,“成绩”、“平时成绩”为可更新字段。新建视图包括“专业编号”、“课程编号“、“学号”、“姓名”、“性别”、“成绩”、“平时成绩”7个字段。学生信息表与成绩表的结构同上。
实验步骤:
1.打开“学籍管理数据库”,选择“数据库设计器”中“新建本地视图”命令按钮。
2.在弹出的“新建本地视图”对话框中单击“新建视图”选项,设置“添加表或视图”对话框。
3.选择“学生信息表”单击“添加”按钮,再选择“成绩表”,单击“添加”按钮,这是会出现“连接条件”对话框,单击“确定”按钮后,在单击“关闭”按钮。
4.在“视图设计器”窗口的“字段”选项卡中,依次双击“专业编号”、“性别“、“学号”、“姓名”4个字段和“成绩表”中的“课程编号”、“学号”、“成绩”、“平时成绩”4个字段。
5. 在“视图设计器”窗口的“更新条件”选项卡中按要求设置更新条件。
6.完成设置后,运行视图有三种方法
(1)单击工具栏上的“!”命令按钮,显示视图运行结果。
(2)选择“查询”中“运行查询”菜单。
(3)右击后在弹出的快捷菜单中选择“运行查询”菜单。
WHERE 性别=‘女’)
实验四
实验题目:顺序结构和选择结构
实验目的:
1、掌握算法的概念,了解算法的描述及结构化程序设计的基本方法
2、掌握程序与命令文件
3、掌握结构化程序设计的顺序和选择结构
实验内容:
1、执行以下程序,说出其功能
set talk off
use 人事
go top
store 0 to a,b,c,d
do while not eof()
do case
case 职称=”教授”
a=a+1
case 职称=”副教授”
b=b+1
case 职称=”讲师”
c=c+1
case 职称=”助教”
d=d+1
endcase
skip
enddo
use
clear
?”教授:”,a,”人”
?”副教授:”,b,”人”
?”讲师:”,c,”人”
?”助教:”,d,”人”
功能:该程序是在“人事表”中,统计职称分别为“教授”,“副教授”,“讲师”及“助教”的人数。
2、编写程序
(1)已知圆半径r=10cm,编程求圆周长、面积与球体积。
set talk off
clear
r=10
l=2*3.14*r
s=3.14*r*r
v=4*.014*r*r*r/3
?”周长是”,l
?”面积是”,s
?”球体积是”,v
set talk off
return
(2)从键盘上输入2个数,对这2个数按从小到大的顺序输出。
set talk off
clear
input “请输入第一个数” to a
input “请输入第二个数” to b
if a>b
t=a
a=b
b=t
endif
?“两个数从小到大依次为:”a,b
set talk on
return
(3)设计程序计算电费:不超过50千瓦时,每千瓦时0.5元;超过50千瓦时,超出部分每千瓦时1元
set talk off
clear
input “请输入用电量” to x
if x<50
y=x*0.5
else
y=(x-50)*1+50*0.5
endif
?”用电量是”,y
set talk off
return
(4)在学生信息表中查找任一学生记录。学生信息表的结构为:(专业编号CHAR(3),学号 CHAR(9),姓名 CHAR(6),性别 CHAR(2),出生日期 DATE(8),毕业学校 CHAR(20))。
set talk off
clear
use 绥化学院学生信息表
accept "请输入姓名" to xm
locate for 姓名=xm
if not found()
?"对不起,没有此人"
else
disp
endif
set talk on
return
实验五
实验题目:循环结构
实验目的:
1、掌握3种循环
2、掌握循环结构程序设计的基本方法
实验内容:
1、在学生信息表中逐条输出学生表中1984年出生的学生的记录。学生信息表的结构为:(专业编号 CHAR(3),学号 CHAR(9),姓名 CHAR(6),性别 CHAR(2),出生日期 DATE(8),毕业学校 CHAR(20))。
set talk off
clear
use 学生信息表
index on year(出生日期) tag csrqsy
seek 1984
do while year(出生日期)=1984
display
skip
enddo
use
set talk on
return
2、求1到100之间全部奇数之和。
set talk off
clear
s=0
i=1
do while i<=100
s=s+i
i=i+2
enddo
?”1到100之间的奇数之和为:”,s
set talk on
return
3、所谓的水仙花数是指一个三位数,其各位数字的立方和等于该书本身(如153=13+53+33)。求所有的水仙花数。
set talk off
clear
for m=100 to 999
a=int(m/100)
b=int(mod(m,100)/10)
c=m%10
if m=a^3+b^3+c^3
?m
Endif
endfor
set talk on
return
4、从键盘输入10个数,编程找出其中的最大值和最小值
set talk off
clear
input “请从键盘输入一个数:” to a
store a to max,min
for i=2 to 10
input “请从键盘输入一个数:” to a