【简答题】
试题六(共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