VisualFoxPro程序设计实习教程与习题集参考答案_第1页
VisualFoxPro程序设计实习教程与习题集参考答案_第2页
VisualFoxPro程序设计实习教程与习题集参考答案_第3页
VisualFoxPro程序设计实习教程与习题集参考答案_第4页
VisualFoxPro程序设计实习教程与习题集参考答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、显示:9显示:9显示:26.2646aX2+bX+c=0的两个根。显示:-1.0000显示:-3.00004) 设 C1= AB, C2=SPACE(2, C3=str(3.14,5,2 求A1和A2的长度。),且 A1=C1+C2+C3 A2=trim(C1+C2-C3 ) Visual FoxPro程序设计实习教程与习题集(第2版)实习教程第1单元Visual FoxPro基本操作(参考答案)1 .利用对其赋值的方法,判定下列字符串是否为合法的内存变量名。1 ) X1, X(1 ), X*, X , X_1 , 1X执行赋值命令:X1=3,或STORE 3 TO X1 ,系统没有任何错误显

2、示,知 X1为合法的内存变量名。类似地,X_1也为合法的内存变量名,其余为不合法。2)变量,变 量,变量 X,变量1,变量利用上面的方法可以判定:变量,变量 X,变量1,变量为合法内存变量名,其余不合法。2 .计算并显示下面各题的结果。1 )分别利用函数(MOD和运算(),求出987654321除以123456789的余数。禾 I用函数:? MOD(987654321,123456789) 利用运算:? 987654321%1234567892 )若X=5.1249 ,求2,与X2的最小值。命令:X=5.1249? MIN(2AX,XA2)3)设:a=1, b=4, c=3,计算一元二次方程:

3、命令:a=1b=4c=3? (-b+SQRT(bA2-4*a*c)/(2*a)? (-b-SQRT(bA2-4*a*c)/(2*a)命令:C1= ABC2=SPACE(2)C3=STR(3.14,5,2)A1=C1+C2+C3A2=TRIM(C1+C2-C3)?LEN(A1)显示:9?LEN(A2)显示:75)设 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= A

4、BCC3=SPACE(3)A1=C1+C2+C3A2=trim(C1+C2+C3)A3=ltrim(C1+C2+C3)A4=alltrim(C1+C2+C3)?LEN(A1)显示:8?LEN(A2)显示:5?LEN(A3)显示:6?LEN(A4)显示:36 )设A=微型计算机,利用函数SUBST岛口 A表示字符串微机。 命令:A=微型计算机? SUBSTR(A,1,2) + SUBSTR(A,9,2) 显示:微机7)求出从今天起,1万天之后的日期。(与当天日期有关)(与当天日期有关)命令:? DATE() + 10000显示:09/06/368)求到今天为止,香港回归祖国的天数。命令:? DA

5、TE() -A 1997/07/01 显示:43129)写出如下表达式的值,然后利用计算机验证自己的答案。 X+YX*Y OR XY ,其中:X=1, Y=2命令:X=1Y=2? X+YX*Y OR XY显示:.T. 94 AND 4#2 OR NOT 2*3=SQRT(16)命令:? 94 AND 4#2 OR NOT 2*3=SQRT(16) 显示:.T.3 .通过实例体会以下函数的使用。1)函数ROUNDS第二个参数为负的情形。ROUND(12345.6789,1 ) = 12345.7ROUND(12345.6789,0) =12346ROUND(12345.6789,-1) = 12

6、350ROUND(12345.6789,-2) =123002)函数STR的第二、三个参数确省的情形。STR (3.1415926 , 4, 1) = 3.1 ”STR (3.1415926, 4) =3STR (3.1415926 ) =3实习教程第2单元 数据表的创建及浏览(参考答案)1 .建立如下名称、结构和记录的数据表文件。(1) CREATE ZGGZ(2) 在表结构设计器中完成创建表结构的操作(3) 输入数据2 .利用命令浏览该表的内容,然后关闭该表。USEZGGZBROWSEUSE3 .显示当前文件夹中所有数据表文件的信息。DIR4 .打开“数据工作期”对话框,再先后实施:打开、

7、浏览和关闭该表的操作。选择“窗口 /数据工作期”菜单,在弹出的对话框中完成打开、浏览和关闭表的操作。5 .利用资源管理器,将数据表 ZGGZ.DB吸其备注文件复制到移动存储器保存。(略)1 .将数据表ZGGZ.DBF勺结构复制到新表 ZGGZ1.DBF且含有编号、姓名和婚否三个字段。 use zggzcopy structure to zggzl fields编号,姓名,婚否2 .利用菜单打开“表设计器”对话框,并对数据表ZGGZ1.DBF勺结构作如下修改:1 )在“婚否”字段前插入“性别”字段(C, 2);2)在“婚否”字段后插入“基本工资”字段(N, 6, 2);3 )删除“编号”字段。(

8、略)4 .显示修改后的数据表结构。use zggz1 list structure5 .将数据表ZGGZ.DBF勺前6个记录中基本工资大于400元的记录复制到新表 ZGGZ2.DBF且仅保留:编号、姓名、基本工资等 3个字段。use zggzcopy to zggz2 next 6 fields编号,姓名,基本工资for 基本工资4006 .显示 ZGGZ2.DBF勺结构。use zggz2 list structure7 .浏览ZGGZ2.DBF勺记录。use zggz2 browseUSEZGGZ? BOF()GO 5? RECNO()SKIP -2? RECNO()GO TOP? BOF

