16.某校質量檢測共n名學生參加,李老師編寫了一個試場號座位號編排軟件,輸入選考科目就能根據該選考科目選考學生的名單編排試場.具體編排規則如下:讀取數據庫中學生的學號、姓名以及選考組合,和隨機產生一個3位數,根據這個3位數和選考科目,排定該選考科目的試場,其中a(i)用于存放第i位學生的學號,b(i) 用于存放第i位學生的 姓名,c(i) 用于存放第i位學生的選考組合,d(i)用于存放第i位學生的3位隨機數. 程序界面如圖所示,在文本框Text1中輸入選考科目,單擊“開始編排”按鈕(Command1),根據產生的隨機數和選考科目,進行試場編排,每30個人一個試場.試場顯示格式一律為:試場號-座位號. 實現上述功能的VB代碼如下,但加框處代碼有錯,請改正. Dim n As Integer'考生數 Dim a(1000)As String,b(1000)As String,c(1000)As String Dim d(1000)As Integer,e(1000)As String Private Sub Form_Load ( ) '讀取數據庫中學生的信息,分別將學號,姓名,選考組合和隨機數存入a(i)、b(i)、c(i) d(i)中 End Sub Private Sub Command1_Click ( ?。?br /> Dim km As String km=Mid(Text1.Text,1,1) xk=0'選考實際人數 For i=1 To n If km=Mid(c(i),1,1)or km=Mid(c(i),2,1)or km=Mid(c(i),3,1)Then xk=xk+1 a(xk)=a(i) b(xk)=b(i) c(xk)=c(i) d(xk)=d(i) End If Next i For i=1 To xk-1 k=i For j=i+1 To xk If Then k=j Next j If k<>i Then t=a(k):a(k)=a(i):a(i)=t t=b(k):b(k)=b(i):b(i)=t t=c(k):c(k)=c(i):c(i)=t t=d(k):d(k)=d(i):d(i)=t End If Next i For i=1 To xk e(i)= List1.AddItem a(i)+““+b(i)+““+c(i)+““+Str(d(i))+““+e(i) Next i End Sub.
. Dim n As Integer'考生數 Dim a(1000)As String,b(1000)As String Dim xk(1 To 3)As String Private Sub Command1_Click ( ?。?br /> Dim x As string s1=“政治歷史地理物理化學生物技術“ Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.ConnectionString=“provider=Microsoft.ACE.OLEDB.12.0;data source=“& App.Path &“\students.jye.ai“ conn.Open Set rs.ActiveConnection=conn rs.Open“學生信息“ n=0 m=0 Do While Not rs.EOF'到記錄集最后一條記錄后退出循環 n=n+1'計數 a(n)=rs.Fields(“學號“) b(n)=rs.Fields(“姓名“) rs.MoveNext'移動到下一條記錄 Loop rs.MoveFirst x=Text1.Text pos=① If pos>0 Then rs.Move pos zh=rs.Fields(“選考組合“) Text2.Text=b(pos) Text3.Text=zh Text4.Text=rs.Fields(“語數外“) For i=1 To 3 xk(i)=Mid(zh,i,1) For j=1 To 13 Step 2 If ②Then Label(i).Caption=Mid(s1,j,2) Text5(i).Text=rs.Fields(xk(i)) End If Next j Next i Else Text2.Text=“找不到“ End If End Sub
Function Search(Key As String) As Integer Dim i As Integer,j As Integer i=1 j=n Do While i<=j m=Fix((i+j)/2) If Key=Val(a(m)) Then Search=m Exit Function ElseIf a(m)>Key Then j=m-1 Else i=m+1 End If Loop Search=0 End Function.