代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
个人身份证识别程序的源代码
作者:
锦城暮叶
/ 发布于
2013/10/23
/
492
/*这是一个个人身份证识别程序的源代码 */ #include<stdio.h> #include<stdlib.h> #include<math.h> int main(){ void welcome(); //程序打开提示 int choise(); //程序工作选择 void end(); //结束程序界面 int endnx(); //结尾是不是x的身份证号码识别 int endx(); //结尾是x的身份证号码的识别 int choise_1; char dq[33][10]={"北京市","天津市","河北省","山西省","内蒙古","辽宁省", "吉林省","黑龙江","上海市","浙江省","安徽省","福建省","江西省", "河南省","湖北省","湖南省","广东省","广西省","重庆市","四川省", "贵州省","云南省","西藏","海南省","陕西省", "甘肃省","青海省","宁夏","新疆","台湾省","香港","澳门","暂无"}; //省份地区收录库 int dqpd(int s); //将身份证号码上的地区代码数与省份地区收录库相关联 int zsdq; welcome(); /*菜单选项的判断*/ while(1){ system("cls"); choise_1=choise(); if(choise_1==1){ zsdq=dqpd(endnx()); printf("该身份证属于-%s\n",dq[zsdq]); system("pause"); } if(choise_1==2){ zsdq=dqpd(endx()); printf("该身份证属于-%s\n",dq[zsdq]); system("pause"); } if(choise_1==3){ goto end_1; } if(choise_1<1||choise_1>4){ printf("输入错误!\n"); } } /*菜单选项判断结束*/ end_1: end(); return 0; } /*美化程序界面作用*/ void welcome(){ printf("身份证识别程序 --------锦城暮叶\n"); printf("\n"); system("pause"); system("cls"); } /*菜单界面 供用户需求选择*/ int choise(){ int caidan; printf("菜单:\n"); printf("1:辨认一个末位不是x的身份证\n2:辨认一个末位是x的身份证\n3:退出程序\n\n请输入你的选择-"); scanf("%d",&caidan); return caidan; } /*末位不是x的身份证号码的识别*/ int endnx(){ int i=0; int n[18]; int a[17]; int sum=0; int l,s,z0=0; int c[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; printf("请输入18位身份证号码,完成后按回车键确认\n"); printf("请输入-"); for(i=0;i<=17;i++){ scanf("",&n[i]); } do { for(i=0;i<=16;i++) a[i]=n[i]*c[i]; for(i=0;i<=16;i++) sum=a[i]+sum; l=(sum); if((l==0&&n[17]==1)||(l==1&&n[17]==0)||(l==3&&n[17]==9)||(l==4&&n[17]==8)||(l==5&&n[17]==7)) z0=1; if((l==6&&n[17]==6)||(l==7&&n[17]==5)||(l==8&&n[17]==4)||(l==9&&n[17]==3)||(l==10&&n[17]==2)) z0=1; if(z0==1) break; else printf("这是一张假的身份证号码\n"); }while(z0==1); s=n[0]*100+n[1]*10+n[2]; system("cls"); printf("你输入的身份证号码是: %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d \n",n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17]); if(n[16]%2==1) printf("这是一位生日%d%d%d%d年%d%d月%d%d日的男性公民的身份证\n",n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13]); if(n[16]%2==0) printf("这是一位生日%d%d%d%d年%d%d月%d%d日的女性公民的身份证\n",n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13]); return s; } /*末位是x的身份证号码辨认*/ int endx(){ int i=0; int n[17]; int a[17]; int sum=0; int l,s,z0=0; int c[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; printf("请输入前17位身份证号码,完成后按回车键确认\n"); printf("请输入-"); for(i=0;i<=16;i++){ scanf("",&n[i]); } do { for(i=0;i<=16;i++) a[i]=n[i]*c[i]; for(i=0;i<=16;i++) sum=a[i]+sum; l=(sum); if(l==2) z0=1; if(z0==1) break; else printf("这是一张假的身份证号码\n"); }while(z0==1); s=n[0]*100+n[1]*10+n[2]; system("cls"); printf("你输入的身份证号码是: %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%dx \n",n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16]); if(n[16]%2==1) printf("这是一位生日%d%d%d%d年%d%d月%d%d日的男性公民的身份证\n",n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13]); if(n[16]%2==0) printf("这是一位生日%d%d%d%d年%d%d月%d%d日的女性公民的身份证\n",n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13]); return s; } /*判断所在地区的与地区库的关联*/ int dqpd(int s){ int z; if(s>=110&&s<120) z=1; if(s>=120&&s<130) z=2; if(s>=130&&s<140) z=3; if(s>=140&&s<150) z=4; if(s>=150&&s<160) z=5; if(s>=210&&s<220) z=6; if(s>=220&&s<230) z=7; if(s>=230&&s<240) z=8; if(s>=310&&s<320) z=9; if(s>=330&&s<340) z=10; if(s>=340&&s<350) z=11; if(s>=350&&s<360) z=12; if(s>=360&&s<370) z=13; if(s>=410&&s<420) z=14; if(s>=420&&s<430) z=15; if(s>=430&&s<440) z=16; if(s>=440&&s<450) z=17; if(s>=450&&s<460) z=18; if(s>=500&&s<510) z=19; if(s>=510&&s<520) z=20; if(s>=520&&s<530) z=21; if(s>=530&&s<540) z=22; if(s>=540&&s<550) z=23; if(s>=570&&s<580) z=24; if(s>=610&&s<620) z=25; if(s>=620&&s<630) z=26; if(s>=630&&s<640) z=27; if(s>=640&&s<650) z=28; if(s>=650&&s<660) z=29; if(s>=710&&s<720) z=30; if(s>=810&&s<820) z=31; if(s>=820&&s<830) z=32; if(s<110||s>830||(s>150&&s<210)||(s>240&&s<310)||(s>370&&s<410)||(s>460&&s<500)||(s>550&&s<570)||(s>580&&s<610)||(s>660&&s<710)||(s>720&&s<810)) z=33; return z-1; } /*结束界面显示*/ void end(){ system("cls"); printf("程序正在关闭……\n"); system("pause"); }
试试其它关键字
身份证
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
锦城暮叶
贡献的其它代码
(
3
)
.
标准计算器
.
个人身份证识别程序的源代码
.
学生管理系统源代码
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3