16.某人編寫了一個VB程序對一組隨機數進行排名.程序運行時,產生10個隨機整數,并在列表框List1中顯示,單擊按鈕Command1,在列表框List2中顯示降序排序后數據及名次,若數值相同則名次相同.實現上述功能的VB代碼如下,但加框處代碼有錯,請改正. Const n=10 Dim d(1 To n)As Integer,pm(1 To n)As Integer Private Sub From-Load( ) '代碼略,本過程功能:產生10個隨機整數,存儲在數組變量d中并在列表框'List1中顯示 End Sub Private Sub Command_Click ( ) Dim i As Integer,j As Integer,k As Integer,t As Integer i=1 Do While i<=n-1 k=i For j=i+1 To n IfThen k=j'(1) Next j If i<>k Then t=d(i):d(i)=d(k):d(k)=t i=i+1 Loop pm(1)=l For i=2 To n IfThen'(2) pm(i)=i Else pm(i)=pm(i-1) EndIf Next i For i=1 To n List2.AddItemStr(i)+““+Str(d(i)))+““+“第“+Str(pm(i)))+“名“ Next i End Sub (1)處應改為
. (3)請在畫線處填入合適的代碼. Const max=10 00 Dim n As Integer'存放學生人數 Dim sfzh(1 To max) As String, xm(1 To max) As String '數組sfzh、xm分別存放學生身份證號、姓名 Dim bj(1 To max) As Integer,flash(1 To max) As Boolean '數組bj、flash分別存放學生班級、身份證校驗結果 Dim cw(1 To 15)As Integer'數組cw存放各班身份證號出錯人數 Function check(x As String ) As Boolean'本函數功能:校驗身份證號x,若 '校驗通過返回True;否則返回False Dim i As Integer,sum As Integer,xh As Integer,jym As String Dim a(1 To 18)As Integer,w(1 To 18)As Integer jym=“10X98765432“:sum=0 For i=18 To 2 Step-1 a(i)=Val(Mid(x,19-i,1)) Next i For i=18 To 1 Step-1 w(i)=2^(i-1)Mod11 Next i For i=2 To 18 sum=sum+a(i)*w(i) Next i xh=sum Mod 11 If
Then check=True Else check=False End Function Private Sub From-Load( ) '本過程從數據庫中讀入指定數據到數組sfzh、xm、bj,并在List1中顯示 Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.ConnectionString=“provide=microsoft.ace.jye.ai.12.0;data source=“+App.Path+“\student.jye.ai“ conn.Open Set rs.ActiveConnection=conn rs.Open“select*from stu-info“ '本過程其他語句略,學生人數存變量n,數組cw各元素初值置為0 End Sub Private Sub Command1_Click ( ) Dim i As Integer,j As Integer For i=1 To n If
Then flag(i)=True Else flag(i)=False Next i For i=1 To 15 For j=1 To n If bj(j)=i And flash(j)=Flash Then
Lise2.AddItem sfzh(j)+““+xm(j) EndIf Next j If cw(i)>0 Then Lise2.AddItem Str(i)+“班共有以上“+Str(cw(i))+“個身份證號錯誤“ Lise2.AddItem““ EndIf Next i End Sub (1)①處應填