C# Console Hesap Makinesi Yapımı

Bu Visual Studio programında switch case bildirimini kullanarak basit bir console hesap makinesi yapacağız. HesapMakinesi adında bir sınıf oluşturup kullanıcıdan sayı değerleri ve operatör değeri alarak hesaplanan sonucu ana programa gönderen işlevi yapıp, bu işlevi ana programda kullanacağız. Programdan çıkmak içinde yine Console.Key ifadelerinden ESC ifadesini kullanacağız.

İşte size aşağıdaki iki farklı program birinci programda Sınıf kullanılmıştır. İkinci programda ise sadece ana program içinde yapılmıştır.

C# Console Program Kodu:

    class HesapMakinesi
    {
        public static double islemYap(double sayi1, double sayi2, string op)
        {
            // operatör değerine göre case işlemlerinden biri gerçekleştirilir.
            switch (op)
            {
                case "+":   return sayi1 + sayi2;
                case "-":   return sayi1 - sayi2;
                case "*":   return sayi1 * sayi2;
                case "/":
                    // 2. sayı 0 değilse işlemi yapar.
                    if (sayi2 != 0)
                    {
                        return sayi1 / sayi2;
                    }
                    else
                    {
                        return double.NaN;
                    }    
                default: return double.NaN;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            bool cikis = false;
            Console.WriteLine("Hesap Makinası \r");
            Console.WriteLine("------------------------\n");

            while (!cikis)
            {
                // Değişkenleri tanımlıyoruz ve boş olarak atıyoruz.
                string sayi1 = "";
                string sayi2 = "";
                double sonuc = 0;

                // Kullanııcıdan birinci sayıyı girmesini istiyoruz
                Console.Write("Birinci Sayıyı Giriniz: ");
                sayi1 = Console.ReadLine();

                double dogruSayi1 = 0;
                while (!double.TryParse(sayi1, out dogruSayi1))
                {
                    Console.Write("Bu geçerli bir sayı değil. Lütfen bir tamsayı giriniz.: ");
                    sayi1 = Console.ReadLine();
                }

                // Kullanııcıdan ikinci sayıyı girmesini istiyoruz
                Console.Write("İkinci Sayıyı Giriniz: ");
                sayi2 = Console.ReadLine();

                double dogruSayi2 = 0;
                while (!double.TryParse(sayi2, out dogruSayi2))
                {
                    Console.Write("Bu geçerli bir sayı değil. Lütfen bir tamsayı giriniz. ");
                    sayi2 = Console.ReadLine();
                }

                // İşlem Seçim Bölümü
                Console.WriteLine("Lütfen Listeden bir işlem seçiniz:");
                Console.WriteLine("\t+ - Toplama");
                Console.WriteLine("\t- - Çıkarma");
                Console.WriteLine("\t* - Çarpma");
                Console.WriteLine("\t/ - Bölme");
                Console.Write("Seçiminiz? ");

                string op = Console.ReadLine();

                try
                {
                    sonuc = HesapMakinesi.islemYap(dogruSayi2, dogruSayi1, op);
                    if (double.IsNaN(sonuc))
                    {
                        Console.WriteLine("Bu işlem matematiksel bir hataya neden oldu.\n");
                    }
                    else Console.WriteLine("Sonucunuz: {0:0.##}\n", sonuc);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Sonucu hesaplarken bir istisna oluştu \n: " + e.Message);
                }

                Console.WriteLine("------------------------\n");

                // Kapatmadan önce kullanıcının yanıt vermesini bekleyin.
                Console.Write("Uygulamadan Çıkmak İçin ESC tuşuna basınız. ");
                if (Console.ReadKey().Key == ConsoleKey.Escape) cikis = true;

                Console.WriteLine("\n");
            }
            Console.WriteLine("Program Bitti Bir tuşa basınız\n");
            Console.ReadKey();
        }
    }

Çıktı:

Csharp Console Basit Hesap Makinesi
Csharp Console Basit Hesap Makinesi

Yöntem 2: Sınıf kullanmadan yapmak isterseniz bu yöntem de ilginizi çekebilir.

    class Program
    {
        static void Main(string[] args)
        {
            char cikis;
            //Çıkış yapana kadar işlemi yap
            do
            { 
                Console.Clear();
                int sonuc = 0;

                //İşlem Menüsü
                Console.WriteLine("Toplama İşlemi İçin +");
                Console.WriteLine("Çıkarma İşlemi İçin -");
                Console.WriteLine("Çarpma İşlemi İçin *");
                Console.WriteLine("Bölme İşlemi İçin /");
                Console.Write("Yapmak İstediğiniz işlemi Seçin : ");

                // Sayıları Al
                Console.Write("1.değeri girin : ");
                int sayi1 = Convert.ToInt16(Console.ReadLine());
                Console.Write("2.değeri girin : ");
                int sayi2 = Convert.ToInt16(Console.ReadLine());

                
                char secim = Convert.ToChar(Console.ReadLine());
                //Karşılaştırma yapısını oluşturduk. Kullanıcının seçimine göre işlemi gerçekleştirdik
                switch (secim)
                {
                    case '+':
                        sonuc = sayi1 + sayi2;
                        Console.WriteLine("Toplama işlemini sonucu : {0}", sonuc);
                        break;
                    case '-':
                        sonuc = sayi1 - sayi2;
                        Console.WriteLine("Çıkarma işleminin sonucu : {0}", sonuc);
                        break;
                    case '*':
                        sonuc = sayi1 * sayi2;
                        Console.WriteLine("Çıkarma işleminin sonucu : {0}", sonuc);
                        break;
                    case '/':
                        sonuc = sayi1 / sayi2;
                        Console.WriteLine("Çıkarma işleminin sonucu : {0}", sonuc);
                        break;
                    default:
                        Console.WriteLine("Hatalı Seçim Yaptınız");
                        break;
                }// Kullanıcı h tuşuna basmadığı sürece yeni işlem yaptırdık
                Console.WriteLine("Başka işlem yapacak mısınız?(e/h)");
                cikis = Convert.ToChar(Console.ReadLine());
            } while (cikis != 'h');
        }
    }

Bir Cevap Yazın