İlginizi Çekebilir
C# Kullanıcıdan Veri Alma Nasıl Yapılır
  1. Ana Sayfa
  2. C#
  3. C# Kullanıcıdan Veri Alma İşlemi

C# Kullanıcıdan Veri Alma İşlemi

Konsol ile uğraşıyorsan, konsoldan bir program yapıyorsan en çok kullandığın işlem C# kullanıcıdan veri alma işlemidir. Bunun farkında olduğumdan ve başlangıç konularına bir devam niteliğinde olması için C# kullanıcıdan veri alma işlemine yakından bakacağız.👀

C# Kullanıcıdan Veri Alma İşlemi Nasıl Yapılıyor?

Yaptığımız, yapacağımız her programın temelinde kullanıcıya hizmet etmek, bir sorunu çözmek gibi temeller yatar. Bu sorun çözme, kullanıcıya hizmet etmek için hangi dille geliştiriyorsanız geliştirin programınızı kullanıcıdan veri alma işlemini muhakkak bir şekilde kullanırsınız.

Java’da olduğu gibi ayrı bir sınıfı projemize import etmemiz, veya o sınıftan nesneler türetmemiz gerekmiyor. C# kullanıcıdan veri alma işlemi, konsol tarafında bizlere kolaylık sağlıyor. Bir yazı yazdırır gibi direkt Console sınıfından Read veya ReadLine metotlarını çağırarak kolaylıkla programlarımızda kullanıcıdan veri alma işlemini gerçekleştirebiliriz. Tanımlamasına basit bir tanımlama örneği verirsem şu şekilde olur;

string degisken; // Önce bir değişken tanımladık.
degisken = Console.ReadLine(); // Sonra değişkenimize klavyeden alacağımız verinin atamasını gerçekleştirdik.

Peki, C# Kullanıcıdan veri alma işlemini tanımlarken kullanacağımız sınıf fonksiyonları var mı, varsa bu fonksiyonlar ne gelin onlara birlikte göz atalım.

C# Kullanıcıdan Veri Alma Fonksiyonları

Java ile arasındaki bir diğer fark kullanıcıdan veri alırken herhangi bir fonksiyon kullanmamıza gerek olmaması. 🤯 Tabi, bu açıklama ile kafanız karışmış olabilir, anlamamış olabilirsiniz, çok normal.

Bu kategoriyi oluştururken belirttiğim gibi “Görsel Programlama” dersi alıyorum ve derse önden çalışmak için syntax yapısını, basit işlemlerin gerçekleştirmesine çalışırken Console.Read veya ReadLine kullandığımız zaman aldığımız değerin string olarak tanımlanması olmuştu.

İlk başta dediğim gibi Java ile arasındaki farklılıklardan birisi burada başlıyordu. Bu farklılığı çözmek için en genel ve doğru yöntemin tip dönüştürücü kullanmak olduğunu anladıktan sonra bu konuda bir yazı yazmam ve benim gibi yeni başlayan, yolu bu yazıma takılan siz okurlara bu işlemin nasıl yapılacağını anlatmamın gerekli olduğunu düşündüm.

Hazırsanız bir diğer başlığımız olan C# Kullanıcıdan Sayı Alma başlığı altında tip dönüştürücüleri birlikte inceleyelim.

C# Kullanıcıdan Sayı Alma

C# Kullanıcıdan veri alma işleminin sonucunda elde ettiğimiz her değerin string veri tipinde olarak algılanma sorununu, yukarıda bahsettiğim gibi basit bir convert işlemine tabi tutarak istediğim veri tipinde değerler alabiliyoruz.

İsterseniz, ilk başta C# kullanıcıdan sayı alma işlemimiz için nasıl bir kod bloğu yazmamız gerekiyor inceleyelim, inceledikten sonra C# kullanıcıdan sayı alma işlemimiz için örnekler oluşturalım. Yazmamız gereken kod bloğu:

int convertDegisken;
convertDegisken = Convert.ToInt32(Console.ReadLine());

