生成身份证校验码的方法:
2)将相加的结果除11后,取余数。
3)余数与身份证校验码的对应表为:
余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
(1)实现上述功能的VB程序如下,请在划线处填入合适代码。
Dim a (1 To 3500) As String ’定义存储地区编号的数组
Dim b (1 To 3500) As String ’定义存储地区名称的数组
Dim n As Integer ’定义存储地区总数的变量
Private Sub Form_Load( )
’本过程从数据库中依次读取地区编号(从小到大排列)和地区名称,分别存储在数组a和数组b中,地区总数存储在变量n中,并将结果显示在列表框Listl中。
’代码略
End Sub
Private Sub Commandl_CIick( )
If Len (Text1.Text) < > 18 Then
Label4.Caption=“请输入18位身份证号”
Text1.Text=“”
Else
If Mid (Text1.Text,18,1)= _________Then
Text2.Text=“校验通过!”
Else
Text2.Text=“校验不通过!”
End If
End If
End Sub
Private Sub Command2_Click( )
Dim i As Integer,j As Integer,m As Integer,xb As Integer
Dim key As String
key = Mid(Text1.Text,1,6)
i = 1:j = n:xb=0
Do While i <= j
m = Fix((i + j)/2)
If a(m) = key Then
xb = m
Exit Do
End If
If key < a(m) Then
j = m-1
Else
i = m+1
End If
Loop
If xb <> 0 Then
Text3.Text=__________
Else
Text3.Text=“没找到相应的地区名称!”
End If
End Sub
Public Function yanzheng (id As String) As String
Dim i As Integer,s As Long,s1 As String,s2 As String
sl=“79A584216379A5842”
s2=“10X98765432”
s=0
For i = 1 To 17
t =Mid(s1,i,1)
If t=“A”Then
s=s+10*Val(Mid(id,i,1))
Else
s=s+Val(t)*Val(Mid(id,i,1))
End If
Nexti
yanzheng=Mid(s2,__________,1)
End Function
(2)若查找地区失败,至多需比较__________次关键字。(填写具体数值)

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

