C++ Hesap Makinesi Yapımı (Konsol App)
#include <iostream>#include <math.h>
Bu kodlarımız standart olarak kodlarımızın çalışmasını sağlayan kütüphanelerdir. Burada önemli olan kütüphane "math.h" kütüphanesidir ve matematiksel işlemler yapabilmemizi sağlıyor.
using namespace std;float toplama(float x, float y){return x + y;}float cikarma(float x, float y){return x - y;}float carpma(float x, float y){return x * y;}float bolme(float x, float y){return x / y;}float ussu(float x, float y){return pow(x, y);}
Hangi matematiksel işlemi yapacaksak onun için fonksiyon oluşturduk ki daha kolay işlem yapabilelim. Kendini tekrar eden kodlar olmasın.
Üstte yazan "using namespace std;" ise sürekli olarak komutlarımızın başına std yazmaktan kurtaran kodumuzdur.
int main(){setlocale(LC_ALL, "turkish");float sayi1, sayi2, sonuc;int islemkontrol;char islem;cout << "İşlemler (+)toplama (-)çıkartma (*)çarpma (/)bölme (^)üssü"<<endl;islemsifirlama:cin >> sayi1 >> islem >> sayi2;islemdevam:switch (islem){case '+':sonuc = toplama(sayi1, sayi2);cout << sonuc<<endl;break;case '-':sonuc = cikarma(sayi1,sayi2);cout << sonuc<<endl;break;case '*':sonuc = carpma(sayi1,sayi2);cout << sonuc<<endl;break;case '/':sonuc = bolme(sayi1,sayi2);cout << sonuc<<endl;break;case '^':sonuc = ussu(sayi1, sayi2);cout << sonuc << endl;break;default:cout << "Yapabileceklerimin dışında bir işlem girdiniz";break;}kontroltekrari:cout << "işlem sonlandırmak için 0, işleme devam etmek için 1, işlemleri sıfırlamak için 2 giriniz"<<endl;cin >> islemkontrol;switch (islemkontrol){case 0:break;case 1:sayi1 = sonuc;cout << sayi1<<" ";cin >> islem >> sayi2;goto islemdevam;case 2:goto islemsifirlama;default:cout << "Üzgünüm geçersiz veri girdiniz!!!"<<endl;goto kontroltekrari;}}
Burada ise main fonksiyonunun içine ilk olarak Türkçe karakter hatasını gidermek için "setlocale(LC_ALL, "turkish");" yazdık ve artık sorunsuz bir şekilde programımızda Türkçe karakterleri kullanabiliyoruz.
Daha sonrasında ise float, int ve char olan değişkenlerimizi belirledik, ardından kullanıcıya hangi işlemi yapmak istediğini sorduk.
islemsifirlama: kısmında kullanıcıdan girilen sayıları aldık.
islemdevam: ile kullanıcının girdiği sayıları ve işlemi alıp kullanıcıya sonucu göstermek üzere bir "switch case" döngüsü oluşturduk ve kullanıcının istediği işleme göre "switch" yapısında işlemi hesaplatıp kullanıcıya sunduk.
kontroltekrari: kısmında kullanıcının işleme devam edip etmek istemediğini veya ne yapmak istediğini sorduk.
Kullanıcının verdiği sonucu yeni bir "switch" yapısına soktuk ve kullanıcı ne yapmak ister ise "goto" komutu ile o yere kullanıcıyı yönlendirdik.
Gelin şimdi bir de kodların tamamını toplu bir şekilde görelim.
#include <iostream>
#include <math.h>
/* Osman ERDEM C++ Hesap Makinesi */
using namespace std;
float toplama(float x, float y)
{
return x + y;
}
float cikarma(float x, float y)
{
return x - y;
}
float carpma(float x, float y)
{
return x * y;
}
float bolme(float x, float y)
{
return x / y;
}
float ussu(float x, float y)
{
return pow(x, y);
}
int main()
{
setlocale(LC_ALL, "turkish");
float sayi1, sayi2, sonuc;
int islemkontrol;
char islem;
cout << "İşlemler (+)toplama (-)çıkartma (*)çarpma (/)bölme (^)üssü"<<endl;
islemsifirlama:
cin >> sayi1 >> islem >> sayi2;
islemdevam:
switch (islem)
{
case '+':
sonuc = toplama(sayi1, sayi2);
cout << sonuc<<endl;
break;
case '-':
sonuc = cikarma(sayi1,sayi2);
cout << sonuc<<endl;
break;
case '*':
sonuc = carpma(sayi1,sayi2);
cout << sonuc<<endl;
break;
case '/':
sonuc = bolme(sayi1,sayi2);
cout << sonuc<<endl;
break;
case '^':
sonuc = ussu(sayi1, sayi2);
cout << sonuc << endl;
break;
default:
cout << "Yapabileceklerimin dışında bir işlem girdiniz";
break;
}
kontroltekrari:
cout << "işlem sonlandırmak için 0, işleme devam etmek için 1, işlemleri sıfırlamak için 2 giriniz"<<endl;
cin >> islemkontrol;
switch (islemkontrol)
{
case 0:
break;
case 1:
sayi1 = sonuc;
cout << sayi1<<" ";
cin >> islem >> sayi2;
goto islemdevam;
case 2:
goto islemsifirlama;
default:
cout << "Üzgünüm geçersiz veri girdiniz!!!"<<endl;
goto kontroltekrari;
}
}

1 yorum