打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一段简易的身份证校验和校验码计算的C++程序
//目前已知的bug:选择功能界面不可输入除数字以外的字符。
//水平有限,还请谅解。
#include <iostream>
using namespace std;
int main ()
{
char b[18],a[17];
int i,t,p;
char x;
int sum;
cout<<"请输入功能:\n";
cout<<"1.校验\t2.计算\n";
cin>>t;
while(t!=1&&t!=2)
{
cout<<"输入有误,请重新输入!\n";
cin>>t;
}
if(t==1)
{
cout<<"请输入身份证号码:\n";
for(i=0;i<18;i++)
cin>>b[i];
sum=(b[0]-48)*7+(b[1]-48)*9+(b[2]-48)*10+(b[3]-48)*5+(b[4]-48)*8+(b[5]-48)*4+(b[6]-48)*2+(b[7]-48)*1+(b[8]-48)*6+(b[9]-48)*3+(b[10]-48)*7+(b[11]-48)*9+(b[12]-48)*10+(b[13]-48)*5+(b[14]-48)*8+(b[15]-48)*4+(b[16]-48)*2;
p=sum%11;
switch (p)
{
case 0:x='1';break;
case 1:x='0';break;
case 2:x='X';break;
case 3:x='9';break;
case 4:x='8';break;
case 5:x='7';break;
case 6:x='6';break;
case 7:x='5';break;
case 8:x='4';break;
case 9:x='3';break;
case 10:x='2';break;
}
if(x==b[17])
cout<<"所输身份证号正确!\n";
else
cout<<"所输身份证号不正确!\n";
}
if(t==2)
{
cout<<"请输入身份证号前17位:\n";
for(i=0;i<17;i++)
cin>>a[i];
sum=(a[0]-48)*7+(a[1]-48)*9+(a[2]-48)*10+(a[3]-48)*5+(a[4]-48)*8+(a[5]-48)*4+(a[6]-48)*2+(a[7]-48)*1+(a[8]-48)*6+(a[9]-48)*3+(a[10]-48)*7+(a[11]-48)*9+(a[12]-48)*10+(a[13]-48)*5+(a[14]-48)*8+(a[15]-48)*4+(a[16]-48)*2;
p=sum%11;
switch (p)
{
case 0:x='1';break;
case 1:x='0';break;
case 2:x='X';break;
case 3:x='9';break;
case 4:x='8';break;
case 5:x='7';break;
case 6:x='6';break;
case 7:x='5';break;
case 8:x='4';break;
case 9:x='3';break;
case 10:x='2';break;
}
cout<<"校验码是"<<x<<endl;
cout<<"身份证号应为:\n";
for(i=0;i<17;i++)
cout<<a[i];
cout<<x;
}
return 0;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++输入数字并求和程序
C语言 图书管理系统
C 模拟ATM自动取款机
zigzag数组
顺序表的基本
顺序表的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服