某地區(qū)進(jìn)行了4三個年級技術(shù)聯(lián)考,現(xiàn)要求按學(xué)校分類對高三年級技術(shù)成績降序排序后輸出。小王編寫了一個VB程序?qū)崿F(xiàn)上述要求。先單擊“統(tǒng)計”按鈕Command1,讀取數(shù)據(jù)庫中每位學(xué)生的學(xué)校、年級、姓名和成績等信息,進(jìn)行統(tǒng)計分析后,并在列表框List2中分學(xué)校按成績降序輸出。程序運行時界面如圖所示。
(1)根據(jù)圖中示例數(shù)據(jù),采用選擇排序算法分別對學(xué)校B的數(shù)據(jù)進(jìn)行排序,整個排序過程中,數(shù)組元素之間的比較次數(shù)是
B
B
(單選,填字母:A.37×19 次/B.37×18 次/C.36次)。
(2)請在橫線處填入合適的代碼。
Const rs=480'聯(lián)考參加學(xué)生總?cè)藬?shù)rs
Const no=3'聯(lián)考參加學(xué)校數(shù)no
Dim school(1 To rs) As String'存儲學(xué)生的學(xué)校
Dim nj(1 To rs) As String'存儲學(xué)生的年級
Dim xm(1 To rs) As String'存儲學(xué)生的姓名
Dim cj(1 To rs) As Integer'存儲學(xué)生的成績
Dim p(1 To rs) As Integer'索引數(shù)組
Dim num(1 To no) As Integer
Dim n As Integer
Function id(s As String) As Integer
'根據(jù)學(xué)校名稱轉(zhuǎn)換為對應(yīng)的數(shù)字ID號,代碼略
End Function
Private Sub form_load ( )
'本過程讀取每位學(xué)生的學(xué)校、年級、姓名和成績的數(shù)據(jù)分別存儲在數(shù)組school,nj、xm 和 cj 中,并在 List1 中顯示學(xué)生成績數(shù)據(jù)和每個學(xué)校的高三人數(shù),代碼略;
End Sub
Private Sub Command1_Click ( ?。?br />Dim i As Integer,j As Integer,k As Integer,t As Integer,pos As Integer
Dim b(1 To no) As Integer,c(1 To rs) As Integer,q(1 To rs) As Integer
k=0
For i=1 To n
If nj(i)=″高三″Then
k=k+1
p(k)=①
i
i
num(id(school(i)))=num(id(school(i)))+1
End If
Next i
'在 List1 中顯示各學(xué)校的高三人數(shù),代碼略;
c(1)=1
For i=2 To no
c(i)=c(i-1)+num(i-1)
Next i
For i=1 To k
t=id(school(p(i)))
②
c(t)=c(t)+1
Next i
'----按學(xué)校分類,從高分到低分排序后輸出-----
pos=1
For i=1 To no
For j=pos To c(i)-2
For m=c(i)-1 To j+1 Step-1
If
③ Then
temp=q(m):q(m)=q(m-1):
④End If
Next m
Next j
pos=c(i)
Next i
For i=1 To k
List2.AddItem school(q(i)) &″″& xm(q(i)) &″″& nj(q(i)) &″″& cj(q(i))
Next i
End Sub