Está en la página 1de 3

# Menú del restaurante

menu = {

"Desayuno": {

1: ("te", 1.50),

2: ("empanadas", 1.99),

3: ("Jugo de fresa", 1.00)

},

"Almuerzo": {

1: ("caldo de gallina ", 3.50),

2: ("Pollo frito", 6.99),

3: ("seco de carne", 8.50)

},

"Cena": {

1: ("pizza ", 9.99),

2: ("areopuerto", 12.99),

3: ("pollo a la braza", 50.99)

# Función para mostrar el menú principal

def mostrar_menu():

print("----- Menú del Restaurante -----")

print("Categorías:")

for categoria in menu:

print(categoria)

print("---------------------------------")

# Función para mostrar el submenú de una categoría específica

def mostrar_submenu(categoria):

print(f"----- {categoria} -----")

for num_plato in menu[categoria]:


plato, precio = menu[categoria][num_plato]

print(f"{num_plato}. {plato}: ${precio}")

print("------------------------")

# Función para tomar la orden

def tomar_orden():

orden = []

opcion = input("Ingrese la categoría que desea ordenar (o presione Enter para salir): ")

while opcion:

if opcion in menu:

mostrar_submenu(opcion)

num_plato = input("Ingrese el número del plato que desea ordenar (o presione Enter
para finalizar la categoría): ")

while num_plato and num_plato != 'q':

if num_plato.isdigit() and int(num_plato) in menu[opcion]:

plato, precio = menu[opcion][int(num_plato)]

orden.append((plato, precio))

print(f"¡{plato} agregado a la orden!")

else:

print("Número de plato no válido. Por favor, seleccione un número de la lista.")

num_plato = input("Ingrese el número del plato que desea ordenar (o presione Enter
para finalizar la categoría): ")

else:

print("Categoría no válida. Por favor, seleccione una categoría del menú.")

opcion = input("Ingrese la categoría que desea ordenar (o presione Enter para salir): ")

return orden

# Función para calcular el subtotal de la orden

def calcular_subtotal(orden):

subtotal = sum(precio for _, precio in orden)

return subtotal
# Función para calcular el IGV (17% del subtotal)

def calcular_igv(subtotal):

igv = subtotal * 0.17

return igv

# Función para calcular el total (subtotal + IGV)

def calcular_total(subtotal, igv):

total = subtotal + igv

return total

# Función principal del programa

def restaurante():

print("¡Bienvenido al Restaurante!")

mostrar_menu()

orden = tomar_orden()

subtotal = calcular_subtotal(orden)

igv = calcular_igv(subtotal)

total = calcular_total(subtotal, igv)

# Imprimir boleta de ventas

print("----- Boleta de Ventas -----")

for plato, precio in orden:

print(f"{plato}: ${precio}")

print("------------------------")

print(f"Subtotal: ${subtotal}")

print(f"IGV (17%): ${igv}")

print(f"Total a pagar: ${total}")

print("------------------------")

# Ejecutar el programa

restaurante()

También podría gustarte