Dim n As Integer,a(100)As Integer,max As Integer
Private Sub Form_Load() ‘读取原始数据
Dim conn As New ADODB.Connection.rs As New ADODB.Recordset
Dim i As Integer
conn.ConnectionString=”Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=”&App.Path&。”\student.accdb”
conn.Open
Set rs.ActiveConnection=conn
rs.Open“SELECT*FROM DF”
i=0:max=0
Do While Not rs.EOF
i=i+1:n=i
a(i)= ‘①
If a(i)>max Then max=a(i)
rs.MoveNext
Loop
rs.Close:conn.Close
End Sub
Private Sub Command1_Click() ‘去重复值排序
Const t=max
Dim i As Integer,b(t)As Integer
For i=1 To n
B(a(i))=b(a(i))+1
Next i
For i=1 To t
If Then List1.AddItem Str(t-i+1) ‘②
Next i
End Sub
①处加框代码应改为;
②处加框代码应改为。
该程序采用两种查询方式:
⑴按的汽车的排量查询信息
在文本框Text1中输入需要的汽车的排量,单击Command1按钮,在列表框List1中显示等于该排量汽车的相关车辆信息。
⑵按车主查询信息
在文本框Text1中输入车主信息(手机号码或姓名),单击Command2按钮,在列表框List1中显示车辆信息。
该程序运行时的界面如图2所示。
实现上述功能的VB程序如下,请回答下列问题:
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
① ② ③
图 a
小李编写VB程序实现上述功能:在列表框List1中按货物顺序显示其重量和货架号,在文本框Text1中输入机器人送货趟数,单击“结果”按钮Command1后,标签Label3和Label4中分别显示要求机器人可承受的最大载重最小值和送货总行程。程序运行界面如图b所示。
图 b
请回答下列问题:
Const num = 8 '货物数量
Const shelf = 10 '货架数量,1-9号货架可供存储货物,第10号货架用作机器人装货点
Dim g(1 To num) As Integer '各货物的重量
Dim s(1 To num) As Integer '各货物的货架号
Private Sub Form_Load()
'从数据库中读入num件物品的重量、货架号,分别存储在数组g、s中
'将各物品数据显示在list1中,代码略。
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer, max As Integer, total As Integer
Dim head As Integer, tail As Integer, dis As Integer, part As Integer
total = g(1)
For i = 2 To num
If g(i) > max Then max = g(i)
total = total + g(i)
Next i
n = 0
For i = max To total
part = 0: n = 0: head = 1: dis = 0
For j = 1 To num
part = part + g(j)
If part > i Then
n = n + 1: j = j - 1: tail = j
dis = dis + tran(head, tail)
part = 0: head = tail + 1
End If
Next j
If part > 0 Then
n = n + 1
dis = dis + tran(head, tail)
End If
If n <= Val(Text1.Text) Then Exit For
Next i
Label3.Caption = "机器人可承受的最大载量至少为:" + Str(i)
Label4.Caption = "机器人完成各趟任务的总行程为:" + Str(dis)
End Sub
Function tran(p As Integer, q As Integer) As Integer '计算机器人每趟按装货倒序配送并回到A 处的行程
Dim temp As Integer, t1 As Integer, t2 As Integer, k As Integer
temp = 0: t2 = shelf
For i = q To p Step -1
t1 = t2: t2 = s(i)
k =
If k > (shelf + 1) \ 2 Then k = shelf - k
temp = temp + k
Next i
If t2 <= shelf \ 2 Then temp = temp + t2 Else temp = temp + shelf - t2
tran = temp
End Function
下列说法正确的是( )
①开启杀毒软件的自动运行及定时查杀功能
②用浏览器直接打开陌生网址
③将管理员密码修改为便于记忆的“123456”等字符
④使用Windows操作系统自动更新功能进行软件更新,修复系统漏洞