13.07.2015 Views

ExSept - Tecnun

ExSept - Tecnun

ExSept - Tecnun

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Examen de Informática II y Fundamentos de Programación – Septiembre 2003Pág.5La clase Perfil tiene una sola variable miembro tipo bool que indica si el puesto requiere carnet deconducir o no. El método showPerfil tiene como misión imprimir las características del perfilconsiderado; como es virtual, se debe redefinir en las clases derivadas.Las clases PerfilTitulado y PerfilEspecialista recogen las características profesionales de lospuestos y de las personas según requieran o no un título universitario. Como se puede apreciar,sólo a los titulados se les pide como requisito que tengan conocimientos informáticos, por mediode la variable miembro conocInfor del tipo bool. El método showPerfil de estas clases se encargade sacar por consola todos los datos de los perfiles. Los datos se introducirán por medio de losrespectivos constructores.Y qué relación existe entre la clase Perfil y la clase Empleo?clase Empleo:La clase Empleo tiene sólo una variable miembro, es un puntero a la clase Perfil, el cual sirvepara crear un nuevo objeto tipo PerfilTitulado o PerfilEspecialista. Es en esta clase donde sedebe crear un nuevo objeto de la clase Perfil (véase el método PideDatos). Esta clase tiene dosclases derivadas, la clase OfertaEmpleo (para las empresas que desean hacer una oferta deempleo) y la clase DemandaEmpleo, para las personas que están solicitando trabajo. Acontinuación se pueden ver las variables miembro y los métodos de cada una de estas clases:class Empleo{Perfil *pf;public:void PideDatos(){//crear uno de estos dos perfiles, según quiera el usuario//pf = new PerfilTitulado;// o este otro//pf = new PerfilEspecialista;}//destructor??void infoEmpleo(){//imprime datos en consola// y llama al metodo showPerfil de la clase Perfil}};class OfertaEmpleo : public Empleo{char empresa[30];char puesto[30];double sueldo;public:OfertaEmpleo(){// Pedir datos en el constructor;}void infoEmpleo(){//imprime datos en consola y llama a infoEmpleo de clase empleo}};class DemandaEmpleo : public Empleo{char nombre[30];public:DemandaEmpleo(){// Pedir datos en el constructor;Escuela Superior de Ingenieros – <strong>Tecnun</strong> – Universidad de Navarra


Examen de Informática II y Fundamentos de Programación – Septiembre 2003Pág.6};}void infoEmpleo(){//imprime datos en consola llama a infoEmpleo de clase empleo}La clase OfertaEmpleo tiene 3 variables miembro: nombre de la empresa que ofrece el empleo, elpuesto y el sueldo (ver la definición de esta clase para ver los tipos de datos). Los datos se pidenpor medio del constructor y tiene un método infoEmpleo para imprimir los datos introducidos.La clase DemandaEmpleo tiene sólo una variable, el nombre de la persona que está buscandotrabajo. Recordar que esta clase deriva de la clase Empleo, lo que significa que hereda el objetode la clase Perfil que tiene dicha clase.main():Desde el programa principal se pueden ir agregando las distintas ofertas o demandas de empleo,lo cual se debe hacer por medio de un menú, que tiene 4 opciones:En el caso de Agregar una oferta, los datos que se pedirán se pueden ver en la siguiente figura(siempre que aparece el signo ? en la consola, se pide que el usuario introduzca un dato):Como se puede ver en la figura anterior, en la oferta de trabajo, después de pedir los datos deEmpresa, Puesto y Sueldo, se pregunta qué tipo de perfil se desea, Titulado o Especialista, segúnlo cual se piden unos u otros datos.En la opción 2, de Agregar Demanda, también se solicita un perfil a agregar. En nuestro ejemplovamos a introducir el perfil de especialista, pero que quede claro que se puede escogercualquiera:Escuela Superior de Ingenieros – <strong>Tecnun</strong> – Universidad de Navarra


Examen de Informática II y Fundamentos de Programación – Septiembre 2003Pág.7Por último, la tercera opción permitirá imprimir todas las ofertas y demandas que se hanintroducido, lo cual se hará llamando al método infoEmpleo() de las clases respectivas:OfertaEmpleo o DemandaEmpleo. Se puede ver que se han introducido dos Ofertas de empleo,de 2 perfiles diferentes, uno titulado y otro de un especialista; y una Demanda de empleo, cuyoperfil es el de un especialista:A continuación se da la estructura de la función principal main() del programa. Si desea puedeutilizar otra:void main(){int contador=0, contDm=0, opc;Empleo *of[30]; //Lista de objetoswhile(true){opc=Menu();switch (opc){case 4: /* terminar*/ break;case 1: /*crear objeto OfertaEmpleo y agregar a lista*/ break;case 2: /*crear objeto DemandaEmpleo y agregar a lista*/ break;case 3: /* Listado */ break;}}}// destruir objetos creadoscout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!