Merhaba aşağıda yazılım dillerinden olan Dev C++ ile bir çok açığı kapatılmış sonsuz döngülü C++ hesap makinesi ‘nin kodları mevcuttur.
#include <iostream>
#include <string>
#include <limits> //sadece sayı sınırlaması yapmak için
using namespace std;
int main()
{
double birincisayi,ikincisayi;
double toplam=0;
double cikarma=0;
double carpma=0;
double bolme=0;
string secenek,islem;
for(;;){ //sonsuz döngü
cout<<"bir sayi giriniz: "<<endl;
while(!(cin>>birincisayi)){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //sadece sayi girmemizi sağlar
system("cls");
cout<<"bir sayi giriniz!"<<endl;
}
cout<<"ikinci sayiyi giriniz: "<<endl;
while(!(cin>>ikincisayi)){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //sadece sayi girmemizi sağlar
system("cls");
cout<<"bir sayi giriniz!"<<endl;
}
cout<<"1-TOPLAMA"<<endl;
cout<<"2-CIKARMA"<<endl;
cout<<"3-CARPMA"<<endl;
cout<<"4-BOLME"<<endl;
cout<<"lutfen bir secenek seciniz: "<<endl;
cin>>secenek;
if(secenek!="1"&&secenek!="2"&&secenek!="3"&&secenek!="4") //kullanıcı sadece 4 seçenek seçmesini sağlamak için
{
system("cls"); //ekran temzileme komutu
cout<<"yanlis karakter girdiniz"<<endl;
break; //döngüyü kırma komutu
}
if(secenek=="1")
{
toplam=birincisayi+ikincisayi;
system("cls");
cout<<"sonucunuz: "<<toplam<<endl;
}
if(secenek=="2")
{
cikarma=birincisayi-ikincisayi;
system("cls");
cout<<"sonucunuz: "<<cikarma<<endl;
}
if(secenek=="3")
{
carpma=birincisayi*ikincisayi;
system("cls");
cout<<"sonucunuz: "<<carpma<<endl;
}
if(secenek=="4")
{
bolme=birincisayi/ikincisayi;
system("cls");
cout<<"sonucunuz: "<<bolme<<endl;
}
cout<<"isleminize devam etmek istermisiniz(E/H):"<<endl;
cin>>islem;
if(islem=="H")
{
system("cls");
cout<<"iyi gunler "<<endl;
break;
}
else if (islem!="E"&&islem!="H") //kullanıcı sadece 2 seçenek seçmesini sağlamak için
{
system("cls");
cout<<"yanlis karakter girdiniz"<<endl;
break;
}
}}
C++ hesap makinesi kodlarının ayrıntılı açıklamaları mevcuttur.
C++ hesap makinesi kütüphaneleri
#include <iostream>
#include <string>
#include <limits>
Burada farklı olarak “#include <limits>” kütüphanesi var bu kullanıcıdan bir sayı isterken sayı dışında farklı bir karakter girmemesi için bir sınırlama yapar. Sadece sayı girilmesine izin verir.
C++ hesap makinesi değişkenleri
double birincisayi,ikincisayi;
double toplam=0;
double cikarma=0;
double carpma=0;
double bolme=0;
string secenek,islem;
Değişkenleri Double yapmamızın sebebi virgüllü sayıları bize tam olarak verebilmesi içindir.
String ise kullanıcının seçim yaparken harf girmesi gerekiyor ve bu komutu kullanmamız gerekiyor.
FOR
for(;;){ } //sonsuz döngü
For(;;) komutu sonsuz döngü demektir. Hesap makinesinden siz çıkmak isteyene ve kullanıcı yanlış bir karakter girene kadar devam eder.
C++ hesap makinesi kullanıcı girişi
cout<<"bir sayi giriniz: "<<endl;
while(!(cin>>birincisayi)){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //sadece sayi girmemizi sağlar
system("cls");
cout<<"bir sayi giriniz!"<<endl;
}
Burada komut kullanıcı sadece sayı girsin ve başka hiçbir şey harf, noktalama işareti v.b. karakterleri girmemesi için yazılmıştır.
Eğer farklı bir karakter girerse system(“cls”); komutu ile ekranı temizler ve “bir sayı giriniz!” mesajını ekrana yazar kullanıcı bir sayı girene kadar bu durum tekrarlanır.
Kullanıcı seçenekleri
cout<<"1-TOPLAMA"<<endl;
cout<<"2-CIKARMA"<<endl;
cout<<"3-CARPMA"<<endl;
cout<<"4-BOLME"<<endl;
cout<<"lutfen bir secenek seciniz: "<<endl;
cin>>secenek;
if(secenek!="1"&&secenek!="2"&&secenek!="3"&&secenek!="4") //kullanıcı sadece 4 seçenek seçmesini sağlamak için
{
system("cls"); //ekran temzileme komutu
cout<<"yanlis karakter girdiniz"<<endl;
break; //döngüyü kırma komutu
}
Kullanıcıya seçenek sunulur ve bir tanesini seçmesi istenir. Kullanıcı 4 seçimden farklı bir seçim yapmasını istemediğimiz için bunu engellememiz gerekir ve if(secenek!=”1″&&secenek!=”2″&&secenek!=”3″&&secenek!=”4″) komutlarını yazarız böylelikle kullanıcı 4 seçenek dışında hiçbir şey seçemez ve yazamaz eğer yapar ise program ekranı temizler ve “yanlıs karakter girdiniz” mesajını ekrana yazdırır.
Yanliş karakter girişi engelleme
if(secenek!="1"&&secenek!="2"&&secenek!="3"&&secenek!="4") //kullanıcı sadece 4 seçenek seçmesini sağlamak için
{
system("cls"); //ekran temzileme komutu
cout<<"yanlis karakter girdiniz"<<endl;
break; //döngüyü kırma komutu
}
Eğer kullanıcının seçimi 1 değilse ve 2 değilse ve 3 değilse ve 4 değilse program ekranı temizler ve “yanlis karakter girdiniz” mesajını ekrana yazdırır.
Yapılan işlemler
if(secenek=="1")
{
toplam=birincisayi+ikincisayi;
system("cls");
cout<<"sonucunuz: "<<toplam<<endl;
}
if(secenek=="2")
{
cikarma=birincisayi-ikincisayi;
system("cls");
cout<<"sonucunuz: "<<cikarma<<endl;
}
if(secenek=="3")
{
carpma=birincisayi*ikincisayi;
system("cls");
cout<<"sonucunuz: "<<carpma<<endl;
}
if(secenek=="4")
{
bolme=birincisayi/ikincisayi;
system("cls");
cout<<"sonucunuz: "<<bolme<<endl;
}
Eğer kullanıcı secenek == “1” seçerse;
birincisayi ikincisayi ile toplayıp toplam değişkeninin içerisine atanır.Ekran temizlenir ve sonucunuz ekrana yazdırılır.
Eğer kullanıcı secenek == “2” seçerse;
birincisayi ikincisayidan çıkarılıp çıkarma değişkeninin içerisine atanır.Ekran temizlenir ve sonucunuz ekrana yazdırılır.
Eğer kullanıcı secenek == “3” seçerse;
birincisayi ikincisayi ile çarpılır çarpma değişkeninin içerisine atanır.Ekran temizlenir ve sonucunuz ekrana yazdırılır.
Eğer kullanıcı secenek == “4” seçerse;
birincisayi ikincisayi ya bölünüp bölme değişkeninin içerisine atanır.Ekran temizlenir ve sonucunuz ekrana yazdırılır.
Kullanıcı seçeneği
cout<<"isleminize devam etmek istermisiniz(E/H):"<<endl;
cin>>islem;
if(islem=="H")
{
system("cls");
cout<<"iyi gunler "<<endl;
break;
}
else if (islem!="E"&&islem!="H") //kullanıcı sadece 2 seçenek seçmesini sağlamak için
{
system("cls");
cout<<"yanlis karakter girdiniz"<<endl;
break;
}
}}
Kullanıcı işlemlerinize devam etmek ister misin diye bir soru sorulur .
Eğer kullanıcı islem==”H” seçimini yaparsa ekran temizlenir ve kullanıcıya “iyi gunler” mesajı ekrana yazılır.
Yanliş karakter girişi engelleme
else if (islem!="E"&&islem!="H")
Komutu kullanıcıya sunulan 2 seçenekten başka bir seçim yapmaması için yani açık kapamak için kullanılır.
Kullanıcının seçimi “E” değilse ve “H” değilse ekranı temizle “yanlis karakter girdiniz” mesajını ekrana yazdır. Ve döngüyü kır.
Kullanıcı sadece “E” ve “H” harflerini girebilir onun dışında farklı hiçbir karakter giremez.
İlk Yorumu Siz Yapın