实验六

一、

1.实验题目:

结构化程序设计

二、实验目的与要求:

(1)了解程序的建立与执行方法。

(2)熟练掌握结构化程序设计的三种基本结构(顺序结构、分支结构、循环结构)的应用

(3)子程序与过程文件及用户自定义函数的建立。

三、实验内容

(选择文件菜单下的新建,在新建对话框中选择程序,再单击新建文件即可进入程序编辑器,然后输入代码,输入结束后保存并运行即可完成程序的操作)

实验4-1 新建程序文件excercise1.prg,编写代码,要求完成以下功能:

输出字符“中国”,同行输出字符“泰山”,换行输出“职业技术学院”。

程序代码如下:

clear

? "中国"

?? "泰山"

? "职业技术学院中国"

实验4-2  打开程序文件excercise1.prg,添加代码,要求完成以下功能:

(1)  利用accept输入命令输入一个字符串,并将输入的字符串存入变量icode中。

(2)  利用input输入命令输入一个字符串,并将输入的字符串存入变量icode1中。

(3)  利用input输入命令输入一个数值,并将输入的字符串存入变量value1中。

(4)  icode、icode1、value1输出到屏幕上,要求输出到同一行。

程序代码如下:

accept "输入一个字符串" to icode

input "输入一个字符串" to icode1

input "输入一个数值" to value1

? icode,icode1,value1

(注意:accept和input输入字符的格式不同,input输入是应加定界符)

实验4-3  建立程序文件excercise2.prg,完成以下功能:

清屏,在屏幕上输出“请输入长方形的长:” “请输入长方形的宽:”,并将用户输入的长、宽输入到变量chang,kuan中。利用长方形的周长、面积公式求出周长、面积。并以“”、“长方形的面积是XXX平方米”的形式显示出来。

程序代码如下:

clear

input "请输入长方形的长:" to chang

input "请输入长方形的宽:" to kuan

l= (chang+kuan)*2

s= chang*kuan

? "长方形的周长是",l,"米"

? "长方形的面积是",s, "平方米"

实验4-4  建立程序文件excercise3.PRG,完成以下功能:

密码校验程序:假设密码为ABC,如果密码正确,显示"欢迎使用本系统!";如果密码错误,则显示"密码错误!"。

程序代码如下:

Clear

Accept  "请输入您的密码:"  To M

If  M="Abc"

? "欢迎使用本系统!"

Else

?"密码错误!"

Endif

实验4-5  新建程序excercise4.prg。编写,代码,要求完成以下功能:

 

求一元二次方程 ax2+bx+c=0的实根。如果有实根则显示其根,否则显示无实根。

程序代码如下:

input to a

input to b

input to c

z=b^2-4*a*c

if  z>=0

x1=(-b+sqrt(z))/(2*a)

x2=(-b-sqrt(z))/(2*a)

? x1,x2

else

? "无实根"

endif

return

实验4-6  新建程序excercise5.prg。编写代码,要求完成以下功能:

假设收入(P)与税率(R)的关系如下表,编程求税金。

R=

 
                  0            P<800

                0.05            800 ≤ P<2000

                0.08            2000≤P<5000

                 0.1            P≥5000

程序代码如下:

input  请输入收入:  to p

do  case

case  p<800

             r=0

case  p<2000

             r=0.05

case  p<5000

             r=0.08

otherwise

             r=0.1

endcase

tax=p*r

?  税金为:”,tax

return

实验4-7  建立一个程序文件excercise6.prg和exercise7.prg,完成以下功能:

 

编程求1到100之间的偶数和。

程序代码如下:

(1) do while 循环

clear

s=0

i=2

do  while i<=100

   s=s+i

   i=i+2

enddo

?  "1到100之间的偶数和: ",S

(2)for 循环

s=0

for i=2 to 100 step 2

s=s+i

endfor

?" 1到100之间的偶数和: ",s

实验4-8  建立一个程序文件excercise8.prg,完成以下功能:

 

从键盘输入10个数,编程找出其中的最大值和最小值。

程序代码如下:

clear

input "请从键盘输入一个数:" to a

store a to max,min

for  i=2 to 10

input "请从键盘输入一个数:" to a

if  max<a

   max=a

endif

if  min>a

  min=a

endif

endfor

?  "最大值为:" , max

?  "最小值为:" , min

 

 

实验4-9  建立一个程序文件excercise9.prg,完成以下功能:

 

输出:*

*  *

*  *  *

*  *  *  *

程序代码如下:

for i=1 to 4

for j=1 to i

??"* "

endfor

?

endfor

实验4-10  建立一个程序文件excercise10.prg,完成以下功能:

 

1!+2!+3!+……+100!

程序代码如下:

s=0

for i=1 to 10

m=1

for j=1 to i

m=m*j

endfor

s=s+m

endfor

?"阶乘和为:",s

实验4-11 建立一个程序文件excercise11.prg,完成以下功能:

用多层for循环求在0到999范围内找出水仙花数

(该数各位数字的平方和等于这个数本身)

程序代码如下:

For a=0 to 9

        For b=0 to 9

        For c=0 to 9

        if a^3+b^3+c^3=100*a+10*b+c

        ?100*a+10*b+c

        endif

        endfor

      endfor

    endfor

实验4-12  建立一个程序文件excercise12.prg,完成以下功能:

显示商品表中类别为粮油的商品信息

 

 

 

 

open database 商品管理

use 商品

scan for 类别="粮油"

display

endscan

close database

实验4-13  建立一个程序文件excercise13.prg,完成以下功能:

已知商品表和订购表,通过键盘输入的信息,控制查询内容:当输入1时,可调用过程p1.prg(查看每种商品的商品名称);当输入2时,可调用过程p2.prg(查看每种商品的类别);当输入3时,可调用过程p3.prg(查看每种商品的订购数量和单价);当输入4时,可调用过程p4.prg(查看每种商品的供应商)

程序代码如下:

clear

do while .T.

   accept"输入1—4:" to k

   do case

case  k="1"

     do p1

case k="2"

     do p2

case k="3"

     do p3

case k="4"

     do p4

endcase

accept "还继续查看吗?" to z

if z="n"

  exit

 endif

enddo

调用子程序p1.prg的代码如下:

? "查看每种商品的商品名称"

sele 商品编号,商品名称 from 商品

return

调用子程序p2.prg的代码如下:

? "查看每种商品的类别"

sele 商品编号,类别 from 商品

return

调用子程序p3.prg的代码如下:

? "查看每种商品的订购数量和单价"

sele商品.商品编号,商品名称,订购数量,单价 from 商品, 订购单where 商品.商品编号=订购单.商品编号

return

调用子程序p4.prg的代码如下:

? "查看每种商品的供应商"

sele 商品编号,商品名称 from 商品, 订购单,供应商 where 商品.商品编号=订购单.商品编号 and订购单.商品编号=供应商.商品编号

return