9、()? RECCOUNT()i.顺序执行下面有关记录指针移位的命令,并解释得到的结果。显示结果:.F.(表示此时记录指针不在表顶)5 (表示此时记录指针指在第5条记录上)3 (表示此时记录指针指在第3条记录上).F.(表示此时记录指针不在表顶)8 (表布此表共有 8条记录)1 .将数据表ZGGZ.DBF勺结构复制到新的数据表 TEMP.DBF并显示新表的结构。USEZGGZCOPY STRUCTURE TO TEMPUSE TEMPLIST STRUCTURE2 .向TEMP.DBF!意追加2条记录,要求输入备注信息。USE TEMPAPPEND在弹出的追加记录窗口中,向除“ memo以外的字

10、段随意输入数据。然后,双击“ memo,在打开的窗 口中,随意输入文字。最后,单击窗口的“关闭”按钮。3 .将ZGGZ.DB即所有职务为“科长”的记录追加到TEMP.DB即,并浏览结果。APPEND FROM ZGGZ FOR 职务=科长BROWSE1,分别用LIST和DISPLAY显示ZGGZ.DB即所有未婚职工的姓名、婚否和基本工资字段。use zggzlist 姓名,婚否,基本工资for 婚否=.F.display 姓名,婚否,基本工资for .NOT. 婚否2 .显示ZGGZ.DBFK 1960年1月1日之后出生且基本工资超过400元的职工信息。list for 出生日期人1960/1

11、/1 AND基本工资4003 .显示ZGGZ.DB冲第4到第8号记录中“王”姓的职工信息。(提示:先将记录指针移到第4号记录上,再在命令中指定范围。)go 4list next 5 for substr(姓名,1,2)=王4 .在ZGGZ.DBF勺编辑窗口中,利用键盘输入对所有女职工的“实发工资”字段进行修改,使得:实发工资=基本工资+奖金扣款。(略)5 .利用REPLACE令对所有男职工的记录完成上述操作。replace 实发工资with 基本工资+奖金-扣款for 性别=,男6 .利用REPLACE令为所有职务为科长的奖金增加20元。replace 奖金 with 奖金+20 for 职务

12、=科长7 .利用REPLACE令为所有职工的基本工资增加10%replace all 基本工资with 基本工资*1.18 .利用BROWSE令,查看上述的替换的结果。browse准备:将数据表ZGGZ.DB复制成TEMP.DB尸并打开TEMP.DBFuse zggzcopy to temp use temp1 .对所有的未婚科员记录加删除标记。DELETE FOR 职务=科员AND 婚否=.F.2 ,对基本工资少于 400元的记录加删除标记。DELETE FOR 基本工资 4003 .分别在取消遮盖和遮盖带删除标记记录的环境下,显示数据表的记录。SET DELETE OFFLISTSET D

13、ELETE ON LIST4 .打开BROWS窗口,利用鼠标单击的方法,练习为记录添加和取消删除标记的操作。(需在取消遮盖带删除标记记录的环境下操作)(略)5 .利用命令取消所有记录的删除标记。RECALL ALL6 .物理删除最后一条记录。GO BOTTOMDELETEPACK7 .物理删除1969年及以前出生的职工记录。DELETE FOR YEAR(出生日期)=400displaycontinue2.利用SEEKS行如下的快速查询。1 )查找并显示姓名为“苏平”的职工记录。 set order to xm seek 苏平display2)查找并显示出所有职务为“科长”的职工记录。 set

14、 order to zwseek 科长display skip display3)查找并显示男科长的记录。(提示:利用第8单元中按“性别”和“职务”建立的索引。)set order to xbzw seek 男科长 display实习教程第10单元 数据表的统计(参考答案)1 .分别统计数据表中已焙的男职工和未焙的女职工人数。 use zggzcount for性另ij=男and 婚否=.t.count for性另1J =女and 婚否= .f.2 .求出所有男职工的人数和基本工资总额,并分别赋值给CN和SN利用上述两个内存变量计算出男职工的平均工资。count for性另1J =男to cn

