解題程式
Option Base 1 '宣告陣列指標由1開始
Sub swap(X, Y) '定義一個有兩個參數的副程式,X和Y互換
Z = X
X = Y
Y = Z
End Sub
Private Sub Command1_Click()
Dim Q(5), s(4) '宣告陣列變數Q(5)預備讀取外部檔案的5個欄位,s(4)四種車型的車流量
Class = Array("大型車", "中型車", "小型車", "公務車") '宣告陣列變數,並直接指定車輛種類
Open "A:\940307.SM1" For Input As #1 '開啟外部檔案
Do While Not EOF(1) '判讀是否為檔案結尾
Input #1, Q(1), Q(2), Q(3), Q(4), Q(5) '讀取外部檔案的資料
For i = 1 To 4
s(i) = s(i) + Q(i + 1) '計算各種車輛的車流量
total = total + s(i) '計算全部車輛的總車流量
Next i
Loop '讀檔迴圈結尾
For i = 1 To 3
For j = i + 1 To 4
If s(i) > s(j) Then '比大小如果後者比前者小則
Call swap(s(i), s(j)) '呼叫副程式Swap,車流量互換
Call swap(Class(i), Class(j)) '呼叫副程式Swap,車種名稱互換
End If
Next j
Next i
Frame2.Caption = "依車輛種類" '將結果框的名稱改為依車輛種類
For i = 1 To 4
A(i - 1) = Class(i) '文字標籤A改為車類種類的名稱
C(i - 1).Width = 60000 * s(i) / total '設定圖條的長度
B(i - 1) = Format(s(i), "###,###") '設定車流量的數字加上千分位
B(i - 1).Left = C(i - 1).Left + C(i - 1).Width + 100 '設定車流量數字擺放的位置
Next i
'車輛類別只有四種所以將沒用到的標籤及圖條隱藏起來
For i = 5 To 7
A(i - 1).Visible = False
B(i - 1).Visible = False
C(i - 1).Visible = False
Next i
Close #1
End Sub
Private Sub Command2_Click()
'宣告陣列變數Q(5)讀取外部檔案的5個欄位,s(7)星期別的車流量
Dim Q(5), s(7)
'宣告陣列,並直接指定星期別至陣列中
week = Array("一", "二", "三", "四", "五", "六", "日")
Open "d:\940307.SM1" For Input As #1 '開啟外部檔案
Do While Not EOF(1) '判斷是否為檔案結尾
Input #1, Q(1), Q(2), Q(3), Q(4), Q(5) '讀取外部變數
i = (InStr("MOTUWETHFRSASU", Mid(Q(1), 1, 2)) + 1) / 2 '判斷星期幾並指定指標變數
For j = 2 To 5 '計算某一天的車流量
s(i) = s(i) + Q(j)
Next j
total = total + s(i) '計算總車流量
Loop
Frame2.Caption = "依星期別" '將結果框的名稱改為依星期別
For i = 1 To 7
A(i - 1) = "星期" & week(i) '文字標籤A改為星期別名稱
C(i - 1).Width = 20000 * s(i) / total '設定圖條的長度
B(i - 1) = Format(s(i), "###,###") '設定車流量的數值加上千分位
B(i - 1).Left = C(i - 1).Left + C(i - 1).Width + 100 '設定車流量數字擺放的位置
A(i - 1).Visible = True '將隱藏的標籤及圖條顯現出來
B(i - 1).Visible = True
C(i - 1).Visible = True
Next i
Close #1 '關閉檔案
End Sub
執行畫面