52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#include "Departamentos.h"
|
|
using namespace std;
|
|
|
|
void inicializar(tDepartamento& departamento, std::string& id) {
|
|
departamento.cont = 0;
|
|
departamento.id = id;
|
|
departamento.empleado = new tEmpleado[MAX_EMPLEADOS];
|
|
}
|
|
|
|
int buscarEmpleado(tDepartamento& departamento, std::string& nif) {
|
|
int pos = departamento.cont - 1;
|
|
bool encontrado = false;
|
|
|
|
while (!encontrado && pos >= 0) {
|
|
if (departamento.empleado[pos].puntero->nif == nif) {
|
|
encontrado = true;
|
|
}
|
|
else {
|
|
pos--;
|
|
}
|
|
}
|
|
|
|
return pos;
|
|
}
|
|
|
|
bool insertarEmpleado(tListaContratos& contratos, tDepartamento& departamento, int& pos) {
|
|
bool insertado = false;
|
|
int i = buscarEmpleado(departamento, contratos.contrato[pos]->nif);
|
|
|
|
if (i == -1) {
|
|
departamento.empleado[departamento.cont].puntero = contratos.contrato[pos];
|
|
departamento.cont++;
|
|
departamento.empleado->numero = departamento.cont;
|
|
insertado = true;
|
|
}
|
|
|
|
return insertado;
|
|
}
|
|
|
|
void mostrarEmpleado(tEmpleado& empleado, int& i) {
|
|
cout << right << setw(3) << i+1 << ".-" << setw(25) << empleado.puntero->nombre << setw(10) << "num.: " << empleado.numero << endl;
|
|
}
|
|
|
|
void mostrarDepartamentos(tDepartamento& departamento) {
|
|
for (int i = 0; i < departamento.cont; i++){
|
|
mostrarEmpleado(departamento.empleado[i], i);
|
|
}
|
|
}
|
|
|
|
void liberar(tDepartamento& departamento) {
|
|
delete[] departamento.empleado;
|
|
} |