VisualFoxPro程序设计实习教程与习题集(参考问题详解)

上传人:仙*** 文档编号:87419163 上传时间:2022-05-09 格式:DOC 页数:25 大小:223.50KB
收藏 版权申诉 举报 下载
VisualFoxPro程序设计实习教程与习题集(参考问题详解)_第1页
第1页 / 共25页
VisualFoxPro程序设计实习教程与习题集(参考问题详解)_第2页
第2页 / 共25页
VisualFoxPro程序设计实习教程与习题集(参考问题详解)_第3页
第3页 / 共25页
资源描述:

《VisualFoxPro程序设计实习教程与习题集(参考问题详解)》由会员分享,可在线阅读,更多相关《VisualFoxPro程序设计实习教程与习题集(参考问题详解)(25页珍藏版)》请在装配图网上搜索。

1、wordVisual FoxPro程序设计实习教程与习题集(第2版)实习教程第1单元 Visual FoxPro根本操作 (参考答案) 1利用对其赋值的方法,判定如下字符串是否为合法的内存变量名。 1X1,X(1,X*,X,X_1,1X 执行赋值命令:X1=3,或 STORE 3 TO X1,系统没有任何错误显示,知X1为合法的内存变量名。 类似地,X_1也为合法的内存变量名,其余为不合法。 2变量,变 量,变量X,变量1,变量_1 利用上面的方法可以判定:变量,变量X,变量1,变量_1为合法内存变量名,其余不合法。2计算并显示下面各题的结果。 1分别利用函数(MOD)和运算(%),求出987

2、654321除以123456789的余数。 利用函数:? MOD(987654321,123456789) 显示: 9 利用运算:? 987654321%123456789 显示: 9 2假如X=5.1249,求2X与X2的最小值。 3) 设:a=1,b=4,c=3,计算一元二次方程:aX2+bX+c=0的两个根。 命令: a=1 b=4 c=3 4 设C1=AB,C2=SPACE(2,C3=str(3.14,5,2,且A1=C1+C2+C3, A2=trim(C1+C2-C3 求A1和A2的长度。 命令: C1=AB C2=SPACE(2) C3=STR(3.14,5,2) A1=C1+C2

3、+C3 A2=TRIM(C1+C2-C3) ?LEN(A1) 显示:9 ?LEN(A2) 显示:7 5设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) 求A1、A2、A3、A4的长度。 命令: 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) 显示:8 ?LEN(A2)

4、显示:5?LEN(A3) 显示:6?LEN(A4) 显示:3 6设A=微型计算机,利用函数SUBSTR和A表示字符串微机。 命令:A=微型计算机 ? SUBSTR(A,1,2) + SUBSTR(A,9,2) 显示: 微机 7求出从今天起,万天之后的日期。 命令:? DATE() + 10000 显示: 09/06/36 与当天日期有关 8求到今天为止,某某回归祖国的天数。 命令:? DATE() 1997/07/01 显示: 4312 与当天日期有关 9写出如下表达式的值,然后利用计算机验证自己的答案。 X+YX*Y OR XY ,其中:X=1,Y=2 命令:X=1 Y=2 ? X+YX*Y

5、 OR XY 显示: .T. 94 AND 4#2 OR NOT 2*3=SQRT(16) 命令:? 9400 5显示ZGGZ2.DBF的结构。 use zggz2list structure6浏览ZGGZ2.DBF的记录。 use zggz2 browse 实习教程第4单元 数据表记录的指针移位 (参考答案)1. 顺序执行下面有关记录指针移位的命令,并解释得到的结果。 USE ZGGZ ? BOF() 显示结果:.F.表示此时记录指针不在表顶 GO 5 ? REO() 5 表示此时记录指针指在第5条记录上 SKIP -2 ? REO() 3 表示此时记录指针指在第3条记录上 GO TOP ?

6、 BOF() .F.表示此时记录指针不在表顶 ? RECCOUNT() 8 表示此表共有8条记录 实习教程第5单元 数据表记录的追加 (参考答案)1. 将数据表ZGGZ.DBF的结构复制到新的数据表TEMP.DBF,并显示新表的结构。 USE ZGGZ COPY STRUCTURE TO TEMP USE TEMP LIST STRUCTURE 2. 向TEMP.DBF随意追加2条记录,要求输入备注信息。 USE TEMP APPEND 在弹出的追加记录窗口中,向除“memo以外的字段随意输入数据。然后,双击“memo, 在打开的窗口中,随意输入文字。最后,单击窗口的“关闭按钮。“科长的记录追

7、加到TEMP.DBF中,并浏览结果。 APPEND FROM ZGGZ FOR 职务=科长 BROWSE实习教程第6单元 数据表记录的显示和修改 (参考答案)1. 分别用LIST和DISPLAY显示ZGGZ.DBF中所有未婚职工的某某、婚否和根本工资字段。 use zggzlist 某某,婚否,根本工资 for 婚否=.F.display 某某,婚否,根本工资 for .NOT. 婚否 2显示ZGGZ.DBF中, 1960年1月1日 之后出生且根本工资超过400元的职工信息。 list for出生日期 1960/1/1 AND 根本工资400“王姓的职工信息。 提示:先将记录指针移到第4号记录

8、上,再在命令中指定X围。 go 4 list next 5 for substr(某某,1,2)=王 4. 在ZGGZ.DBF的编辑窗口中,利用键盘输入对所有女职工的“实发工资字段进展修改,使得:实发工资 = 根本工资奖金扣款。 略 5. 利用REPLACE命令对所有男职工的记录完成上述操作。 replace 实发工资 with 根本工资+奖金-扣款 for 性别=男 6. 利用REPLACE命令为所有职务为科长的奖金增加20元。 replace 奖金 with 奖金+20 for 职务=科长 7. 利用REPLACE命令为所有职工的根本工资增加10%。 8. 利用BROWSE命令,查看上述的

9、替换的结果。 browse 实习教程第7单元 数据表记录的删除 (参考答案)准备:将数据表ZGGZ.DBF复制成TEMP.DBF,并打开TEMP.DBF。 use zggz copy to temp use temp1对所有的未婚科员记录加删除标记。 DELETE FOR 职务=科员 AND 婚否=.F. 2对根本工资少于400元的记录加删除标记。 DELETE FOR 根本工资400 3分别在取消遮盖和遮盖带删除标记记录的环境下,显示数据表的记录。 SET DELETE OFF LIST SET DELETE ON LIST 4打开BROWSE窗口,利用鼠标单击的方法,练习为记录添加和取消删

10、除标记的操作。 需在取消遮盖带删除标记记录的环境下操作 略 5利用命令取消所有记录的删除标记。 RECALL ALL 6物理删除最后一条记录。 GO BOTTOM DELETE PACK 7物理删除1969年与以前出生的职工记录。 DELETE FOR YEAR(出生日期)=400 display continue 2. 利用SEEK进展如下的快速查询。 1查找并显示某某为“苏平的职工记录。 set order to xm seek 苏平 display2查找并显示出所有职务为“科长的职工记录。 set order to zw seek 科长 display skip display 3查找并

11、显示男科长的记录。提示:利用第8单元中按“性别和“职务建立的索引。 set order to xbzw seek 男科长 display 实习教程第10单元 数据表的统计 (参考答案) 1分别统计数据表中已婚的男职工和未婚的女职工人数。 use zggz count for 性别=男 and 婚否=.t. count for 性别=女 and 婚否=.f. 2求出所有男职工的人数和根本工资总额,并分别赋值给和SN,利用上述两个内存变量计算出男职工的平均工资。 count for 性别=男 to sum 根本工资for 性别=男 to sn ? sn/ 3计算所有职务为科长的平均年龄。 aver

12、age year(date()-year(出生日期) for 职务=科长 4计算所有职工的根本工资和奖金的总金额。 sum 根本工资+奖金实习教程第11单元 程序设计初步 (参考答案)1. 编写一程序,计算一元二次方程aX2+bX+c=0的根。其中系数a,b,c由INPUT语句读入。运行该程序时,分别为a,b,c输入3,4,1。 SET TALK OFF INPUT A= TO A INPUT B= TO B INPUT C= TO C X1=(-B+SQRT(B*B-4*A*C)/(2*A) X2=(-B-SQRT(B*B-4*A*C)/(2*A) ? X1=,X1 ? X2=,X2 RET

13、URN2. 编写一程序,读入圆柱体的高(H)和底面半径(R),计算并显示圆柱体的体积(V)。 SET TALK OFF INPUT H: TO H INPUT R: TO R V=3.1416*R2*H ? V=,V RETURN3. 编写一程序,首先由用户输入一个职务,如:“科长,“处长等,然后显示数据表 ZGGZ.DBF中所有该职务的职工记录。提示:利用LIST命令。 SET TALK OFFUSE ZGGZACCEPT 职务: TO ZWLIST FOR 职务=ZWRETURN实习教程第12单元 分支结构的程序设计 (参考答案)1. 编写一程序,输入一个英文字母,假如为大写,如此显示它的

14、小写字母;假如为小写,如此显示它的大写字母。 set talk offaccept 输入一个字符: to chif upper(ch)=ch ? lower(ch)else ? upper(ch)endifreturn2. 编写一程序,输入X、Y的值,计算分段函数: 的值。 执行程序,分别计算X=3, Y=5和X=1500, Y=1200时Z的值。 set talk offinput x= to xinput y= to yif xy z=x*x+2*x*y+y*yelse if x=y z=x+y else z=x-y endifendif? z=,zreturn3. 编写一程序,输入某人的

15、收入额,计算其个人所得税。 个人所得税的计算方法为:不超过500元的税率为5,500元到2000元局部的税率为10,超过2000元局部的税率为 15。 set talk off input x= to x if x=500 t=x*0.05 else if x=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) return4. 用DO CASE语句编写第3题的程序,并重复上面的计算。 set talk off input x= to x do cas

16、e case x=500 t=x*0.05 case x=0 ? X1=,(-B+SQRT(D)/(2*A) ? X2=,(-B-SQRT(D)/(2*A) ELSE ? 方程无实数根! ENDIF RETURN实习教程第13单元 循环结构的程序设计 (参考答案)1. 编写一程序,计算 S1/2+1/22+1/23+1/2N,其中N由用户输入。(保存小数点后5位) 利用程序分别计算N=5,10和20时,S的值。 提示:对S赋初值为0.00000,可达到保存小数点后5位的目的。 set talk offs=0.00000i=1input n= to ndo while i=n s=s+1/2i

17、i=i+1enddo? s=,sreturn2. 在数据表ZGGZ.DBF中,循环查找和显示所有1970年以前出生的职工记录。 set talk off use zggz locate for year(出生日期)1970 do while found() display continue enddo return3利用循环编程计算ZGGZ.DBF中男职工的平均工资。 set talk off use zggz s=0 n=0 do while not eof() if 性别=男 s=s+根本工资 n=n+1 endif skip enddo ? 男职工平均工资为: ,str(s/n,6,2)

18、 return4.利用SCAN语句编写第2题的程序。 set talk off use zggz scan for year(出生日期)1970 display endscan return5.利用SCAN语句编写第3题的程序。set talk offuse zggzs=0n=0scan for 性别=男 s=s+根本工资 n=n+1endscan? 男职工平均工资为: ,str(s/n,6,2)return 6. 设一个班有10名学生,循环输入每个学生的分数百计分,统计并显示各分数段的人数。其中分数段的划分如下:90分以上,8089分,7079分,6069分,60分以下。 set talk

19、off store 0 to n1,n2,n3,n4,n5 i=1 do while i=90 n1=n1+1 case x=80 n2=n2+1 case x=70 n3=n3+1 case x=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 return7. 编写一个程序,求解猴子吃桃问题。猴子第一天摘了假如干桃子,当即吃了一半,又多吃了一个;第二天早上又将剩下的桃子吃了一半,又多吃了一

20、个;以后每天早上都是如此。到了第10天早上想吃时,就剩下一个桃子。问第一天共摘了多少桃子。 SET TALK OFF D=10 N=1 DO WHILE D=1 ? 第+str(D,2)+天有+str(N,4)+个桃子。 N=2*(N+1) D=D-1 ENDDO RETURN8. 编写一程序,显示如如下图形,其中星号之间有一个空格: * * * * * * * * * * * * * * * * SET TALK OFF I=1 DO WHILE I=4 ? SPACE(2*I-1) J=1 DO WHILE J=9-2*I ? * J=J+1 ENDDO I=I+1 ENDDO RETUR

21、N9. 编写一个二重循环程序,显示如下的乘法口诀表。 set talk off i=1 do while i=9 j=1 do while j=i ? str(i,2)+*+str(j,1)+=+str(i*j,2) j=j+1 enddo ? i=i+1 enddo return 习题集参考答案 第 1 局部 VFP根底知识 一、选择题1D11C21A31D41B51AB2C12B22D32B42C52A3A13D23A33C43C53B4B14D24C34C44D54B5D15D25A35D45B55A6D16D26D36A46B7D17D27D37C47D8C18A28C38A48D9A

22、19B29B39C49A10A20A30B40D50D 二、填空题1数据库管理系统26N2关系模型27C3关系28.F.4二维表29EFG5属性或字段30.F. (2009-4-2修改 6元组或记录3117选择3258连接33.T.9元组34.T.10属性35D11QUIT36数值型12交互37.F.13字段38数值型14年月日39315CENTURY40a16C41逻辑型 (2009-4-2修改172008/10/0842.T. (2009-4-2修改18CLEAR43or (2009-4-2修改19?20?21STORE 3 TO X,Y,Z22-16231524123456258习题集参

23、考答案 第 2 局部 数据表 一、选择题1A*11D21D31A41A51D2C12C22C32D42B52D3A13B23D33C43D53C4C14A24B34D44D54B5A15A25A35A45C6A16A26A36A46A7C17D27A37D47B8A18A28D38A48B9D19B29D39D49B10D20B30C40C50C* :第1题题干中应删除“日期型、几个字。 二、填空题1通用26REPLACE2DBF27RECALL3128PACK4929SET DELETE ON5FPT30DELETE REST6DEFAULT31INDEX ON 职称 TAG ZC7CREA

24、TE32结构复合8USE BOOKS33唯一9REST34普通10COPY STRUCTURE35CDX11表设计器36SET ORDER TO 索引名12L37SET ORDER TO13.F.38CONTINUE14.F.39.F.1510140COUNT FOR 年龄=3024REPLACE 工资 WITH 工资*1.1 FOR 职称=工程师25笔试=60 AND 上机=60习题集参考答案 第 3 局部 程序设计 一、选择题1A6B2C7A3A8A4B9A5A10C 二、填空题1INPUT11嵌套循环2*3SET TALK OFF4;分号5CANCEL6PRG7DO CASE8SCAN9

25、DO WHILE10EXIT 三、运行结果题110311再见您好再见212X=25313A12343 5 3144 (2009-4-2修改5白志强 0.00 3 4 (2009-4-2修改15J=36白志强 08/18/73李利利 03/15/70(2009-4-2修改16S=1157李利利 (2009-4-2修改172 3827184 2931070.00 (2009-4-2修改 四、完善程序题1COPY TO CG FOR 奖学金20162*I-1I=I-12GO BOTTOMREST17S=0FOR 性别=男3COPY STRUCTURE TO STUD3APPEND FROM STUD

26、1 FOR 专业=计算机18N=N+1STR(S/N,6,2)4SET ORDER TO 某某SEEK NAME (2009-4-3修改19YEAR(出生日期)=1970 AND 专业= 计算机5GO 2PACK20IF 奖学金MX奖学金=MX6FIELDS 学号,某某REPLACE 某某 WITH 李文丽21NOT EOF()NOT 是否过四级7AVERAGE 奖学金22性别=男SKIP8223X=1500X,79APPEND BLANK24CONTINUEEXIT10FOUND() 或:NOT EOF ENDIF25LOOPN=N+111WAIT 或:ACCEPT ENDCASE26.T.UPPER(K)=N (2009-4-3修改12M1M2M2=M27REPLACE 奖学金 WITH 奖学金+10N=N+1 (2009-4-3修改13X100MOD(X,2)=028IF 是否过四级REPLACE 奖学金 WITH 奖学金+1514DO WHILE KMX25 / 25

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!