16.小吳為了研究排序后的各數(shù)據(jù)在排序前的位置,編寫了一個(gè) VB 程序,功能如下:在列表框 List1中顯示排序前數(shù)據(jù)(存儲(chǔ)在數(shù)組a中),單擊“排序”按鈕 Command1 后,在列表框 List2 中顯示排序后的數(shù)據(jù)及該數(shù)據(jù)在排序前的位置。程序運(yùn)行界面如圖所示: 實(shí)現(xiàn)上述功能的 VB 代碼如下,但加框處代碼有錯(cuò),請(qǐng)改正。 Dim d(1 To 12)As Integer'存儲(chǔ)排序前的數(shù)據(jù) Private Sub Form_Load ( ) d(1)=13:d(2)=49:d(3)=26:d(4)=35:d(5)=73:d(6)=15:d(7)=22:d(8)=86 d(9)=31:d(10)=10:d(11)=41:d(12)=44 Dim i As Integer,j As Integer For i=1 To 12 List1.AddItem d(i) Next i End Sub Private Sub Command1_Click ( ) Dim a(1 To 12)As Integer'存儲(chǔ)排序后的數(shù)據(jù) Dim b(1 To 12)As Integer'存儲(chǔ)排序前各數(shù)據(jù)所在位置 Dim c(1 To 12)As Boolean'數(shù)組 c 用來判斷排序的數(shù)據(jù)是否已篩選出 Dim i As Integer,k As Integer,j As Integer For i=1 To 12 a(i)=0 b(i)=0 c(i)=false Next i k=0 For i=1 To 12 For j=1 To 12 If Then‘(1) a(i)=d(j) k=j End If Next j ‘(2) c(k)=True Next i For i=1 To 12 List2.Addltem Str(a(i))+““+Str(b(i) Next i End Sub
17.小張利用 VB 給教務(wù)處老師編寫了“排監(jiān)考表”的小程序。該程序的執(zhí)行過程如下: ①從數(shù)據(jù)庫中讀取待排監(jiān)考的老師姓名信息存入數(shù)組 teachers,每個(gè)考試科目的學(xué)生數(shù)(新高考7選3,每個(gè)考試科目學(xué)生數(shù)不一樣)存入數(shù)組xkStudSum(其中xkStudSum(1)存放語文學(xué)科的學(xué)生數(shù),按“語文數(shù)學(xué)英語物理化學(xué)生物政治歷史地理技術(shù)”依此類推); ②根據(jù)每個(gè)試場(chǎng)的人數(shù)(30 人)計(jì)算出各個(gè)考試科目的試場(chǎng)數(shù)存入數(shù)組 xkSc(其中 xkSc(1)存放語文學(xué)科的試場(chǎng)數(shù),依此類推); ③將待排教師分配到每一個(gè)考場(chǎng),并存入數(shù)組scTeacher(每個(gè)老師只能排1場(chǎng),教師 數(shù)量100保證大于所有的試場(chǎng)數(shù)); ④按考試科目將監(jiān)考教師姓名顯示在list1中。運(yùn)行界面如圖所示: (1)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)完善橫線處的代碼。 Const XKMC=“語文數(shù)學(xué)英語物理化學(xué)生物政治歷史地理技術(shù)“ Dim xkStudSum(1 To 10)As Integer'各個(gè)考試科目學(xué)生數(shù) Dim teachers(1 To 100)As String'存放待排監(jiān)考的教師姓名 Dim scTeacher(1 To 100)As String'存放已排監(jiān)考的教師姓名 Dim xkSc(1 To 10)As Integer'各個(gè)學(xué)科試場(chǎng)數(shù) Private Sub form_Load ( ) ‘本過程從數(shù)據(jù)庫中讀取各考試科目學(xué)生數(shù)并存放在數(shù)組 xkStudSum‘讀取教師姓名并存放在數(shù)組teachers ‘本過程代碼略 End Sub Private Sub Command1_Click ( ) Dim index As Integer Dim totalSc As Integer‘存放總試場(chǎng)數(shù)量 Dim book(1 To 100)As Boolean Randomize For i=1 To 10 xkSc(i)=①
totalSc=totalSc+xkSc(i) Next i For i=1 To totalSc t=Int(Rnd
*100)+1‘隨機(jī)生成待排監(jiān)考老師的編號(hào) If not book(t) Then scTeacher(i)=teachers(t) book(t)=True Else ②
End If Next i ‘按考試科目顯示監(jiān)考老師 For i=1 To 10 s=Mid(xkmc,2*i-1,2)+“:“ For j=1 To xkSc(i) ③
s=s+scTeacher(index)+“,“ Next j List1.AddItem s Next i End Sub (2)根據(jù)問題描述和分析代碼,寫出數(shù)組scTeacher中存放“數(shù)學(xué)學(xué)科”第2個(gè)監(jiān)考教師姓名的下標(biāo)的vb表達(dá)式