问答题
从下列3道试题(试题5至试题7)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
阅读以下应用说明及Visual Basic程序,根据要求回答问题1至问题2。
[说明]
某Visual Basic应用程序用于监测某种锅炉设备内液面高度(0~50cm),其运行窗口界面如图4-16所示。
问答题
[问题1]
请根据[说明]和图4-16所示的显示结果,将[说明]中(1)空缺处的内容和[Visual Basic程序]中(2)~(9)空缺处的程序语句填写完整。
【正确答案】
【答案解析】在Visual Basic程序中,定时器的定时间隔属性(Interval)的单位时间是:毫秒(ms)。由题干关键信息“应用程序中每隔3秒算出曲线点(x,y)…”可知,定时器TimT的定时间隔属性(Interval)值应
设置为3000毫秒,即(1)空缺处所填写的内容是“3000”。
在[暂停]按钮(cmdStop)的CmdStop_Click()事件过程中,语句“TimT.Enabled=False”使得定时器不起作用。而本应用程序是利用定时器的定时间隔来计算曲线点,在按钮[开始](cmdStart)的CmdStart_Click()事件过程中,需要启用定时器,即(3)空缺处所填写的属性值是“True”。
在定时器timT_Timer()事件过程中,利用语句“WH=Int(Rnd*51)”随机模拟实时检测到的锅炉设备的液面高度(0cm~50cm)。用随机数模拟实时检测数据是常用的方法。Rnd是由计算机产生的均匀分布在(0,1)区间内的伪随机数。每调用一次Rnd就会产生一个新的随机数。随机取若干个数据,观察其分布特性,就会发现其在(0,1)中比较均匀分布(不会过于集中在某个小段)。从而,Rnd*51产生的随机数均匀分布于(0,51),取整数部分Int(Rnd*51)后,所产生的随机数均匀分布于0,1,…,50之间。WH=Int(Rnd*51)均匀分布于0,1,…,50之间,因此,程序中可以用WH值来模拟实时检测到的液面高度。
屏幕上的液面高度计形状控件shpMeter是固定的,其高度由其Height属性决定(shpMeter.Height),其顶部离屏幕上边的距离由其Top属性决定(shpMeter.Top)。由于液面高度计形状的属性FillsStyle默认为透明,因此水银柱(shpT)高度的变化在shpMeter中将实时可见。
水银柱(shpT)的底部应固定在液面高度计(shpMeter)的底部,水银柱的高度应随液面高度WH的变化而改变。由题干关键信息“矩形形状shpT(水银柱)的Visible属性初始设置为不可见”可知,程序设计时要求:尚未开始检测液面高度时,水银柱应不可见;启动检测后,当液面高度WH=0时,水银柱的高度为0;当液面高度WH=50时,水银柱的高度应等于液面高度计的高度:对于其他液面高度,水银拄的高度应按线性规律变化。水银柱形状shpT在屏幕上的位置取决于表4-13所列的3个属性。
{{B}}表4-13 影响水银柱属性表{{/B}}
属性
说明
shpT.Top
顶部位置(随液面高度WH的变化而变化)
shhpT.Height
高度H(随液面高度WH的变化而变化)
shp.Left
左边位置(固定不变)
(6)空缺处所在语句要求算出水银柱的高度,而水银柱的高度H应是液面高度WH的线性函数,其端点值如表4-14所示。
                                      {{B}}表4-14 水银柱高度值与液面高度值对应表{{/B}}
液面高度WH
水银柱高度H
0
0
50
shpMeter.Height
若按线性比例,由表4-14可得:

解得,。因此(6)空缺处应填入“WH/50”。
(7)空缺处所在语句要求算出水银柱的顶部位置值。如图4-16所示,水银柱的顶部离屏幕上边的距离(shpT.Top)应等于液面高度计离屏幕上边的距离(shpMeter.Top)加上水银柱顶部到液面高度计顶部的距离,而后者就是液面高度计的高度(shpMeter.Height)与水银柱的高度(H)之差,即
ShpT.Top=shpMeter.Top+shpMeter.Height-H
因此(7)空缺处应填入“shpMeter.Top+shpMeter.Height-H”。
根据题干的说明可得,图片框picCurve中定义的坐标系统如图4-20所示。它与直观见到的屏幕情况不同,点坐标也不是像素值。
问答题
[问题2]
若要在图4-16窗口内新增一个[帮助]按钮,单击该按钮就会弹出一个帮助对话框(另一名为frm002的窗体),用户必须在其中做出响应,程序才能继续运行。请将以下该命令按钮的单击事件过程中的程序代码填写完整。
Private Sub CmdHelp_C1ick()
{{U}} (10) {{/U}}
End Sub
【正确答案】
【答案解析】若要在图4-16窗口内新增一个[帮助]按钮,单击该按钮就会弹出一个帮助对话框(另一窗体frm002),用户必须在其中做出响应,程序才能继续运行。该命令按钮的单击事件过程中的部分程序代码如下。 Private Sub CmdHelp_C1ick() Frm002.Show vbModel End Sub