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