18.小林和小王合作編寫了一個查詢英語單詞的VB程序:小林編寫一個過程,單擊“讀取數(shù)據(jù)庫”按鈕Command1,從一個數(shù)據(jù)庫中讀取英文單詞和中文含義,分別保存在a數(shù)組和b數(shù)組中,并顯示在List1中;小王編寫另一個過程,在文本框Text1中輸入要查詢的單詞,單擊“查詢”按鈕Command2,將查詢單詞的中文含義顯示在Text2中,程序界面如圖所示。 Constn=3500′存儲單詞的總數(shù) Dim a(1 To n)As String′依次存儲每個英語單詞 Dim b(1 To n)As String′依次存儲每個英語單詞的中文含義 Private Sub Command1_Click ( ) Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String conn.Connectionstring=″Provider-Microsoft.ACE.OLEDB.12.0;Data source=″&App.Path& ″\dictionary l.jye.ai″ strSQL=″select*from list″ conn.Open Set rs.ActiveConnection=conn rs.Open strSQL num=0 Do While Not rs.EOF num=num+1 a(num)=rs.Fields(″英語單詞″) b(num)=rs.Fields(″中文含義″) ①
Loop rs.Close conn.Close Set rs=Nothing Set conn=Nothing Fori=1Ton Listl.Addltem a(i)+““+b(i) Nexti End Sub Private Sub Command2_Click ( ?。?br />Dims As String,t as integer s=Text1.Text t=search(s) If t=-1 Then Text2.text=″找不到該單詞″ Else Text2.text=②
End If End Sub Function search(key As String)As Integer Dim i,jAs Integer Dim mid1,mid2As Integer i=1:j=n search=-1 Do Whilei<=j mid1=Int(i+j-i)/3) mid2=Int(j(j-i)/3) If key=a(mid1)Then search=mid1 Exit Do Elself key<a(midl)Then j=midl-1 Elself key=a(mid2)Then search=mid2 Exit Do Elself key>a(mid2)Then Else i=mid1+1 ③
End If Loop End Function (1)分析程序,“英語單詞”和“中文含義”被保存在