Aldığımız değerleri Convert.To dedikten sonra hangi veri tipi olarak almak istiyorsak belirtmemiz yeterli olacaktır. Örnek: Convert.ToDouble, Convert.ToDecimal gibi.

C# kullanıcıdan sayı alma işlemini daha iyi anlayabilmek ve bir önceki konumuz olan C# Diziler konumuzu da tekrar niteliğinde bir örnek çözümü ile inceleyebiliriz.

Bu örneğimiz üzerinde int veri tipine ait bir dizi tanımlaması gerçekleştirerek bu diziz elemanlarına kullanıcıdan bizim alacağımız değerlerin atamasını gerçekleştirecek, atama işlemi bittikten sonra hangi değerlerin çift olduğunu, hangi değerlerin tek olduğunu ve dizi elemanlarının toplam sonucunu hesaplayacak bir program oluşturayım. Bu örnek için uygulayacağım temel aşamalar şu şekildedir:

#1 İlk olarak örneğimiz üzerinde bir eleman sayısı belirtilmediği için bu oluşturulacak dizinin eleman sayısını kullanıcıdan almaya karar verdim.
#2 Kullanıcıdan aldığım veriye uygun bir dizi tanımlaması gerçekleştirdim, oluşturduğum.
#3 Programdan istenilen tek ve çift değerlerin hafızada tutulması için eleman sayısı belli olmayan, istediğim kadar ekleme yapabileceğim bir dizi yapısı oluşturmam gerektiği için ArrayList tanımlaması gerçekleştirdim.
#4 İlk başta tanımladığım dizi yapısına gerekli atamaları gerçekleştirmek için bir for döngüsü oluşturdum ve kullanıcıdan diziye eleman ataması yapmasını istedim.
#5 Atanan değerleri aynı zamanda if-else kontrol yapısına tabi tutarak değerlerin tek mi, çift mi olduğuna göre ayırarak ArrayList yapısına atamalarını gerçekleştirdim ve son olarak diziye atanan elemanların toplanma işlemini aynı döngü içerisinde oluşturdum.

using System;
using System.Collections;

namespace KullanicidanVeriAlma
{
    class Program
    {
        static void Main(string[] args)
        {
            // Dizi Tanımlamalarıı:
            int[] diziTanimlamasi; // Kullanıcıdan Alacağım Değerleri Tutacağım Dizi.
            ArrayList tekSayilar = new ArrayList(); // Tek Sayıları Tutacağım ArrayList.
            ArrayList ciftSayilar = new ArrayList(); // Çift Sayıları Tutacağım ArrayList.

            // Değişken Tanımlaması:
            int kacEleman, diziToplami = 0;
            string ayrac = new string('-', 20);

            Console.Write("{0}\n-> Kaç Eleman Tanımlayacaksınız: ", ayrac);
            kacEleman = Convert.ToInt32(Console.ReadLine());
            
            if (kacEleman > 0)
            {
                diziTanimlamasi = new int[kacEleman];
                Console.WriteLine("{0}\n-> Dizi Başarılı Bir Şekilde Oluşturuldu.\n{1}", ayrac, ayrac);
                for (int i = 0; i < diziTanimlamasi.Length; i++)
                {
                    int diziElemani;
                    Console.Write("-> Diziye Eklenecek {0}. Elemanı Tanımlayın: ",(i+1));
                    diziElemani = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine(ayrac);
                    diziTanimlamasi[i] = diziElemani;
                    if (diziTanimlamasi[i] % 2 == 0)
                    {
                        int ciftSayi;
                        ciftSayi = diziTanimlamasi[i];
                        ciftSayilar.Add(ciftSayi);
                    }
                    else
                    {
                        int tekSayi;
                        tekSayi = diziTanimlamasi[i];
                        tekSayilar.Add(tekSayi);
                    }
                    diziToplami += diziTanimlamasi[i];
                }
            }
            else
            {
                Console.WriteLine("{0}\n-> Tanımsız Bir Değer Girdiniz Program Sonlandırıldı.\n{1}", ayrac, ayrac);
            }

            Console.Write("< Yapılan İşlemler >\n{0}\n-> Dizi Elemanlarının Toplamı: {1} \n-> Dizideki Çift Sayılar: ",ayrac,diziToplami);
            foreach (int cift in ciftSayilar)
                Console.Write("[{0}] ", cift);
            Console.Write("\n-> Dizideki Tek Sayılar: ");
            foreach (int tek in tekSayilar)
                Console.Write("[{0}] ", tek);
            Console.WriteLine("\n"+ayrac);
        }
    }
}

