IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 29 Kasım 2011, 11:58   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
C Sharp ile TC Kimlik No Kontrolü





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

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: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

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:   Kodu kopyalamak için üzerine çift tıklayın!
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("
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js">

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
ile, kimlik, kontrolü, sharp, tc


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
C#/V.B. WinForm|WCF Fonzerelli C# 2 17 Mart 2012 11:21