SOGO論壇

標題: 身分證問題 [列印本頁]

作者: KSJOU    時間: 2014-11-26 00:56:06     標題: 身分證問題

請使用陣列撰寫一個C++程式能讓使用者輸入身分證號碼,然後檢查並顯示此身份證號碼是否合法。
(1)本國身份證號碼共10碼,第1碼為英文,其餘為數字,其中最右邊的數字為檢查碼
(2)以下的英文代號所代表的轉換數字:
    A=10 台北市      J=18 新竹縣     S=26 高雄縣    B=11 台中市      K=19 苗栗縣     T=27 屏東縣
    C=12 基隆市      L=20 台中縣     U=28 花蓮縣    D=13 台南市      M=21 南投縣     V=29 台東縣
    E=14 高雄市      N=22 彰化縣     W=32 金門縣    F=15 台北縣      O=35 新竹市     X=30 澎湖縣
    G=16 宜蘭縣      P=23 雲林縣     Y=31 陽明山    H=17 桃園縣      Q=24 嘉義縣     Z=33 連江縣
     I=34 嘉義市      R=25 台南縣
(3)身份證檢查時要將英文轉成數字,再將轉換後的數字其個位數乘9,再加上十位數
(4)左邊前八個數字,分別乘以8、7、6、5...1
(5)求出(3),(4)的和
(6)求出(5)除10後之餘數,再用10減該餘數,如果結果的個位數與檢查碼相同,則號碼正確
例如: 身分證字號  A123456789 可分為三部份 A 12345678 9 
      A:10 -> 1*1+0*9 = 1(第1部份)
      12345678->1*8+2*7+3*6+4*5+5*4+6*3+7*2+8*1=120 (第2部份)
      (第1部份)+(第2部份)=1+120=121
      10-(121%10)=9 與最後一碼檢查碼相同,因此此號碼為合法的編號
(7)使用者輸入身份證號碼長度多於10碼或少於10碼,應顯示錯誤訊息
利用C語言做題使用陣列與迴圈

有做出來一些些但怪怪ㄉ
拜託大師解答
作者: superepc    時間: 2014-11-26 01:19:38

怪在哪裡呢??
是程式碼有error不能跑,
還是跑出來不如預期,還是跑到一半會崩潰?
貼上程式碼讓大家看看吧
作者: mikekao    時間: 2015-2-26 17:11:00

試著把那些英文字放在陣列內,並把每個英文各自對應的數字也放在另一陣列內(當然可合成1個陣列,用struct), 接著只要處理字串就可以驗證或產生身份證字號了喲。加油!




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM