收藏 分销(赏)

PowerBuilde学习测试试题.pdf

上传人:曲**** 文档编号:226244 上传时间:2023-03-09 格式:PDF 页数:10 大小:632.60KB
下载 相关 举报
PowerBuilde学习测试试题.pdf_第1页
第1页 / 共10页
PowerBuilde学习测试试题.pdf_第2页
第2页 / 共10页
PowerBuilde学习测试试题.pdf_第3页
第3页 / 共10页
PowerBuilde学习测试试题.pdf_第4页
第4页 / 共10页
PowerBuilde学习测试试题.pdf_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、一、选择题(每题2分,共18分)1、在运行状态下,下面哪一种类型的窗口不具备最大化和最小化功能(B)A.主窗口 B.响应式窗口C.多文档窗口 D.弹出式窗口2、下面哪一种类型的窗口不可以有菜单栏(A)A.子窗口 B.弹出式窗口C.多文档窗口 D.主窗口3在powerscript语言中,下面哪一个是正确格式的日期型常量(A)A.2003-05-01 B.05/01/2003C.05-01-2003 D.2003/05/014 在Powerbuilder中,有4种不同范围的变量,作用范围仅在所在的事件和函数内 部起作用,在别的事件和函数中不起作用的是下列哪一类变量。(D)A.shared B.in

2、stanceC.global D.local5、如果希望在窗口中,对鼠标的单击左键事件进行处理,应当在窗口的哪一个事件中 编写程序?(C)A.key()B.rightclicked()C.clicked()D.leftclicked()6、Powerbuilder中在设计数据窗口对象时,有11种显示风格可选,下面哪一种显示 风格适合设计单条数据的录入?(D)A.tabular B.gridC.label D.freeform7、使用分组框不仅对其有装饰作用,还可以起到分组效果的控件是(A)A.单选钮 B.复选框C.命令按钮 D.图片超链接8、在写程序代码时,我们经常使用messagebox函数

3、显示提示信息,该函数的参数至 少有几个?(C)A.0 B.1C.2 D.39、下列选项哪一个不是合法的PowerScript语言的标识符(C)A.name B.windowlC.parentwindow D.test10、(A)类型的窗口不可以最大化和最小化。A.response!B.popup!C.mdi!D.mdihelp!11、在写程序代码时,我们经常使用messagebox函数显示提示信息,该函数的参数最 多有几个?(C)A.3 B.4C.5 D.612、下面哪一种类型的窗口必须有菜单栏(C)A.主窗口 B.弹出式窗口C.多文档窗口 D.子窗口13、在PB9.0集成环境中,新创建一个P

4、owerBuilder应用程序时,应当首先创建(B)A.应用 Application B.工作空间 WorkspaceC.窗口对象Window D.数据窗口对象DataWindow14、编辑风格影响用户输入和修改数据的方法。当在数据窗口中输入人员的兴趣爱 好时,宜选用(D)编辑风格。A.Edit B.EditMaskC.RadioButton D.C heckBox15、如果希望在窗口关闭之前,检测数据窗口中数据是否发生变化,提示对数据进行保 存,应当在下面哪一个事件中编写程序?(C)A.窗口的close事件 B.数据窗口的losefocus事件C.窗I的 closequery 事 D.数据窗

5、 I I 的 itemchanged件 事件16如果想用PowerBuilder9打开PowerBuilder8版本开发的程序,需要将该应用程序 移植到当前版本,移植的菜单命令为:(B)A.incremental build B.migrateC.deploy D.debug17、Powerbuilder中在设id一数据窗口对象时,有11种显示风格可选,下面哪一种显 示风格适合设计综合报表?(D)A.freeformC.labelB.gridD.tabular18、在设计数据窗口时,如果要在检索出的数据的后面显示统计结果,应把统计公式放置在数据窗口的(D)。A.detail 区域C.group

