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

更新时间:2024-04-11 06:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《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、设计个人所得税计算器,按如下公式进行收税:

?0,income??2000?(income?2000)*0.05,2000?income??2500??tax??(income?2000)*0.1?25,2500?income??4000

?(income?2000)*0.15?125,4000?income??9000???(income?2000)*0.2?325,income?9000在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+\ 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、编写一个华氏温度与摄氏温度之间转换的程序,界面如下图所示。要使用转换的公式是:

9c?32,摄氏温度转化为华氏温度,f为华氏温度 55c?(f?32),华氏温度转化为摄氏温度,c为摄氏温度

9f?

10、在购买某物品时,若所标明的价钱x在下述范围内,所付钱y按对应折扣支付:

?x,x?1000?0.90x0??x,10? y??x,20?0x0??0.8?xx,?3000?0.72000

3000

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、编写一个求任意梯形面积的程序,界面如下图所示。要使用转换的公式是:

s?h(a?b),a为上低,b为下底,h为高,s是要输出的面积。 2

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、编一个程序输入上网的时间并计算上网费用,计算的方法如下:

费用=

基数30元,上网时间<10小时 每小时2.5元,上网时间10~50小时 每小时2元,上网时间≥50

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

lb_1.additem(string(n))

end if

next

16、编程求解如下二元一次方程组,从单行编辑框中输入m和n,按“求解”按钮后,求得x和y并将其值输出。

?3x?4y?m? 5x?2y?n?

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=\

elseif score<60 then

grade=\

else

grade=\

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=\ case 60 to 84 grade=\ case is<60 grade=\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=\男\ if 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=\女\ 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

本文来源:https://www.bwwdw.com/article/htyp.html

Top