İlginizi Çekebilir
  1. Ana Sayfa
  2. C++

C++ Hesap Makinesi Uygulaması

C++ Hesap Makinesi Uygulaması
C++ Hesap Makinesi Uygulaması
+ - 0

Selamlar herkese… C++ Hesap Makinesi Uygulaması ile C++ yazılarına devam ediyorum. Temel konular yani değişkenler vs. C# ile çok yakın olduğundan dolayı temel konulara şimdilik değinmiyorum. Belki daha sonra ekleyebilirim. Bu yazımızda sürekli işlem yapan bir hesap makinesi uygulaması var. Zamanla çok daha fazla örnek uygulamalar gelecek arkadaşlar. Kolaydan zora doğru uygulamalar hazırlayıp seviyelerine göre ayrı github projeleri olarak yükleyeceğim.

C++ Hesap Makinesi Uygulaması

Bu projede C++ ile konsol ekranında hesap makinesi uygulaması yer alıyor. Kullanıcıdan sürekli sayı isteyerek sürekli olarak dört işlem yapıyor. Örneğin 3 + 5 dediniz ama *8 diyerek devam etmek istiyorsunuz. İşte bu uygulama bu şekilde çalışıyor. Aşağıdaki videoyu izleyerek daha net görebilirsiniz.

Kodları sizlerle paylaşıyorum.

#include <iostream>
#include <locale.h>
#include <string>
using namespace std;
void start()
{
	cout << "Welcome to Calculator v1..." << endl;
	cout << "www.mustafabukulmez.com" << endl;
	cout << "--------- Use -!- while operator input for Exit  -------" << endl;
	cout << "--------------------------------------" << endl;
}
double final = 0;
char op;
template <typename T> T Calculate(T num1, T num2)
{
	switch (op)
	{
	case '+':final = num1 + num2; break;
	case '*':final = num1 * num2; break;
	case '-':final = num1 - num2; break;
	case '/':final = num1 / num2; break;

	default:cout << "wrong operator"; break;
	}
	cout << "Final is: " << final << endl;
	cout << "--------------------" << endl;
	return final;
}
int main()
{
	setlocale(LC_ALL, "Turkish");
	start();
	double num2 = 0, num1 = 0;

	cout << "input a number" << endl;
	cin >> num1;

Next:
	cout << "input an operator" << endl;
	cin >> op;
	if (op == '!')exit(0);

	cout << "input a number" << endl;
	cin >> num2;

	num1 = Calculate(num1, num2);

	goto Next;
}

Kodları açıklamam gerekirse;

  • Kullandığımız namespace’leri include ediyoruz.
  • Start metodu başlangıçta bir kaç cümle yazmak için kullandım.
  • Kullandığım template yeni öğrendiğim bir işlem olduğundan denemek için ekledim aslında burada template kullanılmasa da olur.
    • Bu metotta gelen operatöre göre metoda gönderilen parametreler üzerinden istenen işlemi yapıyoruz ve geri dönüş değeri olarak veriyoruz.
  • Main içerisinde kullandığım Locale sınıfı sayesinde kullandığım Türkçe karakterler konsolda sorun çıkarmıyor. Bu komutta denemek için eklediğim kodlardan.
  • Öncelikle ilk numarayı  normal şekilde istiyoruz.
  • Sonrasında bir labet atıyoruz. Çünkü goto ile buraya geri döneceğiz.
  • Eğer operatör olarak ! gönderilirse çıkış yapıyoruz.
  • Devamında ikinci sayıyı istiyoruz.
  • İlk hesaplanan sayının üzerinde işleme devam edebilmek için, num1 değişkenine hesaplanan değeri gönderiyoruz.
  • Yapılan her işlemin sonucu num1’e atıldığı için de hesaplama sürekli devam ediyor.
  • Tekrar tekrar işlem ve  sayı sorması için de goto ile labele geri dönerek bir döngü yapmış oluyoruz.

Evet arkadaşlar kodlarımızın açıklaması da bu şekildedir.


C++ Hesap Makinesi Uygulaması yazımda bu kadardı arkadaşlar. Bu dersler Yapay Zeka temelinde olduğundan dolayı ilgili kategorinin derslerine ulaşmak için bağlantıya tıklayabilirsiniz. Ayrıca C++ dersleri içinde bir sayfa hazırladım. O sayfaya da bağlantıya tıklayarak ulaşabilirsiniz.

Her zamanki gibi Github projesine bağlantıya tıklayarak ulaşabilir ve indirebilirsiniz. Ayrıca bu yazının PDF’ine buraya ve ya buraya tıklayarak ulaşabilirsiniz.

Diğer derslerde görüşürüz.

Bol Kodlu günler! ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)