4 Mayıs 2014 Pazar

C#'ta TC Kimlik No Kontrolü

İyi günler,

Bu derste C# ile girilen bir TC Kimlik numarasının geçerli olup olmadığını kontrol edeğiz.

Önce gerçek hayatta TC kimlik nosunu nasıl kontrol ederiz, onu öğrenelim.

Bunun için birkaç tane algoritma vardır ama biz en basitini kullanacağız.

TC kimlik numaraları 11 haneli olmalı.
İlk 10 hanesinin toplamının birler hanesi 11.hanedeki sayıya eşit olmalı.

Diyelim ki, TC kimlik no:

abcdefghıij
a+b+c+d+e+f+g+h+ı+i=mod10(j) 



olmalı.

Şimdi bunu C# ortamına dökelim.

Yeni bir WindowsForm uygulaması açıp forma Bir textbox ve buton ekleyelim. Butonun text özelliğini "Test" olarak değiştirin.

Butonun Click olayına şu kodaları yazın.


string tckimlik;
try
{
tckimlik = textBox1.Text;
int index = 0;
int toplam = 0;
foreach (char n in tckimlik)
{
if (index < 10)
{
toplam += Convert.ToInt32(char.ToString(n));
}
index++;
}
if (toplam % 10 == Convert.ToInt32(tckimlik[10].ToString()))
{
MessageBox.Show("Geçerli TC Kimlik Numarası");
}
else
{
MessageBox.Show("Geçersiz Tc Kimlik Numarası");
}
}
catch
{
MessageBox.Show("Girdiğiniz Tc kimlik numarası 11 haneli değil");
}



Şimdi kodlarımızı açıklayalım:

Try Catch bloğunu girilen tc kimlik numarasının 11 haneli olup olmadığını kontrol etmek için kullandık.


string tckimlik;
tckimlik=textbox1.text



Önce tckimlik adında bir değişken tanımladık, sonra da textbox1 içindeki değeri bu değişkene atadık.


foreach (char n in tckimlik)
{.....}



char tipinde n değişkeni yarattık, bu değişken karekterlerini tckimlik adlı değişkenden alacak. Örneğin tckimlik değişkeni 245876..... ise n ilk önce 2 karekterini, sonra 4, sonra 5 değerlerini alarak devam eder. Yani her dönüşte sırasıyla TC kimlik numarasının bir karekterini seçer.


if (index < 10)
{
toplam += Convert.ToInt32(char.ToString(n));
}
index++;



Başlangıçta 0 değerini verdiğimiz index sayısı 10'dan küçük olduğu sürece toplam değişkenine n değişkeni eklenir.index değerine 1 arttırılır. Bu döngüde yapıtığımız 1 basamaktan 10 basamağa kadar olan sayıları toplamak.


if (toplam % 10 == Convert.ToInt32(tckimlik[10].ToString()))
{
MessageBox.Show("Geçerli TC Kimlik Numarası");
}



Önceki satırda 1. basamakta 10. basamağa kadar olan sayıların toğlamını bulmuştuk şimdi bu elde edilen sayının birler basamağı ile tc kimlik numarasının son basamağını karşılaştırıyoruz.

Toplam % 10 kodu ile toplam sayısını 10'a bölüp kalanı hesaplıyor yani birler basamağını buluyor.

Program bu kadar.
Alıntıdır.

Hiç yorum yok:
Write yorum

Labels