You are on page 1of 4
#La empresa "Banquetas SA" se dedica a la fabricacién y venta de banquetas de diferentes modelos: "REDONDA", "ALTA" y "BAJA". # La empresa realiza un seguimiento de sus ventas a través de un sistema que almacena 1a fecha, cantidad vendida, modelo de banqueta y # el cliente que realiz6 la compra. #Se necesita un sistema que permita cargar las ventas de la enpresa y realizar diversas consultas y estadisticas a partir de los datos cargados. Hla carga de datos finaliza cuando se ingresa un cliente con valor @. #Las consultas y estadisticas que se deben realizar son las siguientes: #Mostrar todos los datos de las ventas en forma de cuadro. #Buscar las ventas realizadas en una fecha especifica e imprimir los detalles de esas ventas. #Calcular el promedio de la cantidad de banquetas vendidas del modelo "BAJA". wEncontrar 1a venta con 1a menor cantidad de banquetas y mostrar los detalles de esa venta. #Encontrar el cliente que mas banquetas compré y mostrar la cantidad total de banquetas compradas por ese cliente. #Mostrar la cantidad total de banquetas vendidas de cada modelo. Mostrar todos los datos de las ventas ordenados por fecha. WEL sistema debe validar que las fechas ingresadas estén en el rango de 1 a 30, las cantidades estén en el rango de 1 a 9999, # y los modelos ingresados sean Unicamente "REDONDA", "ALTA" o "BAJA". def valida_rango(leyenda, desde, hasta) numero = int(input (leyenda)) while numero < desde or numero > hasta numero = int(input (‘Re*+leyenda) ) return numero def gar(vec_fecha, vec_cant, vec_mod, vec_cli) cliente = vali ngrese client @, 3) while cliente I= @ fecha = valida_rango("Ingrese fech 30) cantidad = valida rango("Ingrese cantidad: ", 1, ("Ingrese modelo: "). upper() while nodelo != 'REDONDA' and modelo = 'ALTA' and modelo |= "BAIA" mnodelo = input (*Re-ingrese modelo: “) .upper() vec_fecha.append (fecha) vec_cant.append(cantidad) vec_cli.append( cliente) vec_nod. append(modelo cliente = valida_pango("Ingrese cliente: ", def mostrar(vec_fecha, vec_cant, vec_nod, vec_cli) print ("Fecha\tModelo\tCliente\ tCant idad” ) modelo = input for i in range(ien(vec_nod)): print(#'{vec_fecha[i]}\t{vec_mod[i]}\t{vec_cli[i] \t{vec_cant[i]}") def buscar(a_buscar, vec): ise while i < len(vec) and a_buscar != vec[i]: ita return i < len(vec) def mostrar_fecha(a_dia, vec_fecha, vec_cant, vec_mod, vec_cli’ print ("Fecha\tModelo\tCliente\tCantidad" ) for i in range(len(vec_mod)) Lf a_dia => vec_fecha[i]: print(#*{vec_fecha[i]}\t{vec_mod[i]}\t{vec_cli[i]}\t{vec_cant[i]}*) def pronedio(modelo, vec_modelos, vec_cant): acum = @ cont = @ for i in range(len(vec_cant)) Af modelo == vec_modelos[i]: acun += vec_cant[i] cont +21 return acum/cont def buscar_ninino(vec): min_pos = @ for i in range(len(vec)): if vec{min_pos] >vec[i}: min_pos = i return min_pos def buscar_naxino(vec): max_pos = @ for i in range(ien(vec)): if vec{max_pos] < vec[i]: max_pos = i return max_pos def cantidades_mod(modelo, vec_mod, vec_cant): cant = @ for i in range(len(vec_cant)) if modelo == vec_mod{i]: cant += vec_cant[i] return cant def ordenar(criterio, vecl, vec2, vec3): for i in range(@, len(criterio)-1): for j in range(itt, len(criterio)): Af criterio[i] > criterio[j]: swap(criterio, i, 3) swap(vect, 1, 3) swap(vec2, i, 5) swap(vec3, i, 5) def swap(vec, 1, J): aux = vec[i] vec[i] = vecli] vec[j] = aux # Se termina la carga con cliente = @ fechas = [] cantidades = [] modelos = [] clientes = [] cargar(fechas, cantidades, modelos, clientes) if len(fechas) t= @: mostrar(fechas, cantidades, modelos, clientes) fecha_a_buscar = valida rango("Ingrese fecha a buscar: ", 1, 30) if buscar(fecha_a_buscar, fechas): mostrar_fecha(fecha_a_buscar, fechas, cantidades, modelos, clientes) else: print ("No hay ventas en ese dia”) modelo_a_buscar = "BAJA" if buscar(modelo_a_buscar, modelos): print(F'El promedio de las banquetas bajas {pronedio(modelo_a_buscar, cantidades)}") else: print ("No hay ventas de banqueta baja") pos_min = buscar_minino(cantidades) print(f""'La minima cantidad pedida fue {fechas[pos_min] }\t{ cantidades [pos_min]}\t{clientes[pos_min]}\t{nodelos[pos_mi ny") pos_max = buscar_maximo(cantidades) print(f'El cliente que mas pidio fue {clientes[pos_max]}") print ("Del modelo Redondo se vendieron {cantidades mod ("REDONDA”, modelos, cantidades)}") print(#'Del modelo Baja se vendieron {cantidades_nod("BAIA", modelos, cantidades)}") print(#'Del modelo Alta se vendieron {cantidades_mod(*ALTA", modelos, cantidades)}") ordenar(fechas, cantidades, modelos, clientes) mostrar(fechas, cantidades, modelos, clientes) else: print ("No hay datos”)

You might also like