Está en la página 1de 3

Explicación del codigo

A continuación se proporciona una explicación del código:

1. Clase Profesional:
o Representa a un profesional dentro de la organización.
o Atributos:
▪ id: Identificador único del profesional.
▪ nombre: Nombre del profesional.
▪ perfil: Perfil del profesional.
▪ cargo: Cargo del profesional.
▪ valor_contrato: Valor del contrato del profesional.
▪ duracion_contrato: Duración del contrato del
profesional.
▪ actividades: Lista de actividades asociadas al
profesional.
o Métodos:
▪ init(): Constructor de la clase que inicializa los
atributos.
▪ actualizar_datos(): Permite actualizar los datos del
profesional.
2. Clase Proyecto:
o Representa un proyecto dentro de la organización.
o Atributos:
▪ id: Identificador único del proyecto.
▪ objeto_contrato: Objeto del contrato del proyecto.
▪ monto: Monto del proyecto.
▪ objetivo_general: Objetivo general del proyecto.
▪ fecha_inicio: Fecha de inicio del proyecto.
▪ fecha_fin: Fecha de finalización del proyecto.
▪ lugar_ejecucion: Lugar de ejecución del proyecto.
▪ actividades: Lista de actividades asociadas al
proyecto.
▪ profesionales: Lista de profesionales asociados al
proyecto.
o Métodos:
▪ init(): Constructor de la clase que inicializa los
atributos.
▪ agregar_profesional(): Permite agregar un profesional
al proyecto.
▪ actualizar_datos(): Permite actualizar los datos del
proyecto.
3. Clase Fundacaqueta:
o Representa la organización Fundacaqueta.
o Atributos:
▪ profesionales: Diccionario que almacena a los
profesionales registrados, donde la clave es el id del
profesional y el valor es el objeto Profesional.
▪ proyectos: Diccionario que almacena los proyectos
registrados, donde la clave es el id del proyecto y el
valor es el objeto Proyecto.
o Métodos:
▪ registrar_profesional(): Permite registrar un nuevo
profesional.
▪ consultar_profesional(): Permite consultar los datos de
un profesional a partir de su id.
▪ actualizar_profesional(): Permite actualizar los datos
de un profesional a partir de su id.
▪ registrar_proyecto(): Permite registrar un nuevo
proyecto.
▪ consultar_proyecto(): Permite consultar los datos de
un proyecto a partir de su id.
▪ actualizar_proyecto(): Permite actualizar los datos de
un proyecto a partir de su id.
▪ listar_proyectos_por_fecha(): Permite obtener una
lista de proyectos dentro de un rango de fechas.
▪ listar_proyectos_por_valor(): Permite obtener una
lista de proyectos dentro de un rango de valores.
▪ listar_proyectos_por_profesional(): Permite obtener
una lista de proyectos asociados a un profesional.
4. Clase Usuario:
o Representa un usuario del sistema.
o Atributos:
▪ username: Nombre de usuario.
▪ password: Contraseña del usuario.
o Métodos:
▪ validar_password(): Verifica si una contraseña cumple
con ciertas reglas de validación.
▪ cambiar_password(): Permite cambiar la contraseña
del usuario, siempre y cuando cumpla con las reglas
de validación.
5. Clase Sistema:

• Representa el sistema en sí, que interactúa con el usuario y


realiza las operaciones del sistema.
• Atributos:
o fundacaqueta: Objeto de la clase Fundacaqueta que
representa la organización.
o usuario_actual: Objeto de la clase Usuario que representa al
usuario actualmente logueado en el sistema.
• Métodos:
o init(): Constructor de la clase que inicializa los atributos.
o iniciar_sesion(): Permite al usuario iniciar sesión en el
sistema.
o cerrar_sesion(): Permite al usuario cerrar sesión en el
sistema.
o menu_principal(): Muestra el menú principal del sistema y
permite al usuario seleccionar una opción.
o gestionar_profesionales(): Permite al usuario realizar
operaciones relacionadas con los profesionales, como
registrar, consultar y actualizar profesionales.
o gestionar_proyectos(): Permite al usuario realizar
operaciones relacionadas con los proyectos, como registrar,
consultar y actualizar proyectos, así como obtener listas de
proyectos según criterios específicos.
o ejecutar(): Método principal que ejecuta el sistema y
controla el flujo de las operaciones.

La clase Sistema es responsable de manejar las interacciones con el


usuario, presentando los diferentes menús y opciones disponibles, y
delegando las operaciones correspondientes a la clase Fundacaqueta
para que realice las acciones sobre los datos almacenados.

También podría gustarte