[ Foro de Python ]

Ayuda con Desarrollo programa

23-May-2022 00:01
Invitado (Wilberarias26)
0 Respuestas

Buenas tardes alguien me podrían colaborar con este problema de una clase.

La Universidad de software AllStacks necesita un sistema de información para
gestionar los pensums o currículos de los programas que ofrece, ya que este
será la base sobre la que se construirá un el sistema de matrículas. Usted hace
parte del equipo de desarrollo y su Jefe le encargó implementar la
funcionalidad de modificar una materia de un pensum, además, le dió la
especificación de la definición de las estructuras de datos.
Dado que un pensum tiene ???? semestres y estos son ordinales, es decir,
primero está el semestre 1, luego está el semestre 2 y así, este es
representado por una lista donde cada posición será un semestre, este no
puede ser una tupla dado que necesitamos modificarlo.
Cada semestre es, a su vez, una colección, esta vez de materias, estas tienen
un código que las permite identificar y no son ordinales, por lo tanto los
semestres serán representados como diccionarios donde las claves serán los
códigos de las materias y en las claves estarán las materias.
Por último tenemos a las materias, dado que necesitamos almacenar el
nombre y cantidad de créditos de las mismas, también usaremos diccionarios.
A continuación se le muestra un ejemplo de un pensum de un programa de 3
semestres que solo se le añadieron materias en el primer semestre:
pensum = [
{'0123': {'nombre': 'intro a la ing', 'créditos': 2},
'4567': {'nombre': 'inglés', 'créditos': 1}},
{}, {}
]
Como se mencionó, solo 2 materias fueron añadidas al primer semestre, la
primera tiene código: 0123, nombre: intro a la ing y créditos 2, la segunda tiene
código: 4567, nombre: inglés y créditos 1.
TAREAS
Dado un pensum como el ya descrito, para implementar la funcionalidad debe:
? Validar que el número del semestre donde está la materia que el
usuario modificar si corresponde a un semestre.
? Validar que el semestre que se desea modificar no esté vacío.
? Validar que el código de la materia a modificar esté en el semestre
seleccionado por el usuario.
Luego de las validaciones puede proceder a modificar el nombre y créditos de
la materia seleccionada por los valores proporcionados por el usuario.
FORMATO DE ENTRADA
Las entradas de la función ????????????????????????????????????_???????????????????????????? están escritas en la plantilla de la
solución, por favor NO eliminarlas o modificarlas, esto podría resultar en un
fallo en su calificación.
? ???????????????????????? es la referencia a la estructura que se desea modificar.
? ???????????????????????????????? es el número (int) del semestre en el que se encuentra la
materia que desea modificar el usuario.
? ???????????????????????????? es el código de la materia (string) que desea modificar el
usuario.
? ???????????????????????? es el nuevo nombre (string) que desea el usuario para la materia
seleccionada.
? ???????????????????????????????? es la nueva cantidad de créditos (int) que desea el usuario para
la materia seleccionada.
FORMATO DE SALIDA
La salida de esta función está escrita en la plantilla de la solución, por favor NO
eliminarlas.
La salida es la variable mensaje, si en la validación encuentra que el semestre
es inválido, usted debe guardar en esta variable EXACTAMENTE “Ingrese un
semestre válido”; si en la validación encuentra que el semestre es vacío, usted
debe guardar en esta variable EXACTAMENTE “El semestre no tiene materias”;
si en la validación encuentra que el el código de la materia no está en el
semestre seleccionado, usted debe guardar en esta variable EXACTAMENTE
“La materia no existe”; en caso de pasar todas las validaciones y lograr
modificar la materia, usted debe guardar en esta variable EXACTAMENTE
“Modificada con éxito”.
NOTAS:
1. Recuerde que para el usuario el primer semestre o semestre 1 se
encuentra en la posición con índice cero en el pensum, usted debe tener
esto en cuenta para convertir la entrada del usuario apropiadamente .
2. Si en la validación se encuentra alguna entrada incorrecta, no se debe
modificar el pensum y se debe escribir el mensaje de error
correspondiente al caso en la variable mensaje como se indicó en la
sección Formato de Salida.
EJEMPLO
Suponiendo que se tiene el pensum de tres semestres presentado
anteriormente:
Note que los semestres 4 y 0 no existen, el pensum solo tiene 3 semestres,
para ingresar un semestre válido, el usuario tendría que ingresar un número
entero entre 1 y 3, ambos incluídos. Además, es importante notar que el
mensaje de salida es el correspondiente a la validación que falla.
Aunque 2 es un semestre válido, este no tiene materias, por lo tanto no se
puede realizar la modificación satisfactoriamente.
Aunque 1 es un semestre válido y con materias, en este semestre no hay una
materia con el código 2345, por lo tanto no se puede realizar la modificación
satisfactoriamente.
Observe que ahora todas las entradas fueron validadas y no se detectó ningún
error, sólo entonces se efectuó la modificación en el pensum.

en el momento ya llevo parte del codigo desarrollado pero no se si esta corrector
este seria el codigo:

pensum[semestre + 1][materia]["nombre"] = nombre
   pensum[semestre + 1][materia]["creditos"] = creditos
   mensaje = "la materia éxito..."  
   
   # ACÁ TERMINA LA FUNCIÓN modificar_materia
   # NO MODIFIQUES LA SIGUIENTE LÍNEA
   return mensaje

pensum = [
   {'0123': {'nombre': 'intro a la ing','créditos': 2}, '4567': {'nombre': 'inglés', 'creditos': 1}},
   {},
   {}
]

si alguien me puede colaborar se los agradeceria.




(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.)