《visual foxpro程序设计实习教程与习题集》由会员分享,可在线阅读,更多相关《visual foxpro程序设计实习教程与习题集(66页珍藏版)》请在金锄头文库上搜索。
1、Visual FoxPro程序设计实习教程与习题集实习教程第11单元 程序设计初步 (参考答案)1编写一程序,计算并显示圆的周长(L)和面积(S),其中半径(R)由INPUT语句读入。 SET TALK OFF INPUT R: TO R PI=3.1416 L=2*PI*R S=PI*R2 ? L=,L ? S=,S RETURN2. 编写一程序,读入圆柱体的高(H)和底面半径(R),计算并显示圆柱体的体积(V)。 SET TALK OFF INPUT H: TO H INPUT R: TO R V=3.1416*R2*H ? V=,V RETURN3. 编写一程序,首先由用户输入一个职务,
2、如:“科长”,“处长”等,然后显示数据表 ZGGZ.DBF中所有该职务的职工记录。 SET TALK OFF USE ZGGZ ACCEPT 职务: TO ZW LIST FOR 职务=ZW RETURN实习教程第12单元 分支结构的程序设计 (参考答案)1编写一程序,输入一个英文字母,若为大写,则显示它的小写字母,若为小写则显示它的大写字母。 set talk off accept 输入一个字符: to ch if upper(ch)=ch ? lower(ch) else ? upper(ch) endif return2. 编写程序,计算分段函数: 的值。 set talk off in
3、put x= to x input y= to y if xy z=x*x+2*x*y+y*y else if x=y z=x+y else z=x-yendif endif ? z=,z return3. 编写一程序,输入某人的收入额,计算其个人所得税。 个人所得税的计算方法为:不超过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+(
4、x-2000)*0.15 endif endif ? 税金为: ,str(t,6,2) return4. 用DO CASE语句编写第2、3题的程序,并重复上面的计算。2)set talk off input x= to x input y= to y do case case xy z=x*x+2*x*y+y*y case x=y z=x+y otherwise z=x-y endcase ? z=,z return3)set talk off input x= to x do case case x=500 t=x*0.05 case x=2000 t=500*0.05+(x-500)*0.
5、1 otherwise t=500*0.05+1500*0.1+(x-2000)*0.15 endcase ? 税金为: ,str(t,6,2) return实习教程第13单元 循环结构的程序设计 (参考答案)1编写一程序,计算 S1/2+1/22+1/23+1/2N,其中N由用户输入。(保留小数点后5位)利用程序分别计算N=5,10和20时,S的值。 set talk off s=0.00000 i=1 input n= to n do while i=n s=s+1/2i i=i+1 enddo ? s=,s return 2在数据表ZGGZ.DBF中,循环查找和显示所有1970年以前出生
6、的职工记录。 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) return4利用SCAN语句编写第2题的程序。 set talk off use zggz scan for
7、year(出生日期)1970 display endscan return5利用SCAN语句编写第3题的程序。 set talk off use zggz s=0 n=0 scan for 性别=男 s=s+基本工资 n=n+1 endscan ? 男职工平均工资为: ,str(s/n,6,2) return6设一个班有10名学生,循环输入每个学生的分数(百计分),统计并显示各分数段的人数。其中分数段的划分如下:90分以上,8089分,7079分,6069分,60分以下。 set talk off store 0 to n1,n2,n3,n4,n5 i=1 do while i=90 n1=n
8、1+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编写一个二重循环程序,显示如下的乘法口诀表。 set talk off i=1 do while i=9 j=1 do while j=4 and recno()400 display continue display continue2. 利用SEEK进行如下的快速查询。1)查找并显示姓名为“苏平”的职工记录。 set order to xm seek 苏平 display2)查找并显示出所有职务为“科长”的职工记录。 set order to zw seek 科长 display skip display skip display skip display3)查找并