-
Notifications
You must be signed in to change notification settings - Fork 694
Description
lass Product:
def init(self, name, price, stock):
self.name = name
self.stock = stock
def __str__(self):
return f"{self.name} - Giá: {self.price} VND, Tồn kho: {self.stock}"
class VendingMachine:
def init(self):
self.products = [
Product("Mì Gói Siu Cay", 19000, 14),
Product("Coca Cola", 15000, 10),
Product("Snack", 12000, 12),
Product("Nước suối", 5000, 20),
Product("Sữa MILO", 12000, 15),
]
self.balance = 500000
def show_menu(self):
print("\nMenu sản phẩm:")
for index, product in enumerate(self.products):
print(f"{index + 1}. {product}")
print(f"số tiền còn lại: {self.balance} VND")
def buy_product(self, choice):
if 1 <= choice <= len(self.products):
product = self.products[choice - 1]
if product.stock > 0:
if self.balance >= product.price:
self.balance -= product.price
product.stock -= 1
print(f"\nMua {product.name} thành công!")
print(f"Tiền còn lại: {self.balance} VND")
print(f"Tồn kho {product.name} còn lại: {product.stock}")
else:
print("\nLỗi: Bạn không đủ tiền để mua sản phẩm này!")
else:
print("\nLỗi: Sản phẩm đã hết hàng!")
else:
print("\nLỗi: Lựa chọn không hợp lệ!")
def run(self):
while True:
self.show_menu()
try:
choice = int(input("\nChọn sản phẩm để mua (hoặc nhập 0 để thoát): "))
if choice == 0:
print("\nCảm ơn bạn đã sử dụng máy bán hàng!")
break
else:
self.buy_product(choice)
except ValueError:
print("\nLỗi: Vui lòng nhập một số hợp lệ!")
if name == "main":
vending_machine = VendingMachine()
vending_machine.run()