Untitled

 avatar
unknown
plain_text
2 years ago
8.0 kB
12
Indexable
import csv
import datetime

# Menu.txt dosyasını oluştur
with open('Menu.txt', 'w',encoding="utf-8") as f:
    f.write('* Lütfen Bir Pizza  Seçiniz: \n1: Klasik Pizza \n2: Dört Peynirli Pizza \n3: Margarita Pizza \n4: Sucuk Sever Pizza \n* seçeceğiniz Ekstra Malzemeler: \n11: Siyah Zeytin \n12: Mantar \n13: Kaşar Peyniri \n14: Keçi Peyniri \n15: Sucuk \n16: Et \n17: Biber \n18: Salam \n19: Mısır \n20: Sosis \n21: Mozerella \n* Teşekkür ederiz!')
    
#4. Adım Üst sınıf oluştur "Pizza"
class Pizza:
    def __init__(self):
        self.description = "Pizza"
        self.cost=0.0

##  'get_description()' metodu, pizzanın açıklamasını döndürür.
    def get_description(self):
        return self.description
    
    
### 'get_cost()' metodu, pizzanın maliyetini hesaplamak için kullanılır.
#£# Ancak, bu sınıfın alt sınıfları tarafından yeniden tanımlanması gerektiği için,
### burada herhangi bir işlem yapılması beklenmez. Bu nedenle pass ifadesi kullanılmıştır.   
    def get_cost(self):
        return self.cost
    
##5.Adım Pizzalar için alt sınıflar oluştur. 
    
    
class KlasikPizza(Pizza):
    def __init__(self):
        super().__init__()
        self.description=" Klasik Pizza : sucuk, salam, sosis, mısır, zeytin, mantar, yeşilbiber, kırmızı tatlı biber, ve kaşar ile hazırlanan Pizzadır."
        
    def get_cost(self):
        return 20.0
    
    
        
class DortPeynirli(Pizza):
    def __init__(self):
        super().__init__()
        self.description=" Dört Peynirli Pizza : mozzarella peyniri,  rokfor peyniri, parmesan ve  kaşar peyniri "
    
    def get_cost(self):
        return 25.0
        
class Margherita(Pizza):
    def __init__(self):
        super().__init__()
        self.description=" Margherita Pizza : domates, mozarella, fesleğen, zeytinyağı ve tuzla yapılan Napoli pizzası."
    
    def get_cost(self):
        return 20.0
        
class SucukSever(Pizza):
    def __init__(self):
        super().__init__()
        self.description=" Sucuk Sever Pizza : Pizza sosu, mozzarella peyniri, sucuk, sarımsak sos."
        
    def get_cost(self):
        return 20.0
    
    
### 6.Adım Üst sınıf oluştur "Decorator


class Decorator(Pizza):
    def __init__(self, component):
        self.component=component
        
    def get_cost(self):
        return self.component.get_cost()+ Pizza.get_cost()
    
    def get_ingredients(self):
        return self.component.get_description() + ' ' + Pizza.get_description(self)
    
    

### Normalde burada Soslariçin alt sınıf istenmiş lakin ben Ekstra malzemeler olarak alt sınıflar oluşturacağım.


    
class SiyahZeytin(Decorator):
    def __init__(self, component):
        super().__init__(component)

        self.description = "Siyah Zeytin"

        # Fiyat 3 TL
        self.cost = 3.0



class Mantar(Decorator):
    def __init__(self, component):
        super().__init__(component)

        self.description = "Mantar"

        # Fiyat 4 TL
        self.cost = 4.0
    
    

class KasarPeyniri(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Kaşar Peyniri"

        # Fiyat 3 TL
        self.cost = 3.0  
    
    
        
class KeciPeyniri(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Keci Peyniri"

        # Fiyat 4 TL
        self.cost = 4.0
    
    
        
class Sucuk(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Sucuk"

        # Fiyat 5 TL
        self.cost = 5.0
    
class Et(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Etn"

        # Fiyat 6 TL
        self.cost = 3.0
        
class Biber(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Biber"

        # Fiyat 3 TL
        self.cost = 3.0
    
class Salam(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Salam"

        # Fiyat 4 TL
        self.cost = 4.0
    
class Misir(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Mısır"

        # Fiyat 3 TL
        self.cost = 3.0
    

class Sosis(Decorator):
    def __init__(self, component):
        super().__init__(component)
        
        self.description = "Sosis"

        # Fiyat 3 TL
        self.cost = 3.0
    
        
class Mozerella(Decorator):
    def __init__(self, component):
        super().__init__(component)
        self.cost=2
        
        self.description = "Mozerella"

        # Fiyat 4 TL
        self.cost = 4.0
        
        
        
def main():
    menu_file = open("Menu.txt", "r")
    menu = menu_file.read()
    print(menu)

    pizza = None
    while not pizza:
        try:
            pizza_choice = int(input("Pizza seciminizi giriniz (1-4): "))
            if 0< pizza_choice <=4:
                return pizza_choice
            elif pizza_choice == 1:
                pizza = KlasikPizza()
            elif pizza_choice == 2:
                pizza = DortPeynirli()
            elif pizza_choice == 3:
                pizza = Margherita()
            elif pizza_choice == 4:
                pizza = SucukSever()
            else:
                print("Lutfen gecerli bir secim yapiniz.")
        except ValueError:
            print("Lutfen bir sayi giriniz.")

    ekstralar = [SiyahZeytin(pizza), Mantar(pizza), KeciPeyniri(pizza), 
              Et(pizza),Sucuk(pizza),KasarPeyniri(pizza), Misir(pizza),Sosis(pizza),
              Biber(pizza),Salam(pizza),Mozerella(pizza)
              ]
    ekstra = None
    while not ekstra:
        try:
            extra_choice = int(input("Sos seciminizi giriniz (11-16): "))
            if extra_choice == 11:
                ekstra = SiyahZeytin(pizza)
            elif extra_choice == 12:
                ekstra = Mantar(pizza)
            elif extra_choice == 13:
                ekstra = KasarPeyniri(pizza)
            elif extra_choice == 14:
                ekstra = KeciPeyniri(pizza)
            elif extra_choice == 15:
                ekstra = Sucuk(pizza)
            elif extra_choice == 16:
                ekstra = Et(pizza)
            elif extra_choice == 17:
                ekstra = Biber(pizza)
            elif extra_choice == 18:
                ekstra = Salam(pizza)
            elif extra_choice == 19:
                ekstra = Misir(pizza)
            elif extra_choice == 16:
                ekstra = Sosis(pizza)
            elif extra_choice == 16:
                ekstra = Mozerella(pizza)
            else:
                print("Lutfen gecerli bir secim yapiniz.")
        except ValueError:
            print("Lutfen bir sayi giriniz.")

    pizza = ekstra
    print(pizza.get_description())
    print("Toplam fiyat: ${:.2f}".format(pizza.get_cost()))

    # Sipariş bilgilerini topla
    name = input("Isminizi giriniz: ")
    tc = input("TC Kimlik Numaranizi giriniz: ")
    card_number = input("Kredi Karti Numaranizi giriniz: ")
    cvv = input("Kredi Karti CVV Kodunu giriniz: ")

    # Siparişi veritabanına kaydet
    now = datetime.now()
    current_time = now.strftime("%d/%m/%Y %H:%M:%S")
    order = [name, tc, card_number, pizza.get_description(), current_time, cvv]
    with open("Orders_Database.csv", mode="a", newline="") as file:
        writer = csv.writer(file)
        writer.writerow(order)

    print("Siparisiniz basariyla alindi. Tesekkurler!")
Editor is loading...