求c++ 寫身分證產生器作業怎麼寫
求c++ 寫身分證產生器作業怎麼寫 作業需求 拜託了最後一碼 檢查碼
10-(由左至右,第一位乘1,第二位乘9,第三位乘8,第四位乘7;以此類推最後一位乘1,
相加%10) 2492544205a 發表於 2015-10-7 22:51 static/image/common/back.gif
最後一碼 檢查碼
10-(由左至右,第一位乘1,第二位乘9,第三位乘8,第四位乘7;以此類推最後一位乘1,
相加% ...
能再詳細一點嗎 拜託大大了 你先上網查一下身分證的產生方式吧 #include<iostream>
#include<ctime>
#include<vector>
using namespace std;
int main(){
int tmp=0,i,j;
char result;
int key2={1,9 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ,1};
int key={10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29
,30,31,32,33};
do{
cout<<"請輸入戶籍地"<<endl;
cout<<"A 台北市 J 新竹縣 S 高雄縣 I 嘉義市 B 台中市 K 苗栗縣 "<<endl
<<"T 屏東縣 O 新竹市 C 基隆市 L 台中縣 U 花蓮縣 D 台南市 "<<endl
<<"M 南投縣 V 台東縣 E 高雄市 N 彰化縣 X 澎湖縣 F 台北縣 "<<endl
<<"P 雲林縣 Y 陽明山 G 宜蘭縣 Q 嘉義縣 W 金門 H 桃園縣 "<<endl
<<"R 台南縣 Z 馬祖 "<<endl;
cin>>result;
}while('A'>result||'Z'<result);
do{
cout<<"請輸入性別"<<endl;
cout<<"1表男性,2表女性"<<endl;
cin>>result;
}while(result!='1'&&result!='2');
srand(time(NULL));
for(i=2;i<9;i++)
result=rand()%10+'0';
tmp+=(key-'A']/10);
tmp+=(key-'A']%10*9);
for(i=2;i<10;i++){
tmp+=(key2*(result-'0'));
}
result=10-tmp%10+'0';
result=0;
cout<<result<<endl;
system("pause");
return 0;
} 身分證字號規則:
字母(ABCDEFGHJKLMNPQRSTUVXYWZIO)對應一組數(10~35),
令其十位數為X1,個位數為X2;( 如A:X1=1 , X2=0 );D表示2~9數字
Y = X1 + 9*X2 + 8*D1 + 7*D2 + 6*D3 + 5*D4 + 4*D5 + 3*D6 + 2*D7+ 1*D8 + D9
如Y能被10整除,則表示該身分證號碼為正確,否則為錯誤。
頁:
[1]