Kod Çıktısı:

C# kullanıcıdan sayı alma
C# Kullanıcıdan Sayı Alma İşlemi

Geçmiş konularımızı tekrar niteliğinde güzel bir C# kullanıcıdan sayı alma örneği oldu. Bir tane daha örnek oluşturarak bu sefer genel bir yapı altında C# kullanıcıdan veri almayı ele alalım.

Genel olarak C# Kullanıcıdan veri alma konusunu ele alırsak işin içine string, double, bool gibi çeşitli veri türlerine ait verilerin alınacağı bir örnek aklımıza gelebilir.

Bu, C# kullanıcıdan veri alma örneğimiz üzerinde kullanıcıdan giriş bilgileri isteyelim, girilen kullanıcı bilgileri sisteme tanımlıysa giriş yapsın ve giriş yaptıktan sonra bazı soruları kullanıcıya yönelterek o bilgileri işleyerek işlem sonunda kullanıcıya bir çıktı göstersin. Bu örneği oluştururken uyguladığım aşamalar ise şu şekildedir:

#1 Kullanıcının sisteme giriş yapabilmesi için programa bir kullanıcı adı ve şifre belirlemesi gerçekleştirdim.
#2 Kullanıcıdan bu giriş bilgilerini istemek için veri alma işlemi ve arkasından bu verinin doğruluğunu teyit edebilmek için if-else kontrol yapısı oluşturdum.
#3 Kullanıcı bilgileri doğru girdiyse eğer bazı kişisel bilgilerini istiyorum ve programın hafızasında tutulması için değişkenlere kaydetiyorum.
#4 İşlem sonunda kaydettiğim bilgileri gösterip programı sonlandırıyorum.

using System;

namespace KullanicidanVeriAlma
{
    class Program
    {
        static void Main(string[] args)
        {
            // Kullanıcı Bilgilerin Tanımlanması:
            string kullaniciAdi = "root";
            string kullaniciParola = "admin";

            // Değişken Tanımlamaları:
            string kAdi, kParola, isim, soyisim;
            string ayrac = new string('-', 20);

            // Yazdırma İşlemleri:
            Console.Write("{0}\n< Giriş Sistemi >\n{1}\n-> Kullanıcı Adını Girin: ",ayrac,ayrac);
            kAdi = Console.ReadLine();
            Console.Write("-> Şifrenizi Girin: ");
            kParola = Console.ReadLine();
            Console.WriteLine("{0}", ayrac);

            // Sorgulama İşlemi:
            if(kullaniciAdi.Equals(kAdi) && kullaniciParola.Equals(kParola))
            {
                Console.Write("< Giriş Başarılı >\n{0}\n-> İsminizi Girin: ",ayrac);
                isim = Console.ReadLine();
                Console.Write("-> Soyadınızı Girin: ");
                soyisim = Console.ReadLine();
                Console.WriteLine("{0}\n< Kişisel Bilgileriniz >\n{1}\n-> İsminiz: {2}\n-> Soyisminiz: {3}\n{4}", ayrac, ayrac, isim, soyisim,ayrac);
                
            }
            else
            {
                Console.WriteLine("\n{0}\n< Giriş Başarısız >\n{1}\n-> Girmiş olduğunuz kullanıcı bilgileri sisteme tanımlı değil.", ayrac, ayrac);
            }

        }
    }
}

Kod Çıktısı:

C# kullanıcıdan veri alma
C# Kullanıcıdan Veri Alma İşlemi

C#’da Kullanıcıdan Veri Alma, Sayı Alma gibi konularda aklınızda hala bir soru işareti var ise veya konu işleyişi hakkında bir öneriniz bulunuyorsa aşağıda bulunan yorum yap kısmından benim ile iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap