C# Console Hesap Makinesi Yapımı - Bilişim Konuları

C# Console Hesap Makinesi Yapımı

Bu örneğimizde normal bir hesap makinesi  uygulaması yapacağız. Programımızı C# console ekranda yapacağız. Hesap makinesi yapmak için switch ve while komutlarından faydalanacağız.

Öncelikle kullanıcıdan klavyeden iki sayı girmesini isteyeceğiz. Eğer kullanıcı klavyeden sayı değilde başka bir karakter girerse kendisini sayı girmesi konusunda uyararak yeni bir sayı girmesini isteyeğiz.

Kullanıcı iki tane tam sayı girdikten sonra kullanıcının hangi işlemi yapmak istediğini soracağız. Normal olarak kullanıcı dört işlemden bir tanesini seçmek durumundadır. Eğer bunlardan farklı bir işlem seçerse kullanıcıyı yanlış seçim yaptığı konusunda uyararak tekrar doğru bir seçim yapmasını isteyeceğiz. Kullanıcı seçimini yaptığında eğer bölme işlemi seçmiş ise ikinci sayının sıfır olmamasına dikkat edeceğiz. Eğer ikinci girilen sayı sıfır ise yeni bir sayı girmesini isteyeceğiz.

Kullanıcının yapmış olduğu seçime göre sonucu hesaplayarak ekranda gösteriyoruz. Daha sonra kullanıcının devam edip etmeyeceğini soruyoruz. Kullanıcı devam etmek istemiyorsa ‘k’ harfine basarak programı kapatıyor. Eğer yeni bir işlem yapmak istiyorsa o zaman da herhangi bir tuşa basarak tekrar başa dönüyor ve klavyeden yeni sayılar girerek yeni bir seçim işlemi yapıyor.

Programın C# kodları:

using System;

namespace Calculator
{
    class Calculator
    {
        public static double DoOperation(double num1, double num2, string op)
        {
            double result = double.NaN; // Varsayılan değer, bölme gibi bir işlemin bir hataya yol açabileceği durumlarda kullandığımız "sayı olmayan" dır.

            // Matemetiksel işlemler için hangisinin seçileceğini SWITCH ifadesi ile buluyoruz.
            switch (op)
            {
                case "+":
                    result = num1 + num2;
                    break;
                case "-":
                    result = num1 - num2;
                    break;
                case "*":
                    result = num1 * num2;
                    break;
                case "/":
                    // 2. Sayının 0 olma olasılığı kontrol ediliyor.
                    if (num2 != 0)
                    {
                        result = num1 / num2;
                    }
                    break;
                // Yanlış bir giriş yapılırsa tekrar giriş iste.
                default:
                    break;
            }
            return result;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            bool endApp = false;
            // Programın başlığını Hesap Makinası olarak veriyoruz.
            Console.WriteLine("Hesap Makinası \r");
            Console.WriteLine("------------------------\n");

            while (!endApp)
            {
                // Değişkenleri tanımlıyoruz ve boş olarak atıyoruz.
                string numInput1 = "";
                string numInput2 = "";
                double result = 0;

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

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

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

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

                // Hangi işlemi seçmek istediğini soruyoruz.
                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
                {
                    result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
                    if (double.IsNaN(result))
                    {
                        Console.WriteLine("Bu işlem matematiksel bir hataya neden oldu.\n");
                    }
                    else Console.WriteLine("Sonucunuz: {0:0.##}\n", result);
                }
                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("Uygulamayı kapatmak için 'k' tuşuna, devam etmek için herhangi bir tuşa basın: ");
                if (Console.ReadLine() == "k") endApp = true;

                Console.WriteLine("\n"); 
            }
            return;
        }
    }
}

 

Programın ekran görüntüleri:

hesap-makinasi-c

Bu Yazıya Tepkin Nedir?
+1
0
+1
0
+1
0
+1
0
+1
1
+1
0
+1
0

Sonraki Yazı >>

Yorum Yap

2 Yorum