丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計(jì)算機(jī)信息技術(shù)>如何利用Visual Basic開(kāi)發(fā)身份證號(hào)碼批量驗(yàn)證工具軟件

如何利用Visual Basic開(kāi)發(fā)身份證號(hào)碼批量驗(yàn)證工具軟件

時(shí)間:2022-04-29 17:27:03 計(jì)算機(jī)信息技術(shù) 我要投稿
  • 相關(guān)推薦

如何利用Visual Basic開(kāi)發(fā)身份證號(hào)碼批量驗(yàn)證工具軟件

  如何利用Visual Basic開(kāi)發(fā)身份證號(hào)碼批量驗(yàn)證工具軟件
  
  作者/劉小龍
  
  通過(guò)對(duì)身份證號(hào)碼實(shí)際應(yīng)用中存在的問(wèn)題進(jìn)行詳細(xì)分析,我們發(fā)現(xiàn)每學(xué)年的學(xué)籍建檔、國(guó)家助學(xué)金申報(bào)等方面都離不開(kāi)身份證號(hào)碼。同時(shí),人工核對(duì)信息工作量大,也易出錯(cuò),勢(shì)必對(duì)工作造成一定的影響。為此,我們運(yùn)用大學(xué)學(xué)習(xí)的一些VB知識(shí),根據(jù)身份證號(hào)碼編碼規(guī)則編寫(xiě)了《身份證號(hào)碼批量驗(yàn)證工具》軟件,使身份證號(hào)碼核對(duì)工作變得簡(jiǎn)單、輕松。
  
  一、軟件的設(shè)計(jì)步驟
如何利用Visual Basic開(kāi)發(fā)身份證號(hào)碼批量驗(yàn)證工具軟件  
  二、軟件詳細(xì)設(shè)計(jì)
  
  1. 解決方案與軟件特色
  
  本程序使用VB在Windows XP環(huán)境開(kāi)發(fā),解決了身份證號(hào)碼驗(yàn)證過(guò)程中存在的易出錯(cuò)、工作量大的問(wèn)題,支持Excel文件批量驗(yàn)證及信息追加,綠色免安裝、小巧、實(shí)用性強(qiáng)。
  
  2. 具體設(shè)計(jì)
  
  下面就根據(jù)軟件的操作流程圖進(jìn)行介紹軟件的功能和實(shí)現(xiàn)原理:
  
 。1)操作流程圖。
