试题

试题 试卷

logo

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

浙江省台州市2017-2018学年高三上学期信息技术期末质量评估卷

【加试题】张凡编写了二一租赁公司车辆信息查询的摆序,其中车辆的基本信息存放在数据文件“car.accdb”中的qicheinfo表,如图1所示。

该程序采用两种查询方式:

⑴按的汽车的排量查询信息

在文本框Text1中输入需要的汽车的排量,单击Command1按钮,在列表框List1中显示等于该排量汽车的相关车辆信息。

⑵按车主查询信息

在文本框Text1中输入车主信息(手机号码或姓名),单击Command2按钮,在列表框List1中显示车辆信息。

该程序运行时的界面如图2所示。

实现上述功能的VB程序如下,请回答下列问题:

(1)、当前数据库中共有条车辆信息可供查询。
(2)、请在画线处填入合适的代码。

Dim id(1 To 1 000)As Integer    ‘存储记录的ID

Dim s(1 To 1 000)As String      ‘存储车牌号

Dim D(1 To 1 000)As Single      ‘存储排量

Dim cz(1 To 1 000)As String      ‘存储车主信息

Dim zt(1 To 1 000)As String       ‘存储车辆状态

Dim n As Integer,key As String

Private Sub Form_Load()

    Dim conn As New ADODB.Connection

    Dim rs As New ADODB.Recordset

    conn.ConnectionString=“provider=Microsoft.Jet.OLEDB.4.0;Data Source=“+App.Path+”\car.mdb”

    conn.Open

    Set rs.ActiveConnection=conn

    Dim sq1 As String

    sq1=”SELECT*FROM qicheinfo”

    rs.Open sq1

    rs.MoveFirst

    Do While Not rs.EOF

         n=n+1

         id(n)=rs.Fields(“ID”):s(n)=rs.Fields(“车牌号”)

         p(n)=rs.Fields(“排量”):cz(n)=rs.Fields(“车主”)

         zt(n)=rs.Fields(“状态”)

         rs.MoveNext

    Loop

End Sub

‘按排量查询车辆信息

Private Sub Command1_Click()

 key=Val(Text1.Text)

 If px(1)=True Then

      List1.Clear

      x=0

      For i=1 To n

          If p(i)>=key Then

          List1.AddItem id(i)&“”& s(i)&“”&.p(i)&“”&.cz(i)

          &“”& zt(i)

    ①    

          End If

      Next i

      If x>0 Then

          List1.AddItem“共找到”+Str(x)&.”条记录!”

      Else

          List1.Additem”没找到相关信息!¨

      End If

    End If

End Sub

‘按车主信息查询车辆信息

Private Sub Command2_Click()

    List1.Clear

    Key=Text1.Text

    If px(2) Then

       i=chazhao(key)

       If i>0 Then

  List1.AddItem id(i) &””& s(i) &””&p(i)&””& cz(i)” &”

 “&.zt(i)

        Else

             List1.AddItem”没找到相关信息!”

        End If

    End If

End Sub

Private Function px(m As Integer)As Boolean

    Dim flag As Boolean

    If m=1 Or m=2 Then

       px=True

       flag==False

       For pa=1 To n-1

           For pb=n To pa+1 Step-l

               If m=1 Then flag=p(pb) <p(pb-1)

               If m=2 Then flag=cz(pb)<cz(pb-1)

               If flag Then

                  tid=id(pb):id(pb)=id(pb-1):id(pb-1)=tid

                  ts=s(pb):s(pb)=s(pb-1):s(pb-1)=ts

                  tp=p(pb):p(pb)=p(pb-1):p(pb-1)=tp

                  tz=cz(pb):cz(pb)=cz(pb-1):cz(pb-)=tz

                  tzt=zt(pb):zt(pb)=zt(pb-1):zt(pb-1)=tzt

    ②   

               End If

          Next pb

      Next pa

    Else

      px=False

    End If

 End Function

 Private Function chazhao(key As String)As Integer

    Dim mk As Integer

    I=1:j=n

    Do While i<j

        mk=(i+j)\2

        If cz(mk)=key Then

    ③   

            Exit Do

        Elself key<cz(mk)Then

            j=mk-1

        Else

            i=mk+1

        End If

    Loop

End Function

 ② ③ 

举一反三
某仓库货物查询系统,数组id保存货物编号(货物编号已经按照从小到大的顺序保存),数组n保存货物名称,数组c保存货物数量。数组中的数据信息一一对应。该系统提供3种查询方式,查询优先级最高的是按编号查询,其次是按名称查询,最低的是按数量查询(在输入多个查询条件的情况下,只按照优先级高的条件进行查询,其中按数量查询可以查询到所有货物数量小于输入值的结果)并将查询结果在list1中显示。程序界面如图2-1所示。

部分程序代码如下:

Public number As String  '货物编号

Public na As String  '货物名称

Public co As String  '货物数量

Private Sub Command1Click()

Dim flag As Integer  '查询结果标志

number = Text1.Text

na = Text2.Text

co = Text3.Text

If (number = "" And na = "" And co = "") Then MsgBox ("你还没有输入查询条件") ’第一种情况

If number <> ""Then ’第二种情况

flag = searchnum(1, n)  'n 表示总的货物种类数量

List1.AddItem id(flag) + n(flag) + c(flag)

  If flag = -1 Then MsgBox ("查询无结果,检查是否输入有误")

End If

If na <> "" Then  ‘第三种情况

flag = searchna(1, n)  'n 表示总的货物种类数量

List1.AddItem id(flag) + n(flag) + c(flag)

  If flag = -1 Then MsgBox ("查询无结果,检查是否输入有误")

End If

If co <> "" Then ‘第四种情况

flag = searchco(1, n)

If flag = 0 Then MsgBox ("查询无结果,检查是否输入有误")

End If

End Sub

Function searchnum(i, j) As Integer  '按编号查询函数

Dim m As Integer

Do While i <= j

m = Fix((i + j) / 2)

If id(m) = number Then

searchnum = m: Exit Function  '查询到结果返回值并结束该函数

End If

If id(m) > number Then         Else i = m + 1

Loop

searchnum = -1

End Function

Function searchna(i, j) As Integer  '按名称查询函数

For i = 1 To j Step 1

If n(i) = na Then searchna = i: Exit Function

Next i

searchna = -1

End Function

Function searchco(i, j) As Integer  '按货物数量函数

Dim f As Integer

f = 0

For i = 1 To j Step 1

If        Then

List1.AddItem id(i) + n(i) + c(i)

f = 1

End If

Next i

searchco (f)

End Function

回答下列问题:

返回首页

试题篮