本帖最後由 26732364 於 2010-7-17 11:57 AM 編輯
以下是我的Code:- Private Sub Command1_Click()
- Randomize
- Dim sex, area, sex_output, area_output As String, rnd_out(7), Check_Sum(8), Check_Error As Integer
- Dim A_, F_ As Integer '北市及北縣代碼
- Dim area_A, area_A2,area_F,area_F2 As Integer '得到的縣市代碼(2位)
- sex = (Text1.Text): area = (Text2.Text)
- rnd_out(0) = Int(Rnd * 9) + 1: rnd_out(1) = Int(Rnd * 9) + 1: rnd_out(2) = Int(Rnd * 9) + 1: rnd_out(3) = Int(Rnd * 9) + 1
- rnd_out(4) = Int(Rnd * 9) + 1: rnd_out(5) = Int(Rnd * 9) + 1: rnd_out(6) = Int(Rnd * 9) + 1: rnd_out(7) = Int(Rnd * 9) + 1
- Check_Sum(0) = 8: Check_Sum(1) = 7: Check_Sum(2) = 6: Check_Sum(3) = 5
- Check_Sum(4) = 4: Check_Sum(5) = 3: Check_Sum(6) = 2: Check_Sum(7) = 1: Check_Sum(8) = 1
- If sex = "男" Then
-
- sex_output = 1
-
- ElseIf sex = "女" Then
-
- sex_output = 2
-
- End If
- If area = "台北市" Then
- area_output = "A"
-
- A_ = 10 '台北市代碼為10
-
- area_A = A_ \ 10: area_A2 = A_ Mod 10 '取代碼1及0
-
- Check_Error = (area_A) + (area_A2 * 9) + sex_output * Check_Sum(0) + rnd_out(0) * Check_Sum(1) + rnd_out(1) * Check_Sum(2) + rnd_out(2) * Check_Sum(3) + rnd_out(3) * Check_Sum(4) + rnd_out(4) * Check_Sum(5) + rnd_out(5) * Check_Sum(6) + rnd_out(6) * Check_Sum(7) + rnd_out(7)
-
- Else: area = "台北縣"
- area_output = "F"
-
- F_ = 15 '台北縣代碼為15
-
- area_F = F_ \ 10: area_F2 = F_ Mod 10 '取代碼1及5
-
- Check_Error = (area_F) + (area_F2 * 9) + sex_output * Check_Sum(0) + rnd_out(0) * Check_Sum(1) + rnd_out(1) * Check_Sum(2) + rnd_out(2) * Check_Sum(3) + rnd_out(3) * Check_Sum(4) + rnd_out(4) * Check_Sum(5) + rnd_out(5) * Check_Sum(6) + rnd_out(6) * Check_Sum(7) + rnd_out(7)
-
- End If
- If Text1.Text = "" Or Text2.Text = "" Then
- MsgBox "請輸入性別及居住地!", 0, "Error"
-
- Label4.Caption = ""
- End If
- Label4.Caption = area_output & sex_output & rnd_out(0) &
- rnd_out(1) & rnd_out(2) & rnd_out(3) & rnd_out(4) &
- rnd_out(5) & rnd_out(6) & rnd_out(7)
- Private Sub Command2_Click()
- Cls
- Text1.Text = ""
- Text2.Text = ""
- Label4.Caption = ""
- End Sub
複製代碼 ============================================================
大致上是完成了,現在有個小小的疑問
因為所產生出來的身分證字號還沒經過驗算就出來了(就是身分證驗算的公式,也就是我39和49行的Code)
換句話說Check_Error 可以整除以10就是正確的身份證字號
小弟目前卡在如何讓"亂數產生的身分證字號"先去驗算,也就是Mod 10=整數
驗算成功才顯示正確的身分證字號,如果驗算錯誤的話就一直驗算到正確才顯示身分證字號
感恩
... |