Untitled
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...