C#'ta TC Kimlik No Kontrolü

C#'ta TC Kimlik numarasının doğruluğunu kontrol etmeyi görelim.

İ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.

NOT: Her TC Kimlik numarası bu algortimayı sağlar; ancak TC kimlik numarası olmayan sayılarda bunu sağlayabilir. Çünkü bu TC kimlik numarası algoritmalarından sadece biri.
  • Etiketler;
Emre Şahin
Hakkari'de doğdu. İlköğretim 5.Sınıfta ilk bilgisayarını aldı ve hemen Photoshop ile tasarıma başlayıp sonra Html ile programlaya giriş yaptı. <p>Şu anda ağırlıklı olarak C# kullanmakta, bunun yanısıra Vb.net, Delphi ve Asp.Net ile de uğraşıyor. Tasarım programlarından ise Photoshop, Fireworks, 3Ds Max'e meraklı. <p>Şu anda Hakkari Fen Lisesi'nde okuyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

malesef C# konusunda biraz acemiyim yapıların çoğunu öğrenemedim daha zamanım yok onun için bana en kolay olan yöntemi kullandım birde düzeltme yapayım abcdefghıij mod10(a+b+c+d+e+f+g+h+ı+i)=J olacak üstteki açıklamada
Kimlik Numarasına 0 değerini verince program çöküyor yine textbox1.text = "00000000000";

Yukarı Git