6、 trailer 区域19、执行下列语句:any aa=5string kk=aaaa=kk变量aa的类型为(A)A.stringC.any二、填空题(每空1分,共16分)B.footer 区域D.summary 区域B.intD.类型不确定1、默认的用来连接数据库的全局变量名称是sqlca。2、用 openwithparm(w_department,100)函数打开窗口 w_department 时,会传递给该 窗口一个参数,在该窗口的open事件中,我们想把“100”取出赋给变量arg,请写 出实现该功能的语句:arg=message,doubleparm3、Left(Right(trim

7、(程序设计方法”),8),2)设。参考第三版 课本第432页的“字符串操作函数”4、PowerBuilder中函数 isnull_用于判断变量是否为空。5、Dec 3变量a、b、c的值分别为:20、2、2,执行a/=b+c*2语句后,变量a的值为:3.333 o其中Dec k 表示精确到小数点后第k位6、在设计数据窗口对象时,数据窗口的每个区域起的作用不同,比如:header区域的作 用是显示数据的标题行。请再列出三个区域的名称detail、footer和Summary7、按照参数传递的不同方式,函数参数有三种类型,分别是传值、传弓I用、只读。8、在设计字段数据的显示风格时,用掩码设计可以达到

8、很好的效果,例如:要把“固定 电话”字段列(vachar类型)数据037964288866显示为“0379-64 288866”,设计的 掩码为:#一#9、工作区文件的后缀名为:曲L,目标文件的后缀名为:曲,库文件的后缀名为:pbl 10、命令按钮默认的前缀为cb。11、Dec3变量a、b、c的值分别为:20、2、2,执行a/=b+c*2语句后,变量a的值为:3.333_O12、执行 p=pos(fteeformgridlabeltabular Jr,pos(abcdae炮aabbccdeJb,5)语句后,p 的 值为:24参考第三版课本第432页的“字符串操作函数”13、PowerBuild

9、er的一个很大的特点就是提出了数据窗I I对象的概念。14 配置文件init.ini的内容如下:personname=johnsex=m用profilestring()函数取出字符串john赋给变量personname的语句为:personname=profilestring(init.int,person,name,)。用setprofilestring()函数把字符串m替换为w的语句为:o15、在设计字段数据的显示风格时,用掩码设计可以达到很好的效果,例如:要把日期型 数据2011年1月10日显示为“11-01-10”,设计的掩码为:yy-mm-ddo16、PB将儿乎所有用来创建应用程序的

10、组件都作为对象来管理,对象都含有事件,属性,函数(方法).17、要使按钮cb_ok处于可见但不可用状态(即:灰色状态),可用语句C b_ok.enabled=false_实现。18、用语句openwithparm(w_main,9 8)打开窗口 w_test时一,会传递给该窗口一个 参数,在该窗口的。pen事件中,我们想把“98”取出赋给变量arg,请写出实现该功 能的语句:arg=message,doubleparm。19、列举四种常用的数据窗口对象的显示风格:freefrom tabular grid group graph。三、判断题(每题1分,共10分)1、删除Adaptive Ser

11、ver Anywhere物理数据库文件后,PowerBuilder环境中相应的 DB_profile和ODBC数据源名称也被删除了。(f)2、应用对象是一个可视对象。(f)应用对象是一个不可视对象3、PowerBuilder环境中可以同时打开多个一个工作区,一个工作区内可以同时打开 多个一个应用程序,一个应用程序所创建的对象又可以存放到多个库文件中。(f)4、在PowerBuilder中,枚举类型的数据是以“!”结束的一组常量,开发人员不可以 定义自己的枚举类型。(t)5只有mdi或main类型的窗口才能挂接菜单。(f)窗口本身并没有菜单,通 过选择可以挂接菜单6、PowerBuilder具备

12、面向对象编程的特征。(t)7、用PowerBuilder开发工具开发的应用程序,生成的可执行文件(后缀名为:exe),除数据库文件外,无须其它任何文件的支持,需要系统动态连接库即可在另一 台机器上运行。(f)8、PowerBuilder各版本之间向上向下都是兼容的。(f)9、Powerscript语言中的函数,如果没有参数,可以不以括号结束。(f)10语句dw_l.insert row(0)是在数据窗口 dw_l的主缓冲区中,当前行前面插入一 条新的空白数据行。(f)表示在最后一行后面插入一行11语句dw_l.insertrow(6)是在数据窗口 dw_l的主缓冲区中,第6 5条记录之后,插入

13、一条新的空白数据行。(f)12、当数据窗口的数据源是从多个表中选择列时,那么缺省情况下所有列的跳转次 序均为0。(t)13、利用PowerBuilder的数据管道,开发人员和应用程序能够简单、方便、快捷地把数据库表中的数据从一个表复制到另一个表、从一个数据库复制到另一个数 据库、从一个DBMS复制到另一个DBMS。(t)14、在PowerBuilder开发环境中,可以实现对所连接数据库的建表、删除表、对表建 立索引、主键等基本操作。(f)15、一个表中可以设置多个索引,但只能设置一个主键和一个外键。(f)16、Powerscript语言中的函数,无论是否有参数,都必须以括号结束。(t)17、删

14、除profile的同时,会删除ODBC数据源,但不会影响物理数据库。(f)18、在PB环境中,对Adaptive Server Anywhere数据库中的表进行操作,定义主键时,可以把两个字段共同作为主键,一个表可以定义两个主键。(f)19、一个应用程序可以有很多对象组成,这些对象可以放到多个PBL库文件中进行 管理,但是,只能其中一个PBL库文件中有应用程序对象。(t)20、Powerscript语言中,可以声明datetime类型的变量,也可以赋一个datatime类 型的常量给它。(f)四、嵌入式SQ L语句(每题2分,共10分)现有职工表,表结构(表名:worker)及数据如下:wor

15、keridworkernamesexsalary200801魏建国男2000200806李雯女2500200802黄佳超女2600200803王军男1600用嵌入式SQ L语句完成下列功能:1、检索出worker id为200803的职工的workername和sex,存入string类型变量work id和 整型变量sex中。string workid,sexselect workername,sexinto:workid,:sexfrom workerwhere workerid-200803,using sqlca;2、检索出工资(salary)大于等于2000的职工人数,存入整型变量k

16、k中。int kkselect into fromcount(*):kk workerwhere salary=2000using sqlca;3、把所有性别(sex)为“女”的职工的工资(salary)上涨100元钱。workerupdatesetsalary=salary+100where sex=using sqlca;4、插入一条新记录:200804,李明明,女,3300o insert intovalues(200804,李 明 明using sqlca;5、把workerid为200806的学生的记录删除。Delete fromwhere using sqlca现有表结构(表名:s

17、tu)及数据如下:女f f5fworker女,3300)workerworkerid=200806,idnamesexbirth2008001张国东男1987/05/012008002李梅花女1985/08/202008003黄菲女1987/12/012008005吴晓东男1988/09/05用嵌入式SQ L语句完成下列功能:1、检索出id为2008003的学生的name和sex,存入string类型变量name和sex中。select into from:namewherename,sex:sex stuid=2008003,using sqlca;2、检索出stu表中,在19 87年10月

18、1日以后出生的记录条数,存入整型变量k中。select count(*)into:kfrom stuwhereusing sqlca;3、把id为2008002的学生的sex改为女。updateset sex=wherebirth 19 87-10-01stu女,id=2008002,using sqlca;4、插入一条新记录:2008004,马建东,男,1990年1月12日。insert into stuvaluesC 2008004,马 建 东?男,19 9 0-01-12)using sqlca;5、把id为2008003的学生的记录删除。Deletefromstuwhereid=200

19、8003,using sqlca;五、语法题(共5分)请用PowerScript语言写出把百分制成绩(用变量in表示)转化为五级分制成绩的函 数体。转化规则:0-59:不及格;60-69:及格;70-79:中等;80-89:良好;9 0-100:优秀。条件及要求:输入变量in已经在可视化环境中定义好,可以直接使用;算法描述符合 powerscript语法;输出用messagebox对话框函数。/*C ase in 80 to 90messagebox(成绩等级,良好)C ase in 70 to 80messagebox(成绩等级,中等)stringkk=sle_l.textif not is

20、number(sle_l.text)thenmessagebox(错 误 J 请 输 return end integer in=integer(k)*/以 上 部 分if in 0入 数 字!)ifin不 用 作 答thenmessagebox(错 误 请 输else if入 正 数!)in 60 thenmessagebox(成 绩 等 级elseif in 70不 及 格)thenmessagebox(成 绩 等 级elseif in 80及 格)thenmessagebox(成 绩 等 级elseif in 9 0 中 等thenmessagebox(成 绩 等 级elseif in=

21、100良 好)thenmessagebox(成 绩 等 级else优 秀)messagebox(错误请输入不超 end或者使用choose.case语句C hoose case inC ase in 9 0 to 100messagebox(成绩等级,优秀)过 100 的数字!)ifC ase in 60 to 70messagebox(成绩等级,及格)C ase in 0 to 60messagebox(成绩等级,不及格)C ase in 0messagebox(错误,请输入正数!)六.编程题(共20分)用Powei*Builder9.0实现一个人员维护应用程序workerapp0运行wor

22、kerapp时弹出窗口 w_worker,完成检索、修改职工库中人员信息的功能,如图所示,其中数据窗口控件名为 dw_worker0请完成下列事件的脚本:1、下面是应用程序对象workerapp的open事件脚本,请补充完整。SQ LC A.DBMS=ODBCSQ LC A.AutoC ommit=FalseSQ LC A.DBP arm=ConnectString=DSN=worker;UID=dba;PWD=sqrC onnect using sqlca;IF sqlca.sqlcode 0 T HENMessageBox(错误”,不能连接到数据库上!”)returnENDIFopen(w

23、_worker)2、请写出w_worker的open事件脚本,要求打开窗口后,数据窗口控件中显示全部的人 员记录。(2分)dw_worker.settransobject(sqlca)dw_worker.retrieve()3、请写出如图所示的八个按钮的clicked事件脚本(要求每项功能用一条语句实现)。dw_worker.scrolltorow(dw_worker.rowcount()上 一 条:dw_worker.scrollpriorrow()下 一 条:dw_worker.scrol lnextrow()第 一 条:dw_worker.scrolltorow(1)最 后 一 条:dw

24、_worker.srolltorow(dw_worker.rowcount()添加:dw_worker.scrolltorow(dw_worker.insertrow(0)/0 表示在最后一行后面插入一行 更 新:dw_wor ker.update()删 除:dw_worker.deleterow(0)/0 表 示 当 前 行 退 出:close(parent)(注:请注意数据窗口控件的名称)(8分)4、请指出本题第一小题中,事务对象名称和数据源名称分别是什么?(2分)事务对象名:sqlca数据源名:worker5、从程序的健壮性角度考虑,你认为我们还应该在哪些控件或对象的什么事件中编写脚 本

25、。按照你的思路,写出脚本。(请注明控件或对象和事件)参考写出一两个即可(4 分)A.在应用程序对象 worker app 的 close 事件中 disconnect using sqlca;B.按钮控件“上一条”的“clicked”事件中(以及按钮“第一条”的“clicked”事件)if dw_worker.getrow()=1 thenmessagebox(提 示已 经 是 第一条!)end ifC.按钮控件“下一条”的“clicked”事件中(以及按钮“最后一条”的“clicked”事件)if dw_worker.getrow()=dw_worker.rowcount()thenmess

26、agebox(提 示已 经 是 最 后一条!)end ifD.按 钮 控 件“更 新”的“clicked”事 件 中本题中,感觉逻辑有问题,必须更改!int i,kki=dw_worker.deletedcount()+de_worker.modi fiedcount()if i0 thenkk=messagebox(提示 ifdw_ worker.update()endendE.窗 IJ w_worker int n有未保kk=l存的信息是否保存?kk=l,question!,yesno!)thencount=dw_worker.modifidecount()ifcount0if if 的

27、closequery 事 件 count dw_worker.deletedcount()then+n=messagebox(提示是否保存未保存的数据?question!,yesnocancle!,1)choose case ncase 1/n=l yes,n=2 no,n=3 cancleif d w_worker.update()=1 thencommit using sqlca;return 0/return 0 是关闭;return 1 是取消关闭。else messagebox(提 示 保 存 失 败!)rollback using sqlca;return 1end ifcase

28、2return 0case 3return 1end chooseend if六、简述题(共21分)1、开发应用程序的一般步骤是什么?(4分)系统分析和系统设计阶段、系统开发和代码调试阶段、系统测试和功能调试阶段、生 成安装盘和交付应用阶段2、窗口对象有很多属性,请列出4个,并说明其作用。(4分)基本特征属性页:窗口名称、特征、外貌、风格、选单等设置。滚动条属性页:窗口滚动条及其滚动速度的设置。工具栏属性页:工具栏的位置和几何属性设置。其他属性页:窗口大小和窗口内光标形状的设置。3、请分别解释什么是物理数据库、ODBC数据源、DB Profile,他们之间的关系是什么?(5分)1、物理数据库:

29、这是一个磁盘文件,表格及数据等等全部在这个文件中日志文件:一个磁盘文件,一般以.log为扩展名,用来记载相关数据库的环境及其操 作。当将一台机器上的ASA数据库拷贝到另一台机器上时,应当删除相应的.log文件。删除一般不会影响数据库。2、ODBC数据源:这是为连接物理数据库而提供的一种标准接口。ODBC数据源指明了 数据库的基本属性。一个物理数据库可以定义若干个ODBC数据源。3、DB Profile:这是在PowerBuilder开发环境中操作数据库所需要的,它指明了使 用哪一个数据源。在用户的应用程序中不需要DB Profileo对于在本机创建的ASA数据库,系统将自动定义数据源和DB P

30、rofile,而在别的 机器上创建的ASA数据库或其他类型的数据库,则必须要定义ODBC数据源和DB Profileo连接成功后,就可以创建和管理表及数据等。4、利用retrieve函数和filter函数都可以达到查询数据的目的,简述它们查询数据的 过程,以及它们的区别。(4分)Retrieve:检索数据,即将数据库表中的数据在数据窗口控件中显示出来,返回值为long 型,表示检索到数据记录数。filter是过滤的函数。首先要用setfilter函数设置过滤条件,才能用filter函数执行。setfilter 函数的参数是字符型,里面的字符串用于设置过滤的条件,两个函数配合使用。至于返回值,返

31、回值为整型,如果返回1,表示此函数成功执行,如果返回-1表示执行过程中出现错误。5、数据窗口控件有很多事件,请列出4个事件名称,并描述每个事件的触发时机。(4分)C licked:单击事件,当用户用鼠标左键单击某个不可编辑字段或在数据窗口的字段间单击 时。C onstructor:构造事件,在窗口的open事件前发生。Destructor:紧接在窗口的C lose事件后面发生。DBError:由于调用数据窗口控件函数Retrieve()或Update()而导致某种数据库错误时 触发。Double C licked:当用户双击某个不可编辑字段或在数据窗口控件的工作区中双击时发生。DragDrop

32、:当把拖动着的对象放到数据窗口控件中时发生。Error:当发现数据窗口对象的数据或属性表达式有错时发生。DragWithin:在数据窗口中拖动某一对象时发生。6、PowerBuilder中有哪几个代词?各自的作用是什么?(4分)T his:代表窗口、用户对象、选单、应用对象或控件本身。Parent:指当前控件所在的窗口。Parentwindow:代表运行时选单所在的窗口,只能在选单的事件处理程序中使用。Super:在编写控件或者对象的子对象的程序的时候,可以调用祖先的程序,用户可以直接 使用祖先对象的名称调用它们,也可以使用Super来引用直接双亲。7、什么是主键、外键?并举例说明。(4分)主

33、键:是表中唯一识别一个记录的列或列的组合,即表中任意两行的主键值都不能相 同。能够作为主键的列,其NULL值必须为N0 一个表只能有-个主键。主键设置后,就不能再改变。外键:是那些与其他表的主键相对应的列,他被用来连接多个表,反应表之间的一种 隶属关系,保证数据的一致性。一个表可以有多个外键。8、简述数据窗口的四个缓冲区,各自的作用,以及它们之间的关系。(4分)主缓冲区、删除缓冲区、过滤缓冲区、原始缓冲区从数据库中检索到数据后,数据窗口根据不同情况把数据放置到不同的缓冲区。4个缓冲 区各司其职,协作完成数据的增、册人改,最后把结果提交给数据库管理系统。当使用数据控件窗II的Rrtrieve()

34、函数从数据库中提取数据后,数据被存入了数据窗 口的主缓冲区中,程序对数据窗口中数据的操作均在缓冲区中完成。当插入数据时,插入的数据也存放在主缓冲区。当删除数据行时,不管是使用DeleteRow()函数直接删除一行还是使用RowsMove()函数在主缓冲区之间移动的数据行,被删除 数据行从主缓冲区移动到删除缓冲区。当使用数据窗口控件的对象函数Update()将数据 窗口的修改发送到数据库管理系统后,被成功删除的记录均从删除缓冲区中清除。在保存数 据时一,删除缓冲区用于生成DELET E语句。过滤缓冲区用于保存那些满足数据源定义,而不 满足过滤条件的行。原始缓冲区保存数据窗口从数据库中检索出的原始数据。数据库 原始缓冲区一主缓冲区f删除缓冲区f过滤缓冲区

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服