《PowerBuilder数据库应用开发》练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《PowerBuilder数据库应用开发》练习题
1、设计一个用户界面,如下图所示,并编写相应脚本,从单行编辑框中输入圆的半径r,按“计算”按钮后,计算圆的周长和面积并将其值输出。

在cb_1click事件中输入decimal R
R=dec(sle_1.text)
sle_2.text=string(3.1415926*2*r)
sle_3.text=string(3.1415926*r*r)
在app_1中输入open(w_main)
2、设计一个乘法器,要求输入两个数后,点击乘法按钮,显示计算结果。

界面如下图所示:
在cb_1click事件输入decimal m,n
m=dec(sle_1.text)
n=dec(sle_2.text)
sle_3.text=string(m*n)
在app_1中输入open(w_main)
3、编程实现求两个自然数的最大公约数,界面如下图所示:
在cb_1中输入long m,n,r
m=dec(sle_1.text)
n=dec(sle_2.text)
r=mod(m,n)
do while r<>0
m=n
n=r
r=mod(m,n)
loop
sle_3.text=string(n)
在app_1中输入open(w_main)
4、铁路托运行李,从甲地到乙地,规定每张客票托运费计算方法是:行李重量不超过50千克时,每千克0.25元;超过50千克而不超过100千克时,其超过部分每千克0.35元;超过100千克时,其超过部分每千克0.45元。

编写程序,输入行李重量,计算并输出托运的费用,设计一个用户界面,界面如下图所示,并编写相应脚本。

在cb_1中输入dec g,f
g=dec(sle_1.text)
choose case g
case is <=50
sle_2.text=string(g*0.25)
case 50 to 100
sle_2.text=string((g - 50)*0.35+50*0.25)
case else
sle_2.text=string((g - 100)*0.45+50*0.35+50*0.25)
end choose
open(w_main )
5、设计一个用户界面,如下图所示,将1800年~2010年之间所有闰年输出,并统计个数,编写其相应脚本。

