在开发过程中,显示新旧两种身份证号码的文本框(TextBox)分别名为Text1和Text2,“号码升位”按钮(CommandButton)名为Command1。 代码中使用到的字符串函数及功能说明如下: (1)Len(s):获取字符串s的长度; (2)Left(s,1):返回字符串s左端长度为1的子串; (3)Right(s,1):返回字符串s右端长度为1的子串; (4)Mid(s,p,1):返回字符串s从第P个字符开始长度为1的子串。 [Visual Basic代码] ’计算18位身份证号码 Private Sub Commandl_Click() Dim code As String Dim S As Integer code = Textl. Text ’提取15位身份证号码 If Len(code) < > 15 Then MsgBox "ID 号码长度不正确,请检查!" (1) End If code = Left(code, 6) + "19" + (2) (code, 9) ’年份升位 S=0 For i = 18 To 2 Step -1 ’计算校验码和 S = S + Clnf( (3) ) * (2 ^ (i - 1) Mod11) Next i (4) ’计算校验码值 Select Case S ’确定校验码 Case 0: code = code + "1" Case 1: code = code + "0" Case 2: code = code + "X" Case Else: code = code + CStr( (5) ) End Select Text2. Text = code ’显示18位身份证号码 End Sub
【参考答案】
(1)Exit Sub(2)Right(3)Mid(code,19-i,1) (4)S=S Mod 11 (5)12-S......