C Sharp ile TC Kimlik No Kontrolü

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
Bildiğiniz üzere tc kimlik numaralarımız 11 adet rakamdan oluşmaktadır. Devlet bizlere bu numaraları verirken rastgele vermiyor ve 2 adet kurala göre tc kimlik numaraları veriyor. Bunlardan birincisi, ilk 10 hanenin toplamını, 10'a göre mod aldığımızda 11. haneyi veriyor. Yani ilk 10 rakamı toplayıp 10'a böldüğünüzde kalan, bizim tc kimlik numaramızın 11. hanesini veriyor. Bununla beraber biraz daha karmaşık olan bir algoritma daha var. Birinci, üçüncü, beşinci, yedinci ve dokuzuncu hanelerin toplamının 7 katı ile, ikinci, dördüncü, altıncı ve sekizinci rakamların toplamının 9 katını topluyoruz. Ve yine bu çıkan toplam sonucun 10'a göre modunu alıyoruz. Modunu aldıktan sonra çıkan sonucun 10. haneye eşit olması gerekiyor. Başka sitelerde de incelerseniz, ikinci algoritma daha farklı şekilde açıklanıyor ama aynı sonuca varıyoruz. Ben kendi yazdığım tc kimlik no kontrol programının exe dosyasını -------'a yükledim.
Dilerseniz buradan indirebilirsiniz: Tc Kimlik No Kontrol Programı

C sharp ile yazmış olduğum kodları da inceleyebilirsiniz. Yanlarına yorum satırlarıyla beraber açıklamasını da yaptım. Projeye başlarken öncelikle bir adet textbox ve bir adet buton eklemeniz yeterli olacaktır. Kodlarımızı, butonun click event'ine yazıyoruz:

Kod:
using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Windows.Forms;

 namespace Bolubeyi.Net
 {
     public partial class Form1 : Form
     {
         public Form1()
         {
             InitializeComponent();
         }
         private void Form1_Load(object sender, EventArgs e)
         {

         }
         private void button1_Click(object sender, EventArgs e)
         {
             try
             {
                 if (Convert.ToString(textBox1.Text).Length ==  11)//Girilen Tc kimlik numarasının 11 haneli olup olmadığını kontrol  ediyoruz
                 {
                     string tc_kimlik_no = textBox1.Text;
                     string[] tc_kimlik_no_dizisi = new string[tc_kimlik_no.Length];
                     for (int i = 0; i < tc_kimlik_no.Length; i++)
                         tc_kimlik_no_dizisi[i] = tc_kimlik_no[i].ToString();

                     int ikinci_algoritma_toplami;

                     int ilk_on_top = int.Parse(tc_kimlik_no_dizisi[0]) +  int.Parse(tc_kimlik_no_dizisi[1]) + int.Parse(tc_kimlik_no_dizisi[2]) +  int.Parse(tc_kimlik_no_dizisi[3]) +  int.Parse(tc_kimlik_no_dizisi[4]) +  int.Parse(tc_kimlik_no_dizisi[5]) + int.Parse(tc_kimlik_no_dizisi[6]) +  int.Parse(tc_kimlik_no_dizisi[7]) + int.Parse(tc_kimlik_no_dizisi[8]) +  int.Parse(tc_kimlik_no_dizisi[9]);

                     int tek_toplam = int.Parse(tc_kimlik_no_dizisi[0]) +  int.Parse(tc_kimlik_no_dizisi[2]) + int.Parse(tc_kimlik_no_dizisi[4]) +  int.Parse(tc_kimlik_no_dizisi[6]) + int.Parse(tc_kimlik_no_dizisi[8]);

                     int cift_toplam = int.Parse(tc_kimlik_no_dizisi[1])  + int.Parse(tc_kimlik_no_dizisi[3]) + int.Parse(tc_kimlik_no_dizisi[5])  + int.Parse(tc_kimlik_no_dizisi[7]);

                     
                     ikinci_algoritma_toplami = ((tek_toplam) * 7 +  (cift_toplam)*9);//ikinci algoritmamızdaki kuralı belirliyoruz.
                     //1,3,5,7 ve 9. hanelerin toplamının 7 katı ile 2,4,6 ve 8. hanelerin toplamının 9 katını topluyoruz
                     int mod = (ikinci_algoritma_toplami % 10);//Çıkan  toplamın 10'a göre modunu yani birler basamağını buluyoruz.

                     if ((ilk_on_top%10) ==  int.Parse(tc_kimlik_no_dizisi[10]) && (mod ==  int.Parse(tc_kimlik_no_dizisi[9])))//if bloğu içerisinde her iki  algoritmanın da doğruluğunu kontrol ediyoruz
                     {
                         this.BackColor = Color.Green;
                         MessageBox.Show("TC KİMLİK NO GEÇERLİ");
                         this.BackColor = SystemColors.Control;
                         textBox1.Clear();
                     }
                     else
                     {
                         this.BackColor = Color.DarkRed;
                         MessageBox.Show("TC KİMLİK NO GEÇERSİZ!","Hata");
                         this.BackColor = SystemColors.Control;
                         textBox1.Clear();
                     }
                 }
                 else
                 {
                     this.BackColor = Color.DarkRed;
                     MessageBox.Show("EKSİK VEYA FAZLA RAKAM GİRDİNİZ, TEKRAR DENEYİNİZ...", "Hata");
                     this.BackColor = SystemColors.Control;
                     textBox1.Clear();
                 }
             }
             catch
             {     
                 MessageBox.Show("TC KİMLİK NO HATALI, TEKRAR DENEYİNİZ...","Hata");
             }
         }
         private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
         {
             System.Diagnostics.Process.Start("http://www.bolubeyi.net");
         }
     }
 }
 
Benzer konular Forum Tarih
Ahbap C# 4 290
Ahbap C# 4 1K
Ahbap C# 3 278
Ahbap C# 4 401
Ahbap C# 2 391

Benzer konular

DarK

< MasaLFM.Net >
Forum Üyesi
Katılım
1 Nisan 2019
Mesajlar
616
Tepkime puanı
0
emeğine yüreğine sağlık
 

Nutella

Harbi Üye
Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
9,432
Tepkime puanı
8
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş