C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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.

Kullanıcı adı ve parola oluşturma

Bu dersimizde forma kullanıcı adı ve parola oluşturmak için basit bir örnek göstereceğim.


Formumuzu düznledikten sonra Giriş butona basıp kodlamayı yapıyoruz:









string kullanıcıAdı = "ali", parola = "123456";
int hak = 1;
if (hak <= 3) //kullanıcını 3 hakkı vardır 
{
if (kullanıcıAdı == textBox1.Text && parola == textBox2.Text)
{
Form1.ActiveForm.Hide();
Form2 aç = new Form2();
aç.Show();
}
else
{
MessageBox.Show("hatalı giriş");
hak++;
}
}
else
MessageBox.Show ("deneme hakkın bitti");
Alıntıdır.

Not Hesaplama Programı (if kontrolü)

Merhaba arkadaşlar,

Bu makalemizde if'in kullanımından bahsedeceğiz. Bunu bir uygulama üzerinde göreceğiz.

Uygulamamızda 2 vize notunun %40 nı ve 1 final notunun %60 nı aldırarak. Notumuzu hesaplatıp ekrana yazdıracağız..

Evet başlayalım ;

Öncelikle visual studio ortamımıza gidip File-Project e tıklayıp Windows sekmesinden Console Application? u tıklıyoruz.

[Resim: NotHesabi1.jpg]

Kod aşamamızda ilk önce değişkenlerimizi tanımlıyoruz.


int sonuc;
int vize1, vize2, final;
string vize1str, vize2str, finalstr;



İnt türünden; 1.vize , 2.vize,final ve sonuc değişkenlerimizi tanımladık.Daha sonra string türünden vize1str, vize2str ve finalstr değişkenlerimizi tanımladık.

Şimdi kullanıcıdan verilerimizi aldıracağız. Girecek olan kullanıcı 2 vize ve bir final notunu girecek. Hemen aldırtalım.Bunun için hangi komutu kullanıyorduk ? Console.Write değil Mi ?


Console.Write("1. Vizeyi giriniz :");
vize1str = Console.ReadLine();
Console.Write("2. Vizeyi giriniz :");
vize2str = Console.ReadLine();
Console.Write("Final Notunu giriniz :");
finalstr = Console.ReadLine();



Kullanıcılardan verileri aldırdık. Ve Console.ReadLine(); komutuyla kullanıcın klavyeden bir veri girdikten sonra entere basmasını sağlamak için komutumumuzu kullandık.

Şimdi String türünden bir ifademiz var elimizde bunları int türüne çevireceğiz. Nasıl yapacagız ?

vize1 = Int32.Parse(vize1str);
vize2 = Int32.Parse(vize2str);
final = Int32.Parse(finalstr);



String türünden verilerimizi Int32.Parse komutuyla ınt turune cevirdik.
Şimdi hesaplamamızı yapalım.. Vizelerin %40 ve finallerin %60nı alayarak ekrana bunu yansıttıralım..

sonuc = (vize1 * 2/10) + (vize2 * 2/10) + (final * 6/10);



Şimdi ise dananın kuyruğunun koptuğu ana geldık. İf i kullanarak karşılaştırma operatörleri ile (<=,>= vb) karşılaştırıp ekrana yazdıracağız..

if ((sonuc >= 90) && (sonuc <= 100))// 90-100 AA
Console.WriteLine("Notunuz AA dır.");
if ((sonuc >= 85) && (sonuc <= 90)) // 90-85 BA
Console.WriteLine("Notunuz BA dır.");
if ((sonuc >= 80) && (sonuc <= 85)) // 85-80 BB
Console.WriteLine("Notunuz BB dır.");
if ((sonuc >= 75) && (sonuc <= 80))// 80-75 CB
Console.WriteLine("Notunuz CB dır.");
if ((sonuc >= 70) && (sonuc <= 75))// 75-70 CC
Console.WriteLine("Notunuz CC dır.");
if ((sonuc >= 65) && (sonuc <= 70))// 70-65 DC
Console.WriteLine("Notunuz DC dır.");
if ((sonuc < 65))// 65-0 FF
Console.WriteLine("Geçemediniz. Notunuz FF dir.");



Programımızda Not aralıklarını tamamen kafamızdan verdik. Siz yine kendinize göre değiştirebilirsiniz.
Programımızın son hali ;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NotHesabi
{
class Program
{
static void Main(string[] args)
{
int sonuc;
int vize1, vize2, final;
string vize1str, vize2str, finalstr;
Console.Write("1. Vizeyi giriniz :");
vize1str = Console.ReadLine();
Console.Write("2. Vizeyi giriniz :");
vize2str = Console.ReadLine();
Console.Write("Final Notunu giriniz :");
finalstr = Console.ReadLine();
vize1 = Int32.Parse(vize1str);
vize2 = Int32.Parse(vize2str);
final = Int32.Parse(finalstr);
sonuc = (vize1 * 2/10) + (vize2 * 2/10) + (final * 6/10);
if ((sonuc >= 90) && (sonuc <= 100))// 90-100 AA
Console.WriteLine("Notunuz AA dır.");
if ((sonuc >= 85) && (sonuc <= 90)) // 90-85 BA
Console.WriteLine("Notunuz BA dır.");
if ((sonuc >= 80) && (sonuc <= 85)) // 85-80 BB
Console.WriteLine("Notunuz BB dır.");
if ((sonuc >= 75) && (sonuc <= 80))// 80-75 CB
Console.WriteLine("Notunuz CB dır.");
if ((sonuc >= 70) && (sonuc <= 75))// 75-70 CC
Console.WriteLine("Notunuz CC dır.");
if ((sonuc >= 65) && (sonuc <= 70))// 70-65 DC
Console.WriteLine("Notunuz DC dır.");
if ((sonuc < 65))// 65-0 FF
Console.WriteLine("Geçemediniz. Notunuz FF dir.");
}
}
}



Programımızı çalıştırıyoruz..
[Resim: NotHesabi2.jpg]

Gördüğünüz gibi notumuzu hesaplattık ve ekrana doğru bir biçimde yazdırttık. Bu sayede hem if kontrolunu ogrenmış olduk, hemde beraber güzel bir uygulama yapmış olduk.

Labels