Visual FoxPro程序设计实习教程与习题集.docx
- 文档编号:26584251
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:15
- 大小:21.89KB
Visual FoxPro程序设计实习教程与习题集.docx
《Visual FoxPro程序设计实习教程与习题集.docx》由会员分享,可在线阅读,更多相关《Visual FoxPro程序设计实习教程与习题集.docx(15页珍藏版)》请在冰豆网上搜索。
VisualFoxPro程序设计实习教程与习题集
《VisualFoxPro程序设计实习教程与习题集》
《实习教程》第11单元程序设计初步(参考答案)
1.编写一程序,计算并显示圆的周长(L)和面积(S),其中半径(R)由INPUT语句读入。
SETTALKOFF
INPUT'R:
'TOR
PI=3.1416
L=2*PI*R
S=PI*R^2
?
'L=',L
?
'S=',S
RETURN
2.编写一程序,读入圆柱体的高(H)和底面半径(R),计算并显示圆柱体的体积(V)。
SETTALKOFF
INPUT'H:
'TOH
INPUT'R:
'TOR
V=3.1416*R^2*H
?
'V=',V
RETURN
3.编写一程序,首先由用户输入一个职务,如:
“科长”,“处长”等,然后显示数据表ZGGZ
.DBF中所有该职务的职工记录。
SETTALKOFF
USEZGGZ
ACCEPT'职务:
'TOZW
LISTFOR职务=ZW
RETURN
《实习教程》第12单元分支结构的程序设计(参考答案)
1.编写一程序,输入一个英文字母,若为大写,则显示它的小写字母,若为小写则显示它的大写字母。
settalkoff
accept'输入一个字符:
'toch
ifupper(ch)=ch
?
lower(ch)
else
?
upper(ch)
endif
return
2.编写程序,计算分段函数:
的值。
settalkoff
input'x='tox
input'y='toy
ifx z=x*x+2*x*y+y*y else ifx=y z=x+y else z=x-y endif endif ? 'z=',z return 3.编写一程序,输入某人的收入额,计算其个人所得税。 个人所得税的计算方法为: 不超过500元的税率为5%,500元到2000元部分的税率为10%,超过2000元部分的税率为15%。 settalkoff input'x='tox ifx<=500 t=x*0.05 else ifx<=2000 t=500*0.05+(x-500)*0.1 else t=500*0.05+1500*0.1+(x-2000)*0.15 endif endif ? '税金为: ',str(t,6,2) return 4.用DOCASE语句编写第2、3题的程序,并重复上面的计算。 2)settalkoff input'x='tox input'y='toy docase casex z=x*x+2*x*y+y*y casex=y z=x+y otherwise z=x-y endcase ? 'z=',z return 3)settalkoff input'x='tox docase casex<=500 t=x*0.05 casex<=2000 t=500*0.05+(x-500)*0.1 otherwise t=500*0.05+1500*0.1+(x-2000)*0.15 endcase ? '税金为: ',str(t,6,2) return 《实习教程》第13单元循环结构的程序设计(参考答案) 1.编写一程序,计算S=1/2+1/2^2+1/2^3+…+1/2^N,其中N由用户输入。 (保留小数点后5位) 利用程序分别计算N=5,10和20时,S的值。 settalkoff s=0.00000 i=1 input'n='ton dowhilei<=n s=s+1/2^i i=i+1 enddo ? 's=',s return 2.在数据表ZGGZ.DBF中,循环查找和显示所有1970年以前出生的职工记录。 settalkoff usezggz locateforyear(出生日期)<1970 dowhilefound() display continue enddo return 3.利用循环编程计算ZGGZ.DBF中男职工的平均工资。 settalkoff usezggz s=0 n=0 dowhilenoteof() if性别='男' s=s+基本工资 n=n+1 endif skip enddo ? '男职工平均工资为: ',str(s/n,6,2) return 4.利用SCAN语句编写第2题的程序。 settalkoff usezggz scanforyear(出生日期)<1970 display endscan return 5.利用SCAN语句编写第3题的程序。 settalkoff usezggz s=0 n=0 scanfor性别='男' s=s+基本工资 n=n+1 endscan ? '男职工平均工资为: ',str(s/n,6,2) return 6.设一个班有10名学生,循环输入每个学生的分数(百计分),统计并显示各分数段的人数。 其中分数段的划分如下: 90分以上,80~89分,70~79分,60~69分,60分以下。 settalkoff store0ton1,n2,n3,n4,n5 i=1 dowhilei<=10 input'输入分数: 'tox docase casex>=90 n1=n1+1 casex>=80 n2=n2+1 casex>=70 n3=n3+1 casex>=60 n4=n4+1 otherwise n5=n5+1 endcase i=i+1 enddo ? '90分以上人数: ',n1 ? '80--89分人数: ',n2 ? '70--79分人数: ',n3 ? '60--69分人数: ',n4 ? '60分以下人数: ',n5 return 7.编写一个二重循环程序,显示如下的乘法口诀表。 settalkoff i=1 dowhilei<=9 j=1 dowhilej<=i ? ? str(i,2)+'*'+str(j,1)+'='+str(i*j,2) j=j+1 enddo ? i=i+1 enddo return 《VisualFoxPro程序设计实习教程与习题集》 《实习教程》第8单元数据表的索引(参考答案) 1.在数据表ZGGZ.DBF的结构复合索引文件中,建立如下的索引项: usezggz 1)按“姓名”索引,索引标记为XM,并显示结果。 indexon姓名tagxm list 2)按“职务”索引,索引标记为ZW,并显示结果。 indexon职务tagzw list 3)按“出生日期”的降序索引,索引标记为CSRQ,并显示结果。 indexon出生日期tagcsrq list 4)按“性别”和“职务”索引,索引标记为XBZW,并显示结果。 indexon性别+职务tagxbzw list 5)按“职务”和“出生日期”索引,索引标记为ZWCS,并显示结果。 indexon职务+dtoc(出生日期,1)tagzwcs list 6)按“基本工资”和“奖金”索引,索引标记为GZJJ,并显示结果。 indexonstr(基本工资)+str(奖金)taggzjj list 2.分别设置上述索引项为主控索引。 setordertoxm setordertozw setordertocsrq setordertoxbzw setordertozwcs setordertogzjj 《实习教程》第9单元数据表的查找(参考答案) 1.在数据表ZGGZ.DBF中,利用LOCATE命令进行如下顺序查找。 usezggz 1)查找编号为“004”的记录,并显示其编号、姓名和基本工资。 locatefor编号='004' display编号,姓名,基本工资 2)在第4~8号记录中,查找并显示姓‘郭’的职工记录。 locateforsubstr(姓名,1,2)='郭'andrecno()>=4andrecno()<=8 display 3)顺序查找并显示所有职务为‘科员’的男职工记录。 locatefor职务='科员'and性别='男' display continue display continue 4)顺序查找并显示所有生日为8号的职工记录。 locateforday(出生日期)=8 display continue display continue 5)查找并显示职务为科员且基本工资大于400元的职工记录。 locatefor职务='科员'and基本工资>400 display continue display continue 2.利用SEEK进行如下的快速查询。 1)查找并显示姓名为“苏平”的职工记录。 setordertoxm seek'苏平' display 2)查找并显示出所有职务为“科长”的职工记录。 setordertozw seek'科长' display skip display skip display skip display 3)查找并显示男科长的记录。 setordertoxbzw seek'男科长' display 3.在数据表ZGGZ.DBF中,进行如下的数据表筛选操作: 1)筛选出65年以前出生的所有职务为“科员”的职工记录,并显示当前记录。 执行GOTOP命令后,再显示当前记录,查看两者的区别。 setfiltertoyear(出生日期)<1965and职务='科员' display gotop display 2)筛选出工资在400~500元之间的职工记录,并显示筛选结果。 setfilterto基本工资>=400and基本工资<=500 list 《实习教程》第10单元数据表的统计(参考答案) 准备: 打开数据表ZGGZ.DBF,以下操作为对该数据表进行。 usezggz 1.分别统计数据表中已婚的男职工和未婚的女职工人数。 countfor婚否and性别='男' countfornot婚否and性别='女' 2.求出所有男职工的人数和基本工资总额,并分别赋值给CN和SN,利用上述两个内存变量计算出男职工的平均工资。 countfor性别='男'tocn sum基本工资for性别='男'tosn ? sn/cn 3.计算所有职务为科长的平均年龄。 averageyear(date())-year(出生日期)for职务='科长' 4.计算所有职工的基本工资和奖金的总金额。 sum基本工资+奖金 《VisualFoxPro程序设计实习教程与习题集》 《实习教程》第1单元VisualFoxPro基本操作(参考答案) 1.利用对其赋值的方法,判定下列字符串是否为合法的内存变量名: 1)执行赋值命令: X1=3,或STORE3TOX1 系统没有任何错误显示,知X1为合法的内存变量名。 类似地,X_1也为合法的内存变量名,其余为不合法。 2)利用上面的方法可以判定: 变量,变量X,变量1,变量_1为合法内存变量名,其余不合法。 2.计算并显示下面各题的结果: 1)利用函数: 命令: ? mod(,) 显示: 9 利用运算: 命令: ? % 显示: 9 2)命令: X=5.1249 ? min(2^X,X^2) 显示: 26.2646 3)命令: C1='AB' C2=SPACE (2) C3=str(3.14,5,2) A1=C1+C2+C3 A2=trim(C1+C2-C3) ? LEN(A1),LEN(A2) 显示: 9 7 4)命令: C1=SPACE (2) C2="ABC" C3=SPACE(3) A1=C1+C2+C3 A2=trim(C1+C2+C3) A3=ltrim(C1+C2+C3) A4=alltrim(C1+C2+C3) ? len(A1,A2,A2,A3,A4 ? len(A1,A2,A2,A3,A4) ? len(A1),len(A2),len(A3),len(A4) 显示: 8563 5)命令: A='微型计算机' ? SUBSTR(A,1,2)+SUBSTR(A,9,2) 显示: 微机 6)命令: ? date()+10000 显示: 07/11/32(与当天日期有关) 7)命令: ? date()-{^1997-7-1} 显示: 2794(与当天日期有关) 8) ①.T. ②.T. 3.通过实例体会以下函数的使用: 1)MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=1 2)ROUND(12345.6789,1)=12345.7 ROUND(12345.6789,0)=12346 ROUND(12345.6789,-1)=12350 ROUND(12345.6789,-2)=12300 3)函数STR的第二、三个参数确省的情形: (2005年5月29日修订) STR(3.,4,1)='3.1' STR(3.,4)=' 3' STR(3.)=' 3’ 《实习教程》第2单元数据表的创建及浏览(参考答案) 1.建立如下名称、结构和记录的数据表文件。 (略) 2.利用命令浏览该表的内容,然后关闭该表。 Browse Use 3.显示当前盘中所有数据表文件的信息。 Dir 4.打开数据工作期窗口,先后: 打开、浏览和关闭该表。 参阅实习范例第5题。 5.利用资源管理器,将数据表ZGGZ.DBF及备注文件复制到A盘保存。 (略) 《实习教程》第3单元数据表的结构操作(参考答案) 1.将数据表ZGGZ.DBF的结构复制到新表ZGGZ1.DBF,且含有编号、姓名和婚否三个字段。 usezggz copystructuretozggz1fields编号,姓名,婚否 2.利用菜单打开“表设计器”,并对数据表ZGGZ1.DBF的结构作如下修改: usezggz1 modifystructure (表设计器操作略) 3.显示修改后的数据表结构。 liststructure (或: displaystructure) 4.将数据表ZGGZ.DBF的前6个记录中基本工资大于400元的记录复制到新表ZGGZ2.DBF,且仅保留: 编号、姓名、基本工资等3个字段。 usezggz copytozggz2fields编号,姓名,基本工资forrecno()<7and基本工资>400 5.分别显示ZGGZ2.DBF的结构和浏览其记录。 usezggz2 liststructure browse 《实习教程》第4单元数据表记录的指针移位(参考答案) 1.顺序执行下面有关记录指针移位的命令,并解释得到的结果。 ? BOF() .F. ? RECNO() 5 ? RECNO() 3 ? BOF() .F. ? RECCOUNT()8 《实习教程》第5单元数据表记录的追加(参考答案) 1.将数据表ZGGZ.DBF的结构复制到新的数据表TEMP.DBF,并显示新表的结构。 usezggz copystructuretotemp usetemp liststructure 2.向TEMP.DBF随意追加2条记录,要求输入备注信息。 append 3.将ZGGZ.DBF中所有职务为“科长”的记录追加到TEMP.DBF中,并浏览结果。 appendfromzggzfor职务="科长" browse 《实习教程》第6单元数据表记录的显示和修改(参考答案) 1.分别用LIST和DISPLAY显示ZGGZ.DBF中所有未婚职工的姓名、婚否和基本工资字段。 usezggz list姓名,婚否,基本工资fornot婚否 displayall姓名,婚否,基本工资fornot婚否 2.显示ZGGZ.DBF中,1960年1月1日之后出生且基本工资超过400元的职工信息。 listfor出生日期>{^1960/1/1}and基本工资>400 3.显示ZGGZ.DBF中4~8号记录中“王”姓的职工信息。 (提示: 先将记录指针移到第4号记录上。 ) go4 listnext5forsubstr(姓名,1,2)='王' 4.在ZGGZ.DBF的编辑窗口中,对所有女职工的“实发工资”字段进行修改,使得: 实发工资等于基本工资+奖金-扣款。 change 5.利用REPLACE命令对所有男职工的记录完成上述操作。 replace实发工资with基本工资+奖金-扣款for性别='男' 6.利用REPLACE命令为所有职务为科长的奖金增加20元。 replace奖金with奖金+20for职务='科长' 7.利用REPLACE命令为所有职工的基本工资增加10%。 replaceall基本工资with基本工资*1.1 8.利用BROWSE命令,查看上述的替换的结果。 browse 《实习教程》第7单元数据表记录的删除(参考答案) 准备: 将数据表ZGGZ.DBF复制成TEMP.DBF,并打开TEMP.DBF。 usezggz copytotemp usetemp 1.对所有的未婚科员记录加删除标记。 deletefor婚否=.f.and职务='科员' list 2.对基本工资少于400元的记录加删除标记。 deletefor基本工资<400 3.分别在取消遮盖和遮盖带删除标记记录的环境下,显示数据表的记录。 setdeleteoff list setdeleteon list 4.打开BROWSE窗口,利用鼠标单击的方法,练习为记录添加和取消删除标记的操作。 (需在取消遮盖带删除标记记录的环境下操作) setdeleteoff browse 5.利用命令取消所有记录的删除标记。 recallall 6.物理删除最后一条记录。 gobottom delete pack 7.物理删除1969年及以前出生的职工记录。 deleteforyear(出生日期)<=1969 pack 8.物理删除数据表的所有记录。 zap
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual FoxPro程序设计实习教程与习题集 FoxPro 程序设计 实习 教程 习题集