试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省宁波市2017-2018学年高三上学期信息技术“十校联考”期末试卷

【加试题】小林和小王合作编写一个查询英语单词的VB程序:小林编写一个过程,单击“读取数据库”按钮Command1,从一个数据库中读取英语单词和中文含义,分别保存在a数组和b数组中。并显示在List1中;小王编写另一个过程,在文本框Text1中输入要查询的单词,单击“查询”按钮Command2,将查询单词的中文含义显示在Text2中,程序界面如图所示。

(1)、分析程序,“英语单词”和“中文含义”被保存在数据表中。
(2)、按此要求编写的程序如下,请在画线处填入合适的代码。

Const n=3500               ’存储单词的总数

Dim a(1 To n)As String      ’依次存储每个英语单词

Dim b(1 To n) As Strin9    ’依次存储每个英语单词的中文含义

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&“\dictionary1.accdb”

  strSQL=”select*from list”

  conn.Open

  Set rs.ActiveConnection=conn

  rs.Open strSQL

  num=0

  Do While Not rs.EOF

       num=num+1

       a(mum)=rs.Fields(“英语单词”)

       b(num)=rs.Fields(“中文含义”)

       rs.MoveNext

  Loop

  rs.Close

  conn.Close

  Set rs=Nothing

  Set conn=Nothing

  For i==1 To n

         List1.AddItem a(i)+“  ”+b(i)

  Next i

  End Sub

  Private Sub Command2_Click()

  Dim s As String

  S=Text1.Text

  If search(s)=-1 Then

          Text2.text=“找不到该单词”

  Else

          Text2.Text=   ①  

  End If

  End Sub

  Function search(key As String)As Integer

  Dim i,j As Integer

  Dim mid1,mid2 As Integer

  i=1:j=n

  search=-1

  Do While i<=j

       mid1=Int(j+(j—i)/3)

       mid2=Int(j-(j-i)/3)

       If key=a(mid1)Then

            search=mid1

            Exit Do

       ElseIf key<a(mid1)Then

            j=mid1-1

       ElseIf key=a(mid2)Then

            search=mid2

            Exit Do

       Elself key>a(mid2)Then

            i=mid2+1

       Else

            i=mid1+1

               ②  

       End If

 Loop

End Function

    ②  

举一反三
【加试题】某公司需要设计一个生日查询系统:输入某个日期,就能查出在这天生日的所有员工姓名,并统计出生人人数,以便于公司提前为员工准备生日礼物。员工信息存储在数据库文件“员工信息.mdb”的数据表“members”中,数据表“members”的结构如下:

VB应用程序界面如上图所示,在文本框text1中输入查询的日期(以月日形式,如0623),单击“查询”按钮,在列表框中显示所有这个日子出生的员工姓名(按姓名排序),并在Label3处显示员工数量,如果人数为0,则在列表框中显示“本天没有员工生日”。

解决此问题的VB程序如下,阅读程序并完成后面的问题。

‘定义存放员工姓名的数组na

Private Sub CmsqClick()

  Dim n As Integer , i As Integer , j As Integer

  Dim t1 As String

  ‘连接数据库获取数据

  Dim cn As new connection

  Dim rs As new recordest

  Dim str1 As String , str2 As String

     str1 =”driver=Microsoft access driver(*.mdb)”;dbq=”&app.path”&”员工信息.mdb”

     cn.open str1

     str2 = “select * form members where 生日 =’“ + text1.text + ”’”

     rs.open str2 , cn.adOpenDynamic ,adLockOptimistic

     n = 0

     Do While Not Rs.EOF

       n = n + 1

       na(i) = rs.Fields(“姓名”).value

       rs.MoveNext

     Loop 

     rs.close

     cn.close

‘按姓名排序

If n = 0 Then

  List1.AddItem “本天没有员工生日”

Else

  For i = 1 to n-1

    For j = 1 to n+1 Step -1

      If na(j) < na(j-1) Then

        t1 = na(j) :     ①      : na(j-1) = t1

      End If

    Next j

   Next i

   For i = 1 to n

     List1.AddItem     ②   

   Next i

   Label3.Caption = “这天共” + Str(n) + “位员工生日”

  End If

End Sub

返回首页

试题篮