AMORCITO

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 3

# prompt: Un programa en Python:

# debe contar con las siguientes opciones de menú:


# I.E. “BASTIDAS” – HUANCAYO
# MENÚ DE OPCIONES:
# [1]. AUTENTICARSE
# [2]. REGISTRAR DONACIONES
# [3]. REPORTE TOTAL
# [4]. SALIR DEL PROGRAMA.
# AUTENTICARSE:
# Usuario: HUARANGA
# Contraseña: 72236543
# Si se autentica de manera correcta, solo podrá hacer uso de las opciones:
# [2]. REGISTRAR DONACIONES,
# [3]. REPORTE TOTAL. Y
# [4]. SALIR DEL PROGRAMA.
# Caso contrario pedirá que ingrese una vez más el Usuario y Contraseña.
# REGISTRAR DONACIONES:
# Se ingresarán los siguientes datos:
# • Nro. de secciones
# (Validar para ingreso que se números de positivos y cantidad máxima)
# • Nro. de alumnos
# (Validar para ingreso que se números de positivos)
# Por cada alumno se ingresará:
# • Apellidos y Nombres del alumno
# • DNI del alumno
# (Validar para ingreso de 8 dígitos)
# • Género (Masculino, Femenino, Opcional)
# (Validar para ingreso solo de M, F, O)
# • ¿Usa lentes?
# (Validar para ingreso solo de SI (S) y NO (N))
# • Edad
# (Validar números de positivos y que ingresen menor o igual a 15 años)
# • Monto recaudado
# (Validar para ingreso que se números de positivos y en decimales)
# REPORTAR:
# Se reportará:
# • Cantidad de alumnos masculinos
# • Cantidad de alumnas femeninas
# • Cantidad de alumnas con lentes
# • Cantidad de alumnos con lentes
# • Cantidad de alumnos menores de edad
# • Cantidad de alumnos mayores o igual a 16 años
# • Factorial de la cantidad de alumnos menores o igual a 15 años
# • Factorial de alumnos mayores o igual a 16 años
# • Monto Total recaudado
# • El Factorial con recursividad de la cantidad de salones ingresado.
# SALIR:
# Mostrará un mensaje antes de salir “GRACIAS FUNDAMENTOS DE PROGRAMACIÓN”

def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

def validar_dni(dni):
return len(dni) == 8 and dni.isdigit()

def validar_genero(genero):
return genero.upper() in ('M', 'F', 'O')

def validar_lentes(lentes):
return lentes.upper() in ('S', 'N')

def validar_edad(edad):
return edad > 0 and edad <= 15

def validar_monto(monto):
try:
monto = float(monto)
return monto > 0
except ValueError:
return False

def validar_secciones(secciones, max_secciones):


try:
secciones = int(secciones)
return 0 < secciones <= max_secciones
except ValueError:
return False

def validar_alumnos(alumnos):
try:
alumnos = int(alumnos)
return alumnos > 0
except ValueError:
return False

def main():
usuario_correcto = "HUARANGA"
contrasena_correcta = "72236543"
autenticado = False
max_secciones = 10 # Ejemplo de cantidad máxima de secciones

while True:
print("\nI.E. “BASTIDAS” – HUANCAYO")
print("MENÚ DE OPCIONES:")
if not autenticado:
print("[1]. AUTENTICARSE")
print("[2]. REGISTRAR DONACIONES")
print("[3]. REPORTE TOTAL")
print("[4]. SALIR DEL PROGRAMA")

opcion = input("Ingrese una opción: ")

if opcion == "1" and not autenticado:


usuario = input("Usuario: ")
contrasena = input("Contraseña: ")
if usuario == usuario_correcto and contrasena == contrasena_correcta:
autenticado = True
print("Autenticación exitosa.")
else:
print("Usuario o contraseña incorrectos.")
elif opcion == "2" and autenticado:
secciones = input("Número de secciones (1-10): ")
while not validar_secciones(secciones, max_secciones):
print("Número de secciones inválido. Intente nuevamente (1-10).")
secciones = input("Número de secciones (1-10): ")
secciones = int(secciones)

alumnos = input("Número de alumnos: ")


while not validar_alumnos(alumnos):
print("Número de alumnos inválido. Intente nuevamente.")
alumnos = input("Número de alumnos: ")
alumnos = int(alumnos)

# ... (resto del código para registrar donaciones) ...


print("Donaciones registradas exitosamente.")
elif opcion == "3" and autenticado:
# ... (código para generar el reporte) ...
print("Reporte generado.")
elif opcion == "4":
print("GRACIAS FUNDAMENTOS DE PROGRAMACIÓN")
break
else:
print("Opción inválida. Por favor, intente nuevamente.")

if __name__ == "__main__":
main()

También podría gustarte