بررسی صحت کد ملی وارد شده
سید محسن علوی | پنجشنبه, ۱۰ مرداد ۱۳۹۲، ۰۱:۰۸ ق.ظ
در این پست میخواهیم بررسی کنیم که کد ملی ای که توسط کاربر وارد شده است صحیح می باشد یا خیر؟
کدهای برنامه :
private void textBox1_Leave(object sender, EventArgs e)
{
try
{
char[] chArray =textBox1.Text.ToCharArray();
int[] numArray = new int[chArray.Length];
for (int i = 0; i < chArray.Length; i++)
{
numArray[i] = (int)char.GetNumericValue(chArray[i]);
}
int num2 = numArray[9];
switch (textBox1.Text)
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "4444444444":
case "5555555555":
case "6666666666":
case "7777777777":
case "8888888888":
case "9999999999":
MessageBox.Show("کد ملی وارد شده صحیح نمی باشد");
break;
}
int num3 = ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + (numArray[8] * 2);
int num4 = num3 - ((num3 / 11) * 11);
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))))
{
MessageBox.Show("کد ملی صحیح می باشد");
}
else
{
MessageBox.Show("کد ملی نامعتبر است");
}
}
catch (Exception)
{
MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید");
}
}
{
try
{
char[] chArray =textBox1.Text.ToCharArray();
int[] numArray = new int[chArray.Length];
for (int i = 0; i < chArray.Length; i++)
{
numArray[i] = (int)char.GetNumericValue(chArray[i]);
}
int num2 = numArray[9];
switch (textBox1.Text)
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "4444444444":
case "5555555555":
case "6666666666":
case "7777777777":
case "8888888888":
case "9999999999":
MessageBox.Show("کد ملی وارد شده صحیح نمی باشد");
break;
}
int num3 = ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + (numArray[8] * 2);
int num4 = num3 - ((num3 / 11) * 11);
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))))
{
MessageBox.Show("کد ملی صحیح می باشد");
}
else
{
MessageBox.Show("کد ملی نامعتبر است");
}
}
catch (Exception)
{
MessageBox.Show("لطفا یک عدد 10 رقمی وارد کنید");
}
}