may 14

Gracias al mal diseño de la clase anterior se nos pide que rehagamos gran parte del código para mejorar la limpieza del código implementado. Para ello en este segundo bloque vamos a ver como se usa:

  1. Herencia.
  2. Polimorfismo dinámico
  3. Contenedores de Objetos de la librería STL
  4. Excepciones

Para ello nos dan el siguiente enunciado:
Herencia:

Los tres tipos de investigadores de un proyecto (becario, Contratado y Fijo) se van a implementar en clases independientes. Los becarios son investigadores que van a disponer de una beca que durará un número determinado de meses y su salario será una cantidad fija al mes. Los contratados son investigadores vinculados al proyecto durante un número determinado de días, y su salario será en función de los días trabajadosLos investigadores fijos tendrán como sueldo un porcentaje del presupuesto global del proyecto.

Polimorfismo dinámico:

La clase ListaInvestigadores tendrá que gestionar un número variable de investigadores que podrán ser o bien becarios, contratados o fijos. La función toString y calcularSalario serán especificas para cada clase. La funcionalidad de listar investigadores y una nueva para listar el salario de todos los investigadores tendrán que usar la ligadura dinámica.

STL:

Para implementar la clase ListaInvestigadores sustituir se debe (supongo que quiere decir “Se debe substituir”) el aarray dinámico de punteros a objetos de tipo investigador por un vector de la STL. Para conseguir la requerida ligadura dinámica del apartado anterior el tipo base de la clase contenedor tiene que ser un puntero a la clase Investigador ( que va a poder apuntar a los objetos de la clase Becario, Contratado o fijo). Realizar todos los cambios oportunos para mantener las mismas funcionalidades requeridas en el proyecto del Bloque I, añadiendo una nueva para listar el salario de todos los investigadores.
Excepciones:
Todos  los  errores  que  anteriormente  se  mostraban  por  consola  y  hacían  que  el programa se detuviera, deben ser gestionados mediante excepciones.

Como ya es costumbre en la próxima semana iré enlazando todas las clases que compondrán nuestro código en los siguientes enlaces:

Clase Fecha. ( se mantiene igual no cambia nada)

Clase Investigador (Cambios la semana que viene)

Clase ListaInvestigadores (Cambios la semana que viene)

Clase Proyecto ( supongo que haré algunos cambios)

Main ( algoritmo Principal) Queda pendiente cambiar el logo de Snupi en el menú por el de superman

2 Responses to “Pequeño proyecto en C++ Bloque2 (segunda parte)”

  1. pobo dice:

    Hola, me ha servido de mucho el proyecto del bloque1 a la hora de estudiarlo, podrias subir tambien el del bloque2? gracias y un saludo

  2. jgalonso dice:

    Ando un poco justo de tiempo pero en cuanto pueda te la subo

Leave a Reply

preload preload preload