1、VF第四章作业解析 第四章作业1. 若要建立一个日销售文件(营销员代号、品名、数量、单价、营销额),每笔营业产生一个记录,但营业额字段的值因未填写而都为0.00,试编制程序查询某营业员的全天营业额。CLEARSET TALK OFFUSE rxs.dbfREPLACE ALL 营业 WITH 数量*单价 5,10 SAY查询营业员全天营业额?INPUT请输入营业员代号: TO dhSUM 营业额 FOR 营业员代号=dh TO yy 9,4 SAY 营业员+dh+的全天营业额是:+STR(yy,10,2)+元USESET TALK ON2. 若要修改某设备的价格和部门,试编写程序。CLEARU
2、SE sb 5,10 SAY 修改设备的价格和部门?INPUT 请输入设备号: TO sbbhLOCATE FOR 编号 =sBBHIF FOUND()INPUT 请输入设备价格: TO sbjgINPUT 请输入设备部门: TO sbbMREPLACE 价格 WITH sbjg,; 部门 WITH sbbM?DISPLAY FIELDS 编号,名称,价格,部门WAIT.请检查修改后的记录,按任意键结束.ELSE 12,20 SAY无此设备!ENDIFUSE3. 在某程序中加一段程序,要求能累计程序运行的次数,试写出程序段。(提示:可将程序执行次数存储在一个表中)IF FILE(Yxcs.db
3、f)USE yxcsREPLACE 运行次数 WITH 运行次数 + 1ELSECREATE TABLE yxcs(运行次数 n(5,0)INSERT INTO yxcsVALUES(1)ENDIFUSE4.编制一个通用的交换记录的程序,即要求对换某表中任意的两个记录。5输入一个字符串,要求统计出其中的英文字母,空格,数字和其他字符的个数。6.已知成绩。DBF有学号,平时,考试,等级等字段,前三个字段已经存有数据,请以平时的20%加考试的80%来评定等级。90分以上为优,7589为良,60-74为及格,60分以下为不及格。 10、试编程序,把SB.DBF的内容移入二维数组。Clear Use
4、sb Copy to array sbsz?”二维数组sbsz存放的数据:”?For i=1 to recount() For j = 1 to 6? sbsz(i,j),space(2)Next?EndforUse11、试编写程序,将SB,DBF的记录转置显示。Clear Use sbCount to n Copy to array sbszFor i =1 to n For j =1 to 6 i*2,(j-1)*10+1 say sbsz(i,j) functionB Next?EndforWait”SB.DBF正常显示.”Clear For i= 1 to 6 For j= 1 to
5、n i*2,(j-1)*10+1 say sbsz(j,i) function B Next?Wait “.SB.DBF转置显示”Use12、设计一个计算存款本息的自定义函数。程序如下:1、当函数包含在调用程序中,函数定义如下:Function vtParameters p,i,yT=p*(1+i*y)Return t2、若自定义函数作为一个独立的文件,函数定义如下:Parameters p,i,yT=p*(1+i*y)Return t13,请分别把求结成的功能设计为子程序、过程、自定义函数,并在计算5!-3!+7!时进行调用。 解:设计为子程序如下用子程序调用结果如下:设计为过程如下:调用结
6、果如下:设计为函数如下:调用结果如下:14,读程序,写出运行结果。解:(1)运行结果为:(2)运行结果如下:15.编制通讯录管理程序,要求具有如下功能: (1) 纪录输入,修改,插入与删除; (2) 能分别以性命、邮政编码升序显示纪录 (3) 能按姓名查询纪录。解:程序如下:*ex4-15.prgset talk offset safety offclearuse 通信录.dbftextendtextdo while .t.8,0 clear8,34 sayinput space(34)+请输入06: to xzdo case case xz=1 do sr case xz=2 do xg c
7、ase xz=3 do cr case xz=4 do sc case xz=5 do xs case xz=6 do cx case xz=0 wait系统将关闭! window timeout 1 exitendcaseenddouse clearset talk onset safety onprocedure sr?记录输入结束后按Ctrl+W存盘.appendprocedure xg?记录修改结束后按Ctrl+W存盘.go 1browseprocedure cr?将浏览窗口中的光标移到新记录要插入的位置,按ESC继续.browsejlh=recno()if recno()reccou
8、nt()go jlh+1copy to qy restgo jlh+1delete restpackappend blankappend from qydelete file qy.dbfgo jlh+1else append blankendif8,0 clear24,0 say输入要插入的数据,然后按CTR+W存盘退出.browseprocedure sc?选定要删除的记录,在按标题栏中的提示,选择F5或F6操作.push key clearon key label f5 do schfon key label f6 do pkbrowse title 通信录+F5:删除/恢复 F6:清楚
9、procedure schfif deleted() recallelse deleteendifprocedure pk packprocedure xs?选择F5按姓名拼音顺序显示,选择F6按邮政编码升序显示,按ESC键结束显示.push key clearon key label f5 do xmpyon key label f6 do yzbmbrowse title 通信录+F5:姓名拼音排序 F6:邮政编码升序;noappend nomodifyprocedure xmpyindex on 姓名 tag xmbtowse title通信录+按姓名拼音顺序排序;noappend no
10、modifyreturn to masterprocedure yzbmindex on 邮政编码 tag ybmbrowse title通信录+按邮政编码升序显示;noappend nomodifyreturn to masterprocedure cxflag=1do while flag=18,0 clear8,5 say input space(5)+请输入姓名(可以只输入姓名中的一个或几个字):;to ycxmreadycxm1=alltrim(ycxm)locate for&ycxm1$姓名if found()?按ESC键继续.browse title 通信录+space(5)+&ycxm+资料;for&ycxm1$姓名;noappend nomodifyelse10,5 say查无此人!endif20,0 clear20,5 sayinput space(5)+是否继续查询(Y/N): to ynif upper(yn)=Nflag=0endifEnddo运行结果如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1