36.為了找出QQ在線時間最長的5名學生,李風設計了一個排序程序.程序運行界面如圖所示: 左邊列表框List1中顯示排序前數據,單擊“排序”按鈕Command1,在右邊列表框List2中顯示在線時間從高到低排名前5名的數據.程序中數組a和數組b分別存儲學生的QQ昵稱和對應的QQ在線時間. 程序代碼如下: Const n As Integer=14'n為學生數 Dim a(1To n) As String'數組a用于存儲學生的QQ昵稱 Dim b(1To n) As Integer'數組b用于存儲學生的QQ在線時間 Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,t As String,p As Integer For i=1To n-1 For j=n To i+1Step-1 If ①Then t=a(j-1):a(j-1)=a(j):a(j)=t p=b(j-1):b(j-1)=b(j):b(j)=p End If Next j Next i For i=1To 5 List2.AddItem SpaceEx(a(i))+Str(b(i))+“分鐘“ Next i End Sub '以下函數用于在字符串后補插空格 Function SpaceEx(s As String) As String Dim t As String,d As Integer,i As Integer t=s:d=Len(s) For i=1To 5-d t=t+““ Next i SpaceEx=② End Function Private Sub Form_Load ( ) '此過程用于對數組a和數組b進行賦值,并顯示在List1中,代碼略 End Sub (1)解決此問題采用的算法是
37.張強喜歡研究汽車,他編寫了一個模擬選汽車牌照號碼的Visual Basic程序.程序運行界面如圖所示,單擊“開始”按鈕Command1后,隨機產生6個汽車牌照號碼,并按序顯示在列表框List1中,單擊其中的一個號碼后,該號碼顯示在文本框Text1中.每個號碼的后5位是從0-9、A-Z的36個字符中隨機產生. 程序代碼如下: Private Sub Command1_Click ( ) Dim p(1To 6)As String'數組p用于存儲6個車牌號碼 Dim i As Integer,j As Integer,t As Integer Dim c As String,s As String Randomize'初始化隨機數種子 List1.Clear'清除列表框List1中的內容 '隨機產生6個5位號碼 For i=1To 6 s=““ For j=1To 5 t=Int(Rnd( )*36)'產生一個0到35的隨機整數 If t<=9Then c=Chr(t+48)'將t轉換為相應的字符后賦值給c Else c=Chr(t-10+65)'將t轉換為對應的英文大寫字母后賦值給c End If s=① Next j p(i)=s Next i '對數組中的5位車牌號碼按字符串先后順序進行排序 For i=1To 5 k=i For j=i+1To 6 If p(k)>p(j) Then k=j Next j If i<>k then s=p(i):p(i)=p(k):p(k)=s Next i '在6個隨機號碼前添加“浙A” For i=1To 6 p(i)=“浙A“+p(i) List1.AddItem ② Next i End Sub '將選中的號碼顯示在文本框中 Private Sub List1_Click ( ) Text1.Text=List1.List(List1.ListIndex) End Sub (1)對候選字符串進行排序時采用的是