如何利用Visual Basic開(kāi)發(fā)身份證號(hào)碼批量驗(yàn)證工具軟件  
  參數(shù)設(shè)置說(shuō)明:身份證號(hào)碼、性別、出生年月所在列均以阿拉伯?dāng)?shù)字表示,性別、出生年月信息的追加屬于選擇項(xiàng)。
  
 。2)身份證號(hào)碼校驗(yàn)值計(jì)算函數(shù)代碼。
  
  Public Function sfzjym(num As String) As String
  
  Dim n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,y,s As Integer
  
  n1=Val(Mid$(num,1,1))*7
  
  n2=Val(Mid$(num,2,1))*9
  
  n3=Val(Mid$(num,3,1))*10
  
  n4=Val(Mid$(num,4,1))*5
  
  n5=Val(Mid$(num,5,1))*8
  
  n6=Val(Mid$(num,6,1))*4
  
  n7=Val(Mid$(num,7,1))*2
  
  n8=Val(Mid$(num,8,1))*1
  
  n9=Val(Mid$(num,9,1))*6
  
  n10=Val(Mid$(num,10,1))*3
  
  n11=Val(Mid$(num,11,1))*7
  
  n12=Val(Mid$(num,12,1))*9
  
  n13=Val(Mid$(num,13,1))*10
  
  n14=Val(Mid$(num,14,1))*5
  
  n15=Val(Mid$(num,15,1))*8
  
  n16=Val(Mid$(num,16,1))*4
  
  n17=Val(Mid$(num,17,1))*2
  
  y=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10+n11+n12+n13+n14+n15+n16+n17
  
  s=y Mod 11
  
  Select Cases
  
  Case 0
  
  sfzjym=“1”
  
  Case 1
  
  sfzjym=“0”
  
  Case 2
  
  sfzjym=“X”
  
  Case 3
  
  sfzjym=“9”
  
  Case 4
  
  sfzjym=“8”
  
  Case 5
  
  sfzjym=“7”
  
  Case 6
  
  sfzjym=“6”
  
  Case 7
  
  sfzjym=“5”
  
  Case 8
  
  sfzjym=“4”
  
  Case 9
  
  sfzjym=“3”
  
  Case 10
  
  sfzjym=“2”
  
  End Select
  
  End Function
  
  函數(shù)參數(shù)為18位身份證號(hào)碼,返回值為身份證號(hào)碼的校驗(yàn)值,即身份證號(hào)碼最后一位,整個(gè)計(jì)算過(guò)程嚴(yán)格按照GB11643-1999
  
  《公民身份號(hào)碼》中的規(guī)定完成。
  
 。3)驗(yàn)證代碼。
  
  Private Sub yz_Click()
  
  On Error GoTo errh
  
  Dim app As Excel.Application
  
  Dim appworkbook As Workbook
  
  Dim appworksheet As Worksheet
  
  Dim hs1 As Integer,hs2 As Integer,err As Integer
  
  Dim adr As String,sfzbh As String
  
  err=0
  
  dkdhk.Action=1
  
  adr$=Mid$(dkdhk.InitDir &“\”& dkdhk.FileName, 2, Len(dkdhk.InitDir & “\” & dkdhk.FileName) - 1)
  
  Set app=New Excel.Application
  
  Set appworkbook=app.Workbooks.Open(adr$)
  
  Set appworksheet=appworkbook.Sheets(1)
  
  Do While appworksheet.Cells(2,1)<> “”
  
  hs1=hs1+1
  
  Loop
  
  jc.Max=hs1
  
  For hs2=2 To hs1+1
  
  sfzbh$=appworksheet.Cells(hs2, Val(l1.Text))
  
  If Mid$(sfzbh$,18,1)=“x"”Then
  
  appworksheet.Cells(hs2,Val(l1.Text))=Mid$(sfzbh$,1,17) & “X”
  
  sfzbh$=Mid$(sfzbh$,1,17) & “X”
  
  End If
  
  If Len(sfzbh$)<>18 Then
  
  err=err+1
  
  appworksheet.Cells(hs2,Val(l1.Text))=“不夠18位” & sfzbh$
  
  appworksheet.Cells(hs2,Val(l1.Text))。Font.ColorIndex=3
  
  Else
  
  If Mid$(sfzbh$,18,1)<>sfzjym(sfzbh$) Then
  
  err=err+1
  
  appworksheet.Cells(hs2,Val(l1.Text))=“校驗(yàn)碼錯(cuò)誤” & sfzbh$
  
  appworksheet.Cells(hs2,Val(l1.Text))。Font.ColorIndex=3
  
  Else
  
  If jz1.Value=1 Then
  
  If Mid$(sfzbh$,17,1) Mod 2=1 Then
  
  appworksheet.Cells(hs2,Val(xb.Text))=“男”
  
  Else
  
  appworksheet.Cells(hs2,Val(xb.Text))=“女”
  
  End If
  
  End If
  
  If jz2.Value=1 Then
  
  appworksheet.Cells(hs2,Val(csny.Text))=Mid$(sfzbh$,7,4) & “-”& Mid$(sfzbh$,11,2) & “-” & Mid$(sfzbh$,13,2)
  
  End If
  
  End If
  
  End If
  
  jc.Value=hs2-2
  
  Next hs2
  
  “MsgBox ”數(shù)據(jù)驗(yàn)證完成,到文件中查看驗(yàn)證結(jié)果“& ”(共驗(yàn)證“& hs1 &”條記錄,發(fā)現(xiàn)“& err &”處身份證錯(cuò)誤信息)“,48,”
  
  提示
  
  app.Visible=True
  
  errh:
  
  End Sub
  
  (4)驗(yàn)證代碼需要完成的任務(wù)。
  
 、倥袛嗌矸葑C號(hào)碼所在列參數(shù)填寫(xiě)是否正確;②判斷是否追加性別、出生年月及所在列參數(shù);③讀取Excel文件中的身份證號(hào)碼,根據(jù)調(diào)用計(jì)算身份證號(hào)碼校驗(yàn)碼sfzjym函數(shù)判斷身份證號(hào)碼是否正確;④對(duì)正確的身份證號(hào)碼自動(dòng)校正小寫(xiě)x為大寫(xiě)X;⑤給Excel文件反饋判斷信息及錯(cuò)誤原因,若選擇追加性別、出生年月選項(xiàng),將對(duì)正確的身份證號(hào)碼相關(guān)記錄添加性別、出生年月;⑥彈窗提示驗(yàn)證信息量與錯(cuò)誤信息量,并自動(dòng)打開(kāi)驗(yàn)證的Excel文件。
  
  三、程序所體現(xiàn)特點(diǎn)與應(yīng)用性
  
  因日常工作中存在著身份證號(hào)碼大量核對(duì)帶來(lái)的各種問(wèn)題,經(jīng)過(guò)詳細(xì)的分析和研究,提出了開(kāi)發(fā)《身份證號(hào)碼批量驗(yàn)證工具》程序的想法。程序經(jīng)過(guò)反反復(fù)復(fù)的嚴(yán)格測(cè)試,完全能夠勝任身份證號(hào)碼批量驗(yàn)證這一工作,充分體現(xiàn)在下面幾點(diǎn):(1)實(shí)用性強(qiáng),支持對(duì)Excel數(shù)據(jù)的批量驗(yàn)證與信息自動(dòng)追加;(2)整個(gè)操作過(guò)程簡(jiǎn)單、易懂、工作量。唬3)對(duì)錯(cuò)誤信息有準(zhǔn)確的、詳細(xì)的提示信息,方便二次修正;(4)綠色免安裝、小巧。
  
 。ǜ拭C省通渭縣第二中學(xué))