Untitled
unknown
plain_text
3 years ago
8.0 kB
15
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...