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