15、sum基本工资for性别=男to sn? sn/cn3 .计算所有职务为科长的平均年龄。average year(date()-year(出生日期)for 职务=科长4 .计算所有职工的基本工资和奖金的总金额。sum基本工资+奖金实习教程第11单元 程序设计初步(参考答案)1 .编写一程序,计算一元二次方程a犬+bX+c=0的根。其中系数a,b,c由INPUT语句读入。运行该程序时,分别为a,b,c输入3, 4, 1 oSET TALK OFFINPUT A= TO AINPUT B= TO BINPUTS TO CX1=(-B+SQRT(B*B-4*A*C)/(2*A)X2=(-B-SQRT

16、(B*B-4*A*C)/(2*A)? X1=,X1? X2=,X2RETURN2 .编写一程序,读入圆柱体的高(H)和底面半径(R),计算并显示圆柱体的体积(V)SET TALK OFFINPUT H: TO HINPUT R: TO RV=3.1416*RA2*H? V=,VRETURN3 .编写一程序,首先由用户输入一个职务,如:“科长”,“处长”等,然后显示数据表ZGGZ.DBF中所有该职务的职工记录。(提示:利用 LIST命令。)SET TALK OFFUSE ZGGZACCEPT职务:TO ZWLIST FOR 职务=ZWRETURN实习教程第12单元 分支结构的程序设计(参考答案)

17、1.编写一程序,输入一个英文字母,若为大写,则显示它的小写字母;若为小写,则显示它的 大写字母。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 xyz=x*x+2*x*y+y*yelseif x=yz=x+yelsez=x-yendifendif? z=,z return

18、3 .编写一程序,输入某人的收入额,计算其个人所得税。个人所得税的计算方法为:不超过500元的税率为5%, 500元到2000元部分的税率为 10%,超过2000元部分的税率为15%。set talk offinput x= to x if x=500t=x*0.05elseif x=2000t=500*0.05+(x-500)*0.1elset=500*0.05+1500*0.1+(x-2000)*0.15endifendif?税金为:,str(t,6,2) return4,用DO CAS第句编写第3题的程序,并重复上面的计算。 set talk off input x= to x do c

19、asecase x=500t=x*0.05case x 0。SET TALK OFFINPUT A= TO AINPUT B= TO BINPUT C= TO CD=B*B-4*A*CIF D=0? X1=,(-B+SQRT(D)/(2*A)? X2=,(-B-SQRT(D)/(2*A) ELSE?方程无实数根!ENDIFRETURN实习教程第13单元 循环结构的程序设计(参考答案)1 .编写一程序,计算S= 1/2+1/2 2+1/23+,+1/2 N,其中N由用户输入。(保留小数点后5位) 利用程序分别计算N=5, 10和20时,S的值。提示:对S赋初值为0.00000 ,可达到保留小数点

20、后5位的目的。set talk off s=0.00000 i=1input n= to n do while i=ns=s+1/2Aii=i+1enddo ? s=,s return2 .在数据表ZGGZ.DB斗,循环查找和显示所有1970年以前出生的职工记录。 set talk offuse zggzlocate for year( 出生日期)1970 do while found()display continueenddo return3 .利用循环编程计算ZGGZ.DB斗男职工的平均工资。 set talk offuse zggzs=0n=0do while not eof()if

21、性别=男 s=s+基本工资 n=n+1endif skip enddo?男职工平均工资为:,str(s/n,6,2) return4 .利用SCAN句编写第2题的程序。 set talk offuse zggzscan for year( 出生日期)1970 displayendscan return5 .利用SCAM句编写第3题的程序。set talk offuse zggzs=0n=0scan for 性别=男s=s+基本工资n=n+1endscan?男职工平均工资为:,str(s/n,6,2) return6 .设一个班有10名学生,循环输入每个学生的分数(百计分),统计并显示各分数段的

22、人 数。其中分数段的划分如下:90分以上,8089分,7079分,6069分,60分以下。set talk offstore 0 to n1,n2,n3,n4,n5i=1do while i=90n1=n1+1case x=80n2=n2+1case x=70n3=n3+1case x=60n4=n4+1otherwisen5=n5+1endcasei=i+1enddo?90 分以上人数:,n1?80-89 分人数:,n2?70-79 分人数:,n3?60-69 分人数:,n4?60 分以下人数:,n5 return7 .编写一个程序,求解猴子吃桃问题。猴子第一天摘了若干桃子,当即吃了一半,又

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

24、TURN9 .编写一个二重循环程序,显示如下的乘法口诀表。set talk offi=1do while i=9j=1do while j20162*I-1I=I-112GO BOTTOMREST17S=0FOR性别=男3COPY STRUCTURE TO STUD3APPENCFROMSTUD1FOR 专业=计算机 18N=N+1STR(S/N,6,2)4SET ORDER TO 姓名SEEK NAME(2009-4-3 修改)19YEAR出生日期)=1970 AND 专业= 计算机”REPLACE奖学金 WITH 奖学金*1.25GO 2PACK20IF奖学金MX奖学金=MX16FIELD

25、S学号,姓名REPLACE姓名WITH 李义丽21NOT EOF()NOT是否过四级7AVERAG改学金22性别=男SKIP8223X=1500X,79APPEND BLANK24CONTINUEEXIT10FOUND()或:NOT EOF()ENDIF25LOOPN=N+111WAIT 或:ACCEPTENDCASE26.T.UPPER(K尸N (2009-4-3 修改)12M1M2M2=M27REPLACE奖学金 WITH 奖学金+10N=N+1 (2009-4-3 修改)13X10028IF是否过四级MOD(X,2)=0REPLACE奖学金 WITH 奖学金+1514DO WHILE K=10S=S+X (2009-4-3 修改)15K=5K=K+2习题集参考答案 第4部分 数据库1C6D11B*2A7C12B*3

温馨提示

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

评论

0/150

提交评论