题库 高中信息

题干

编写VB程序,实现如下功能:在文本框Text1中输入一个整数,单击“查找删除”按钮Command1,采用对分查找法在数组A(从小到大排列,并显示在标签Label1中)中查找该数。若找到,则从数组A中删除该数(该数后面的数组元素都前移一位),并在标签Label2中显示删除后的结果(运行效果如图所示);否则,在标签Label2中显示“该数没有找到”。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim A(1 To 10) As Integer ’用于保存10个按从小到大顺序排列的整数
’Form_Load事件过程产生10个整数,按升序保存在数组A中,并在标签Label1中显示Private Sub Form_Load()
’代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer,j As Integer,m As Integer,k As Integer
Dim x As Integer,f As Boolean  ’变量f用于标记是否在数组中找到x
x=Val(Text1.Text)
i=1:j=10
f=False
Do While(i<=j)And (f=False)
m=Int((i+j)/2)
If A(m)=x Then f=True
If Then i=m+1 Else j=m-1’(1)
Loop
If f=True Then
For k=m To 9
’(2)
Next k
Label2.Caption=“”
For k=1 To 9
Label2.Caption=Label2.Caption+Str(A(k))+“”
Next k
Else
Label2.Caption=“该数没有找到”
End If
End Sub
上一题 下一题 0.99难度 None 更新时间:2017-03-01 07:03:45

答案(点此获取答案解析)

同类题2

杭州市民卡是由杭州市人民政府授权发放给市民用于办理个人相关事务和享受公共服务的集成电路卡(IC卡),具有信息储存、身份识别、电子支付等功能。每位市民卡的卡号是唯一的,卡内会记录每位市民的姓名、住址、金额等信息。
假设共有1000个市民,市民的相关信息都存储在“information.accdb”的data表中,查询程序界面如图所示。工作人员在文本框Text1中输入卡号,单击“开始查询”按钮,如果找到,就在Label1中显示卡内市民姓名和卡内余额;否则显示“查无此人”。请按要求将下列程序补充完整。

Private Sub command1_click()
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset
Dim strSQL As String
Dim a,b as string ‘分别定义姓名、余额
Dim n as integer
conn.ConnectionString = "Provider="Microsoft.ACE.OLEDB.12.0;Data" Source=" + App.Path + "\information.accdb" '打开到数据库的链接
conn.Open
strSQL ="select xh,xm from data where '卡号=&(Text1.Text) & '" '设置查询的SQL语句
Set rs.ActiveConnection = conn    '设置rs的ActiveConnection属性,指定与其关联的数据库链接
rs.Open strSQL   '打开记录集,将从表information中读取的结果保存到记录集rs中
Label1.Caption = ""
n=0
Do while not rs.EOF

a=rs.Fields("姓名")
b=rs.Fields("余额")
rs.movenext
loop
rs.Close
conn.close
set rs=nothing
set conn=nothing

if n="0" then Label1.caption="查无此人"
End Sub
(1)程序中①划线处应填入___________________
(2)程序中②划线处应填入___________________。