[ Foro de Python ]
Problema:
Crear una aplicación que permita realizar la compra y devolución de asientos numerados en algún evento. Al comprar un asiento se debe mostrar sólo los asientos disponibles, con el precio correspondiente
según su categoría. Para realizar una comprar se necesita almacenar el rut, nombre y edad de la persona que ocupará el asiento. Para anular la compra de un asiento, se debe solicitar el rut de la persona que lo iba a ocupar y se debe mostrar los datos de la persona (rut, nombre y edad), el número de asiento comprado y el monto correspondiente a devolver(precio). La aplicación también debe proporcionar una opción que muestre un listado de todos los tickets (asientos) vendidos. Siéntase en la libertad de incorporar cualquier aspecto adicional para hacer más completa y fácil de utilizar la aplicación que programe.
Elementos a considerar:
- La situación simulada puede ser compra se asiento en un medio de transporte
(avión, tren, bus, etc.), compra de asientos para un evento (cine, teatro, concierto
musical, deportivo, etc.).
-Para cualquiera de las situaciones seleccionadas, se requiere que existan distintas
categorías de asientos que impliquen distintos precios (por ejemplo: preferente,
platea y palco).
-Para cualquiera de las situaciones seleccionadas, se requiere que existan distintas
categorías de precios según rango de edad (por ejemplo: preferente niños,
preferente adultos, preferente tercera edad, etc.).
- Todas las entradas de datos deben ser validadas.
esto llevo y no se si esta bien ayuda :c
def Formato_Validez(my_rut):
if "-" in my_rut:
i= 0
while my_rut[i] != "-":
if not my_rut[i].isdigit():
return (False)
i = i + 1
return(True)
else:
return (False)
def Rut_Valido (my_rut):
MULTIPLICA = "234567234567"
VERIFICADOR= " 123456789K0"
suma= 0
for i in range(my_rut.find("-")):
suma= suma + int(MULTIPLICA[i])* int(my_rut[my_rut.find("-")-1-i])
resto = suma % 11
indice= 11 - resto
if VERIFICADOR[indice]== my_rut[my_rut.find("-")+1].upper():
return (True)
else:
return (False)
rut=input("Ingresar su rut sin puntos, con guion y digito verificador (ej: 27008600-4):" )
while not Formato_Validez(rut):
rut=input("Error, Ingresar su rut sin puntos, con guion y digito verificador (ej: 27008600-4):" )
def operacion_avion(limiteInferior,limiteSuperior,clase,veces):
existeAsientos = False
print("Los asientos disponibles son: ")
for i in range(limiteInferior,limiteSuperior):
if asientos[i] == False:
existeAsientos = True
print((i+1))
if existeAsientos == True:
nroAsiento = int(input("Que asiento desea elegir?: "))
posicion = nroAsiento - 1
if posicion >= limiteInferior and posicion < limiteSuperior:
if asientos[posicion] == False:
asientos[posicion] = True
print("El asiento que selecciono es: ",nroAsiento)
else:
print("Error, Asiento ocupado.")
for i in range(limiteInferior,limiteSuperior):
if asientos[i] == False:
print("Se le asigno el asiento", (i+1))
asientos[i] = True
break
else:
print("Error,Ingrese valores mostrados en pantalla.")
else:
print("0")
if veces == 1:
opc2 = input("No hay asientos libres en "+clase+", desea pasarse a la otra clase?(si-no):").lower().strip()
if opc2 == "si":
if clase == "Clase Principal":
rangoInferior = 5
rangoSuperior = 10
else:
rangoInferior = 0
rangoSuperior = 5
operacion_avion(rangoInferior,rangoSuperior,"",2)
else:
print("Lo sentimos no hay cupos en ninguna clase, el proximo vuelo sale en 2 horas")
asientos = []
for i in range(0,10):
asientos.append(False)
print("Welcome Aboard")
print(" MENÚ DE OPCIONES ")
while True:
print("1. Clase Premium.")
print("2. Clase Economica.")
opc = int(input("Ingrese en que clase desea ir: "))
if opc == 1:
operacion_avion(0,5, "Clase Premium",1)
elif opc == 2:
operacion_avion(5,10, "Clase Economica",1)
else:
print("Error, Ingrese nuevamente")
seguir = input("Desea volver a ejecutar el programa(si-no) ").lower().strip()
if seguir != "si":
break
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)