实验六
一、
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