Python
103 ~40 dk

Hesap Makinesi Projesi

Proje: Gelişmiş Hesap Makinesi

Öğrendiklerimizi birleştirerek kapsamlı bir hesap makinesi yapacağız.

import math

class HesapMakinesi:
    def __init__(self):
        self.gecmis = []
    
    def topla(self, a, b):
        sonuc = a + b
        self._kaydet(f"{a} + {b} = {sonuc}")
        return sonuc
    
    def cikar(self, a, b):
        sonuc = a - b
        self._kaydet(f"{a} - {b} = {sonuc}")
        return sonuc
    
    def carp(self, a, b):
        sonuc = a * b
        self._kaydet(f"{a} × {b} = {sonuc}")
        return sonuc
    
    def bol(self, a, b):
        if b == 0:
            print("❌ Sıfıra bölünemez!")
            return None
        sonuc = a / b
        self._kaydet(f"{a} ÷ {b} = {sonuc:.2f}")
        return sonuc
    
    def us_al(self, taban, us):
        sonuc = taban ** us
        self._kaydet(f"{taban}^{us} = {sonuc}")
        return sonuc
    
    def karekoku(self, sayi):
        if sayi < 0:
            print("❌ Negatif sayının karekökü alınamaz!")
            return None
        sonuc = math.sqrt(sayi)
        self._kaydet(f"√{sayi} = {sonuc:.4f}")
        return sonuc
    
    def _kaydet(self, islem):
        self.gecmis.append(islem)
    
    def gecmisi_goster(self):
        if not self.gecmis:
            print("Henüz işlem yapılmadı.")
            return
        print("\n📋 İşlem Geçmişi:")
        for i, islem in enumerate(self.gecmis, 1):
            print(f"  {i}. {islem}")

# Ana program
hm = HesapMakinesi()

while True:
    print("\n╔══════════════════════╗")
    print("║   HESAP MAKİNESİ     ║")
    print("╠══════════════════════╣")
    print("║ 1. Toplama           ║")
    print("║ 2. Çıkarma           ║")
    print("║ 3. Çarpma            ║")
    print("║ 4. Bölme             ║")
    print("║ 5. Üs Alma           ║")
    print("║ 6. Karekök            ║")
    print("║ 7. Geçmiş            ║")
    print("║ 0. Çıkış             ║")
    print("╚══════════════════════╝")
    
    secim = input("Seçiminiz: ")
    
    if secim == "0":
        print("Güle güle! 👋")
        break
    elif secim == "7":
        hm.gecmisi_goster()
    elif secim in ["1","2","3","4","5"]:
        a = float(input("1. sayı: "))
        b = float(input("2. sayı: "))
        islemler = {"1": hm.topla, "2": hm.cikar, "3": hm.carp, "4": hm.bol, "5": hm.us_al}
        sonuc = islemler[secim](a, b)
        if sonuc is not None:
            print(f"\n🔢 Sonuç: {sonuc}")
    elif secim == "6":
        a = float(input("Sayı: "))
        sonuc = hm.karekoku(a)
        if sonuc is not None:
            print(f"\n🔢 Sonuç: {sonuc:.4f}")
✅ Bu proje şunları kapsar: OOP, fonksiyonlar, döngüler, koşullu ifadeler, hata yakalama, liste kullanımı.

Yorumlar 0

Giriş yapın — Yorumlarınız hemen yayınlansın
Henüz yorum yapılmamış. İlk yorumu siz yapın!