在cb_1的declare instance variables 中输入int c=0 integer li_year,s for s=1800 to 2010 if mod(s,4)=0 and mod(s,100)<>0 or mod(s,400)=0 then lb_1.additem(string(s)) c=c+1 end if next
在cb_2中输入 sle_1.text=string(c)
图2
6、设计个人所得税计算器,按如下公式进行收税:
⎪⎪⎪⎩⎪
⎪⎪⎨⎧>--<=<--<=<--<=<-<==9000
,3252.0*)2000(90004000,12515.0*)2000(4000
2500,251.0*)2000(25002000,05.0*)2000(2000
,0income income income income income income income income income tax
在cb_1中输入integer i
string tax
i=integer(sle_1.text) choose case i case is <=2000 tax=string(0) case 2000 to 2500 tax=string((i - 2000)*0.05) case 2500 to 4000 tax=string((i - 2000)*0.1 - 25) case 4000 to 9000 tax=string((i - 2000)*0.15 - 125) case else tax=string((i - 2000)*0.2 - 325) end choose sle_2.text=tax open(w_main)
7、设计一个界面并编写相应脚本,将100~500之间所有除3余1、除5余2且除7余2的所有数输出,并统计其个数。

dec a
int i
string str=""
for i=100 to 500
if mod(i,3)=1 and mod(i,5)=2 and mod(i,7)=2 then
a=a+1
str=str+" "+string(i)
end if
next
sle_1.text=str
sle_2.text=string(a)
8、设计一个界面并编写相应脚本,将1~1000之间的所有“完备数”输出。

所谓“完备数”即其值等于其所有的因数(不包括其自己本身)的和的数。

如6=1+2+3,28=1+2+4+7+14。

int i,j,s,sum for i=1 to 1000 s=0 for j=1 to i - 1 if mod(i,j)=0 then s=s+j end if next if i=s then sle_1.text=sle_1.text+string(i)+" " end if next
9、编写一个华氏温度与摄氏温度之间转换的程序,界面如下图所示。

要使用转换的公式是:
325
9
+=c f ,摄氏温度转化为华氏温度,f 为华氏温度
)32(9
5
-=f c ,华氏温度转化为摄氏温度,c 为摄氏温度
10、在购买某物品时,若所标明的价钱x 在下述范围内,所付钱y 按对应折扣支付:
,1000
0.9,100020000.8,200030000.7,3000
x x x x y x x x x <⎧⎪≤<⎪=⎨≤<⎪⎪≥⎩
dec a,b
a=integer(sle_1.text) choose case a case is<1000 b=a case 1000 to 2000 b=0.9*a case 2000 to 3000 b=0.8*a case is>3000 b=0.7*a end choose
st_3.text=string(b,'#.#')+"元"
11、编写一个求任意梯形面积的程序,界面如下图所示。

要使用转换的公式是:
2
)
(b a h s +=
,a 为上低,b 为下底,h 为高,s 是要输出的面积。

dec a,b,h,s
a=integer(sle_1.text) b=integer(sle_2.text) h=integer(sle_3.text) s=h*(a+b)*0.5 sle_4.text=string(s)
12、新东方购物广场五一劳动节促销,方案如下:消费1000元以上顾客,全部商品7.0折;消费800元以上的顾客,全部商品7.5折;消费500元以上的顾客,全部商品8.0折;消费300元以上的顾客,全部商品8.5折;消费低于300元的顾客,不享受打折优惠。

设计一个计算顾客应付金额的应用程序。

dec a,b
a=integer(sle_1.text)
choose case a
case is<300
b=a
case 300 to 500
b=0.85*a
case 500 to 800
b=0.8*a
case 800 to 1000
b=0.75*a
case is>1000
b=0.7*a
end choose
sle_2.text=string(b)
13、编程求1+3+5+…+n(n为奇数),界面如下图所示。

integer s,i,n
n=integer(sle_1.text)
s=0
for i=1 to n step 2
s=s+i
next
sle_2.text=string(s)
14、编一个程序输入上网的时间并计算上网费用,计算的方法如下:
费用=
dec a,b
a=integer(sle_1.text) choose case a case is<10 b=10 case 10 to 50 b=2.5*a case is>=50 b=2*a end choose
sle_2.text=string(b)
15、请编程输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于数的本身。

例如,153是一个水仙花数,因为153=13+53+33。

界面如下图所示。

在cb_1中输入integer i,j,k,n
string str="" for n=100 to 999
i=n/100 //百位数字 j=n/10 - i*10 //十位数字 k=mod(n,10) //个位数字
if (i*100+j*10+k)=(i*i*i+j*j*j+k*k*k) then 基数30元,上网时间<10小时 每小时2.5元,上网时间10~50小时 每小时2元,上网时间≥50
lb_1.additem(string(n))
end if
next
16、编程求解如下二元一次方程组,从单行编辑框中输入m 和n ,按“求解”按钮后,求得x 和y 并将其值输出。


⎨⎧=+=+n y x m y x 2543
dec m,n,x1,y1
m=integer(sle_1.text) n=integer(sle_2.text) x1=(2*n - m)/7 y1=(5*m - 3*n)/14 sle_3.text=string(x1) sle_4.text=string(y1)
17、编程将学生的百分制成绩转换为等级,要求输出成绩等级:“A ”,“B ”,“C ”。

85分及以上为“A ”,60~84分为“B ”,60分以下为“C ”。

界面如下图所示:
在cb_1中输入integer score
string grade
score=integer(sle_1.text) if score>=90 then
grade="A"
elseif score<60 then
grade="c"
else
grade="b"
end if
sle_2.text=grade
18设计奖学金评定应用程序,平均成绩90分以上为一等,85分以上为二等,80分以上为三等,60分以上为四等,其余为无奖学金。

(假定期末考试科目为数学和英语)有问题
int score
string grade
score=integer(sle_1.text)
choose case score
case is>=85
grade="A"
case 60 to 84
grade="B"
case is<60
grade="C"
end choose
sle_2.text=grade
19、输入一个人的身高、体重,根据正常体重范围,男性“(身高-80)*0.7±10公斤”为适中,女性“(身高-70)*0.6±10公斤”为适中,判断此人身材“适中”、“偏瘦”或“偏胖”。

dec
a,b
a=dec
(sle_2.text)
b=dec
(sle_3.text)
if
sle_1.text=
"男" then
i
学习好资料_____________________________________________
f b>(a - 80)*0.7+10 then
st_7.text="偏重"
elseif b<(a - 80)*0.7 - 10 then
st_7.text="偏瘦"
else
st_7.text="适中"
end if
end if
if sle_1.text="女" then
if b>(a - 70)*0.6+10 then
st_7.text="偏重"
elseif b<(a - 70)*0.6 - 10 then
st_7.text="偏瘦"
else
st_7.text="适中"
end if
end if
五、连接数据库
把D盘中的PB数据库文件夹下xsgl数据库连接上,要求把连接过程及参数设置的对话框截取下来,放到下面空白处,一共是两个图。

要求:把语句及运行结果截图放到空白处。

1)选择student表中的所有列。

2) 查询考试成绩不及格学生的学号.
(包括实验指导的全部查询题)
六、数据窗口
实验指导例1,2,3,4
__________________________________________________。

相关文档
最新文档