身份证第18位校验码的生成方法:
1、将身份证号码前17位数分别乘以7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2。然后将其相加。...2、将17位数字和系数乘加的和除以11,得到余数。
3、余数与校验码的对应关系为1,0,X,9,8,7,6,5,4,3,2。也即:如果余数是3,身份证第18位就是9。...如果余数是2,身份证的最后一位号码就是X。
主函数定义一个派生类对象,并用派生类对象调用check(),若返回false则输出“illegal id”否则调用print()输出身份证信息。...,签发日期也要判断合法性。...身份证号码里面的出生日期也要与所给出生日期相一致。
这里把出生日期变成字符串,month和day不是两位数的加个0,看看能不能在身份证号码里面找到。