Visual FoxPro程序设计实验指导书资料 下载本文

2、建立“学生成绩数据库.dbc”中表之间的永久关系,表student.dbf和表assign之间是一对多关系,表course.dbft 表assign之间是一对多关系。 操作步骤:

(1) 分别用鼠标右击每个数据库表,在弹出的快捷菜单中选取“修改”选项,出现“表设计器”窗口。

(2) 对表student.dbf,建立以学号为索引表达式的主索引;对表assign.dbf,建立以学号为索引表达式的普通索引。 (3) 建立永久关系。

将鼠标指向“student.dbf”表中的主索引“学号”,按下鼠标左键拖动到“assign.dbf”表中的普通索引“学号 ”上,然后释放鼠标左键,这时拖动过程中出现的小方块消失,并可看到两个表之间出现了一条连接线,表示两个表间的关系已经建立。

(4)运用同样的操作步骤建立表course和表assign之间的关系。 3、为表student和表assign之间建立的联系指定参照完整性,其中插入规则为“限制”,更新规则和删除规则为“级联”。

在数据库设计器窗口中单击鼠标右键,弹出快捷菜单,选择“编辑参照完整性”选项,在“参照完整性生成器”对话框中,选取父表列中的表student,再选中插入规则选项卡,点击“限制”单选钮。然后分别选中更新规则选项卡和删除规则选项卡,点击“级联”单选钮,最后单击“确定”。

验证插入规则是否“限制”:为成绩表assign增加一条记录,学号为“20080033”,由于学生表记录中无学号为“20080033”的学生记录,因此增加不了。

验证更新规则是否“级联”:把“student.dbf”中的学号“20080005”改为“20080105”,查看assign.dbf中的相关记录是否随之修改了。 验证删除规则是否“级联”:删除student.dbf”中的学号“20080001”的记录,查看assign.dbf中的相关记录是否随之删除。 (三)多表操作 1、工作区选择操作。

2、分别在两个工作区打开“student.dbf”与“assign.dbf”,建立表间的临时关联,移动student.dbf的记录指针,查看某个学生的成绩记录。

五、 实验注意事项

1、若要修改记录,必须在打开表时设置独占方式,在打开对话框选择“独占”复选框,或在USE命令中加EXCLUSIVE选项。

2、用COPY FILE复制带有备注文件的表时,除安排一条命令复制表文件之外,还要安排一条命令复制备注文件,否则,在Visual Foxpro环境下不能打开复制所得到的新表。

六、 思考题

1、分别用命令 LIST 和 DISP 显示表中的记录,这两个命令有什么不同之处?

2、追加新纪录的菜单命令有几种,他们有什么不同? 3、什么是表间的一一关系、一多关系?

实验四 Visual FoxPro6.0程序设计基础

一、 实验目的

1、熟悉程序的编辑环境以及VFP程序文件的建立、运行与调试方法,掌握VFP的基本输入输出命令,了解常用环境设置命令和程序控制命令,掌握顺序结构和分支结构的程序设计。

2、掌握循环结构的编写、调试与运行,了解多重循环语句的用法。 3、掌握子程序、自定义函数、过程的编写、调试与运行;了解变量的作用域。

二、 实验原理

程序文件的建立与执行、程序的基本结构

三、 主要仪器及耗材

PIV以上计算机,安装Visual FoxPro6.0

四、 实验内容与步骤

一、顺序结构与选择结构

1、编写程序prog9-1.prg,实现以下功能:输入圆的半径,计算出圆的面积和周长。

分析: 圆周长?2?R 圆面积??R2 参考程序:input “请输入圆半径:” to r l=2*PI( )*r

s=PI( )*r*r

?”圆的周长是”,l ?”圆的面积是”,s

2、编写程序prog9-2.prg,根据输入的学生姓名,从表\中查找该学生的记录信息,并显示在屏幕上。 参考程序:use student

accept “请输入学生姓名:” to xm list for 姓名=xm use return

3、创建程序文件prog9-3.prg,从表student中查找指定日期以后出生的学生。

参考程序:open database 学生成绩数据库.dbc

use student

input “请输入日期:” to rq

select * form student where 出生日期>rq use

close database return

运行该程序时请注意输入日期的格式。

4、编写程序prog9-4.prg,从表\中,根据姓名查询指定学生的记录,若找到了则显示该学生的记录在屏幕上,若没有找到,则输出“XX同学不存在!”(其中XX代表输入的姓名)。 参考程序:set exact on Use student

Input “请输入要查找的学生姓名:” to xm Locate for 姓名=xm If found( ) then

Display Else

?xm+”同学不存在!” Endif Use Return

5、编写程序prog9-5.prg,根据用户输入的百分制成绩,转换成相应的等级输出。等级划分标准为:90-100分 优秀;80-89分 良好;70-79 分 中等;60-69分 及格;60分以下为不及格。 参考程序:input “请输入分数:” to fs

If fs>100 or fs<0 then

Input “分数不对,请重新输入分数:” to fs Endif Do case

Case fs>=90 and fs<=100 ?”你的成绩优秀!真棒啊!” Case fs>=80 and fs<90 ?”你的成绩良好!”