本文向给大家分享身份证号码测试用例编写相关知识,同时小编也会对设计测试用例方法进行解释,如果能解决您在身份证号码测试用例编写方面面临的问题,请收藏关注本站,现在开始吧!
源程序如下:
#include"stdio.h"
voidmain()
{
inti; 信数 /*身份证的第i位*/
ints[17]; /*定义一个数组用来存放身份证的前17位*/
intt[17]; /*各位相乘后的数组*/
intm; /*余数*/
intt18; /*身份证的第18位0--9*/
chart18c; /*身份证的第18位X*/
longintsum=0;
for(i=0;i<17;i++)
{
printf("请输入身份证的第%d位:",i+1);
scanf("%d",&s[i]);
switch(i+1)
{
/*身份证的1到17位要乘的数一次是7910584216379105842*/
case1:t[i]=s[i]*7;break;
case2:t[i]=s[i]*9;break;
case3:t[i]=s[i]*10;break;
case4:t[i]=s[i]*5;break;
case5:t[i]=s[i]*8;break;
case6:t[i]=s[i]*4;break;
case7:t[i]=s[i]*2;break;
case8:t[i]=s[i]*1;break;
case9:t[i]=s[i]*6;break;
case10:t[i]=s[i]*3;break;
case11:t[i]=s[i]*7;break;
case12:t[i]=s[i]*9;break;
case13:t[i]=s[i]*10;break;
case14:t[i]=s[i]*5;break;
case15:t[i]=s[i]*8;break;
case16:t[i]=s[i]*4;break;
case17:t[i]=s[i]*2;break;
}
sum=sum+t[i];
}
printf("前17位相乘后的和为%ld\n",sum);
m=sum%17;
printf("对17取余后的值位:",m);
switch(m)
}
/*各个余数所对应第18位身份证号10X98765432*/
case0:t18=1;printf("这者族是一个合法的身份证号码,第18位是%d"滑嫌首,t18);break;
case1:t18=0;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case2:t18c='X';printf("这是一个合法的身份证号码,第18位是%c",t18c);break;
case3:t18=9;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case4:t18=8;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case5:t18=7;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case6:t18=6;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case7:t18=5;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case8:t18=4;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case9:t18=3;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
case10:t18=2;printf("这是一个合法的身份证号码,第18位是%d",t18);break;
default:printf("这不是一个合法的身份证号码");
}
printf("\n");
}
VC++6.0测试如下(输入一位后按回车输入第二位数)。