Visual FoxPro程序设计实习教程与习题集.docx

上传人:b****3 文档编号:26584251 上传时间:2023-06-20 格式:DOCX 页数:15 大小:21.89KB
下载 相关 举报
Visual FoxPro程序设计实习教程与习题集.docx_第1页
第1页 / 共15页
Visual FoxPro程序设计实习教程与习题集.docx_第2页
第2页 / 共15页
Visual FoxPro程序设计实习教程与习题集.docx_第3页
第3页 / 共15页
Visual FoxPro程序设计实习教程与习题集.docx_第4页
第4页 / 共15页
Visual FoxPro程序设计实习教程与习题集.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Visual FoxPro程序设计实习教程与习题集.docx

《Visual FoxPro程序设计实习教程与习题集.docx》由会员分享,可在线阅读,更多相关《Visual FoxPro程序设计实习教程与习题集.docx(15页珍藏版)》请在冰豆网上搜索。

Visual FoxPro程序设计实习教程与习题集.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1