2008-2009学年第二学期VFP练习二——表操作
一、表操作知识点:1.表操作函数:Fcount()、fields()、bof()、eof()、recno()、reccount()、found()、2.打开表、关闭表、显示、插入、修改、删除命令:Use表名、use、List、display、browse、insertblank、appendblank、replace、delete、pack、zap3.指针移动命令(n代表任意正整数):Gotop、gobottom、gon、skipn、skip–n4.查找命令:Locatefor、seek5.统计命令:Count、sum、average、totalon6.索引命令:建单项索引:Indexon字段表达式to索引文件名建复合索引:Indexon字段表达式tag索引标识[of索引文件名]打开索引文件:Setindexto索引文件、确定主控索引:setorderto索引标识7.表操作命令的范围子句(n代表任意正整数)All(使指针指向文件尾)、nextn(使指针指向从当前记录开始的第n个记录)recordn(使指针指向第n个记录)、rest(使指针指向文件尾)二、5种类型
程序1.查找某条记录,判断记录是否存在Locatefor查找条件+found()建索引+seek查找数据+found()2.显示表中所有记录的信息Dowhile!eof()?字段
列表Skipenddo3.显示表中部分记录(满足条件的记录)Dowhile!eof()If条件?字段列表EndifSkipenddo4.对表中记录进行统计计算求满足条件记录的个数:Countto内存变量for条件求满足条件记录中某些字段的和:sum字段变量列表5.显示表中所有字段名Fori=1tofcount()?fields(i)endfor说明:本
试卷中涉及到的相关表文件,其结构和记录如下所示:1、学生、学生.DBF结构:C,6记录:
第1页共8页
scan?字段列表endscan
locatefor条件Dowhile!eof()?字段列表continueenddo
scanfor条件?字段列表endscan
to内存变量列表for条件、
求满足条件记录中某些字段的平均值:average字段变量列表to内存变量列表for条件
C,8
性别L,1
出生年月D,8
简历M,4
奖学金N,6,2
照片G,4
2008-2009学年第二学期VFP练习二——表操作
记录号#123456
951006953008954011953013
王平李华张小强赵峰丁超罗浩
性别.F..F..T..T..T..T.
出生年月05/06/7001/23/7107/21/7011/05/7209/27/7009/09/71
简历memomemomemomemomemomemo
奖学金照片50.00gen25.00gen0.000.00gengen75.00gen50.00gen
(注:性别=.F.为女,性别=.T.为男,前三位为班级号)2、
课程、课程.DBF结构:课程号C,4记录:记录号#12345课程号00010002000300040005课程号C,4课程号00010003000100040003课程名高等数学英语
计算机基础数据库应用工程制图成绩N,5,1成绩95.088.078.090.078.080.0学时数10890688080课程名C,20学时数N,3
3、成绩.DBF、成绩结构:C,6记录:记录号#
03395400649530085951001
69510030004程序一【程序说明】(05秋)良、中、及格和不及格)。【程序】SETTALKOFFCLEAUSE成绩(1)M=ALLT(STR(SH))LOCAFOR=MIFEOF()?ELSE(2)'没有找到!'
从键盘输入学生,在“成绩.DBF”表中计算该学生的平均成绩,并说明成绩的档次(优、
第2页共8页
2008-2009学年第二学期VFP练习二——表操作
DOCASECASECJ>=90DC='优'CASECJ>=80DC='良'CASECJ>=70DC='中'CASECJ>=60DC='及格'(3)DC='不及格'ENDCASE?ENDIFUSESETTALKON(1)A、ACCEPT'输入学生='TOSHB、INPUT'输入学生='TOSHC、WAIT'输入学生='TOSHD、ACCEPT'输入学生='TOM(2)A、COUNT成绩TOCJFOR=MB、AVER成绩TOCJC、AVER成绩TOCJFOR=MD、AVER成绩FOR=MTOCJ(3)A、OTHERWISE程序二【程序说明】(05秋)【程序】SETTALKOFFCLEADOWHIL.T.ACCEPT“输入文件名=“TOIFI=1DOWHILI=I+1ENDDOELSE?'找不到该文件'ENDIFWAIT'输入是否继续?(Y-继续/N-退出)'TOX(6)