自动查询系统c语言,C语言信息查询系统(修改版)

如果您单击链接阅读它,我很久以前就写了一个“ C语言信息查询系统”. 据估计c 号码验证,我的宏伟代码会让我震惊. 最近,我回顾/了解了文件操作并更改了代码,这是以前文件操作的愿望. ,但是我花了一个下午来纠正写作. 应该没有错误(如果您有兴趣进行测试,欢迎提供反馈)该代码是在Linux下编写的c 号码验证,我不知道它是否在win下被报告. 这对我来说感觉很好,我认为花了几十行代码才能获得150余行. 就这样吧. 废话不多,看程序执行的原理和代码:

IdCardRun.jpg

判断验证是否非法的原则:

4ddf9dd0adb1ee703e7d969ed1848500.png

一个. 将前一个ID号的17位数字乘以不同的系数. 从第一名到第十七名的系数是: 7 9 10 5 8 8 2 2 1 6 3 7 9 10 5 8 4 2

两个. 将17位数字与系数相乘的结果相加.

三个. 使用加法和除法11. 余数是什么?

9f3828154981e7440ee14e27e2e731bd.png

四个. 其余的只能包含11位数字,即0 1 2 3 4 5 6 7 8 910. 最后一个对应的ID卡的号码分别为1 0 X 9 8 7 6 5 4 3 2.

五个. 根据以上所述,如果余数为2,则罗马数字X将出现在ID卡的第18位. 如果余数为10,则的最后一个数字为2.

例如: 一个男人的ID号是34052419800101001X. 我们必须查看该是否为合法.

320a9ec6160e77177c454e7d671dc61a.png

首先: 我们得出结论,前17名的乘积之和为189

然后: 将189除以11得到17 + 2/11,这意味着余数为2.

最后: 通过相应的规则,您可以知道与余数2对应的数字是x. 因此,这是一个合格的ID号.

此外,根据第17位数字判断性别,奇数是男性,偶数是女性[c] #include #include #include #define IDLEN 18 #define AREALEN 6#define BIRTHLEN 8#define FILEURL“ ./UserID.txt"int LegalInput(char p []){int i; printf(“请输入您的\ n>”); fgets(p,(sizeof(char)+1)* IDLEN,stdin); / *确定输入数据的长度是否合法* / if((strlen(p)-1)!= IDLEN){printf(“错误!您需要输入'18'长度ID卡\ n”); return EXIT_FAILURE;} / *确定输入的前17位数字是否为* / for(i = 0; i \ n“);返回EXIT_FAILURE;} memset(buf,0,sizeof(buf)); / *判断输入是否合法* / int ret = -1; while(ret!= EXIT_SUCCESS){if( LegalInput(userInput_char)== EXIT_SUCCESS)ret = LegalID(userInput_char,userInput_int);} / *保存前1-6个区域* / for(i = 0; i /用户ID. 在txt中,格式如下: [代码]: 110000: 北京: 110100: 北京市: 110101: 北京东城区: 110102: 北京西城区: 110103: 北京崇文区: 110104: 北京宣武区: 110105: 朝阳区北京: 110106: 北京市丰台区: 110107: 北京市石景山区: 110108: 北京市海淀区: 110109: 北京市门头沟区[/代码]可以在网上找到程序代码,或使用我的文件: 百度网盘(可能不完整,在测试过程中没有发现任何区域

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-230040-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值