| 发表于:2007-01-16 11:18:10 楼主 |
using system; namespace idtest { /// <summary> /// class1 的摘要说明。 /// </summary> class idnumber { public static void idcheck(string s) { string sad = s; string sid = sad.substring(0,6)+ "19 "+sad.substring(6,15);//计算身份证的前17位数 int[] idcd = new int[18]; for(int i=1;i <18;i++) { int j = 17-i; idcd[i-1]=system.int32.parse(sid.substring(j,j+1));//把身份证前15位放入数组 } int[] m={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7}; int sum=0; for(int i=0;i <17;i++) sum+=idcd[i]*m[i]; int r=sum%11; char[] ch={ '1 ', '0 ', 'x ', '9 ', '8 ', '7 ', '6 ', '5 ', '4 ', '3 ', '2 '}; sid=sid+ch[r]; //末位校验码为ch[r] console.writeline( "该居民新的身份证号为: "+sid); int year = system.int32.parse(sid.substring(6,10)); int month = system.int32.parse(sid.substring(10,12)); int day = system.int32.parse(sid.substring(12,14)); console.writeline( "该居民出生时间为: "+year+ "年 "+month+ "月 "+day+ "日 "); //显示出生年月日 int sex = system.int32.parse(sid.substring(16,17)); //判别居民性别 console.writeline( "该居民性别为: "); if(sex%2==0) console.writeline( "女 "); else console.writeline( "男 "); } } class class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [stathread] static void main(string[] args) { try { string[] cid = new string[15]; //如果输入身份证大于15为 则报错 for(int i=0;i <cid.length;i++) s = console.readline(); } catch(exception e) { console.writeline(e.message); } idcheck(cid); } } } 我编译 系统提示有错误 我不知该怎么样改正 请高手指点!另请高手指点加一条try判断当输入字符时也报错; 谢! |
|
|
|
|