Cpp/Exámenes Resueltos (Segundo Semestre)/Junio2018CEG/main.cpp
2019-06-20 13:06:16 +02:00

94 lines
2.1 KiB
C++

//Examen Junio 2018 - FP
//Grupos C, E y G.
//Fernando Méndez Torrubiano
#include "Departamentos.h"
#include "checkML.h"
using namespace std;
int menu();
int main() {
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); //Muestra fugas de memoria.
system("chcp 1252"); //Castellano.
system("cls");
tDepartamento dpto;
tListaContratos lista;
tPrioridades prioridades;
tEmpleado empleado;
string id, nif;
int opcion, pos = -1;
if (cargarPrioridades(prioridades)) {
if (cargarContratos(lista, prioridades)) {
cout << "Identificador del departamento: ";
cin >> id;
cout << endl;
inicializar(dpto, id);
do {
opcion = menu();
switch (opcion){
case 1:
pos = seleccionarContratos(lista);
if (!insertarEmpleado(lista, dpto, pos)) {
cout << "Error al insertar el empleado." << endl;
}
break;
case 2:
cout << "NIF del emplieado: ";
cin >> nif;
cout << endl;
pos = buscarEmpleado(dpto, nif);
if (pos != -1) {
mostrarTareas(dpto.empleado[pos].puntero->lista);
}
else {
cout << "El empleado no está en el departamento." << endl;
}
cout << endl;
break;
case 3:
if (dpto.cont != 0) {
cout << endl << "Los empleados del departamento '" << dpto.id << "' son:" << endl;
mostrarDepartamentos(dpto);
}
else {
cout << "No hay empleados." << endl;
}
cout << endl;
break;
default:
break;
}
} while (opcion != 0);
liberar(lista);
liberar(dpto);
}
else {
cout << "Error al cargar la lista de contratos." << endl;
}
}
else {
cout << "Error al cargar las prioridades." << endl;
}
return 0;
}
int menu() {
int opc = -1;
cout << "1.-Insertar empleado en nuevo dpto." << endl;
cout << "2.-Mostrar tareas de un empleado." << endl;
cout << "3.-Mostrar los empleados actuales de un dpto." << endl;
cout << "0.-SALIR." << endl;
do {
cout << "Introduzca una opc: ";
cin >> opc;
} while (opc < 0 || opc > 3);
return opc;
}