题库 题库

【简答题】

试题六(共15分)
    阅读以下应用说明以及Visual Basic程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[应用说明]
某电视台拟开发应用程序来显示戏曲大赛中1~4号四位选手决赛的现场投票情况。该程序从现场观众中(不超过2000人)每0.5秒收集一次对这四位选手的支持票数,并在屏幕上动态显示这四位选手的票柱(以高度反映票数)与累计得票数,如图6-1所示。投票过程限时30秒,每名观众最多为1名选手投票。投票结束后系统通过比较各位选手的累计得票数,显示决赛结果:“*号胜出”(如有单个冠军)或“继续进行PK”(如有多人获得相同的最高票数)。
   
图6-1
在开发该程序的过程中创建的主要控件及其初始属性值说明如下:
   
该程序中设置公共变量T动态记录投票时间。四个形状ShpM(1 to 4)动态增长的底线固定。
[Visual Basic程序代码]
Dim T As Integer      '声明全局变量
Private Sub Form_Load()
  For i = 1 To 4
    ShpM(i).Top = 2000 :  ShpM(i).Height = 0  ' 初始票柱高度为0
    TxtM(i).Text = 0
  Next i
  Tim1.Enabled = False : Tim1.Interval = 500 : T = 0
End Sub
 
Private Sub CmdStart_Click()
  Tim1.Enabled = True                  '开始投票
  CmdStart.Enabled = False
End Sub
 
Private Sub Tim1_Timer()
  Dim n(1 To 4) As Integer              ' n(1 to 4)为每次收集的票数
Dim i As Integer, j As Integer 
Dim G As Integer                      ' G用于计算最高票数
  Dim ng As Integer                    ' ng用于计算冠军个数
  For i = 1 To 4
    n(i) = …                            ' 收集i号选手的票数,此处省略
    TxtM(i).Text = TxtM(i).Text + n(i)  ' 累计票(VB能进行自动转换)
    ShpM(i).Top = ShpM(i).Top - n(i)
    ShpM(i).Height = ShpM(i).Height +  (1)    ' 算出票柱高度
  Next i
  T = T + 1                                  ' 计时
  If T = 60 Then                            ' 投票时间到
      (2)                                  ' 停止数据收集处理
    ng = 1                               
    G = TxtM(1).Text                     
    For i = 2 To 4
      If G < TxtM(i).Text Then
          G = TxtM(i).Text 
ng =  (3)     
j = i
      Else
          If G = TxtM(i).Text  Then  ng =  (4)      ' 计算冠军个数
      End If
    Next i
    If ng = 1 Then
      txtResult.Text =  (5)                        ' 单个冠军结果
    Else
      txtResult.Text = "继续进行PK"     
    End If
  End If
End Sub

参考答案

(1)n(i)
(2)Tim1.Enabled = False
(3)1
(4)ng + 1
(5)Str$(j) + "号胜出",或Str(j) + "号胜出"

相关试题