Questa le altre funzioni:
/ File Associazione.cpp
#include "Associazione.h"
Membro::Membro(string n, string q)
: nome(n), qualifica(q) {}
Associazione::Associazione(string n)
: nome(n) {}
Associazione::~Associazione()
{
unsigned i;
for (i = 0; i < membri.size(); i++)
delete membri;
for (i = 0; i < candidati.size(); i++)
delete candidati;
}
void Associazione::InserisciCandidato(string n)
{
Candidato* c = new Candidato(n);
candidati.push_back(c);
}
unsigned Associazione::CandidatiInProva() const
{
unsigned conta = 0;
for (unsigned i = 0; i < candidati.size(); i++)
if (candidati->Stato() <= 2)
conta++;
return conta;
}
void Associazione::EseguiProve(Data data, vector<unsigned> voti)
{
unsigned i = 0, j = 0;
for (i = 0; i < candidati.size(); i++)
{
if (candidati->Stato() <= 2)
{
candidati->EseguiProva(voti[j], data);
j++;
}
}
}
void Associazione::RegistraAccettazioni(vector<bool> accettazioni)
{
unsigned i, j = 0;
for (i = 0; i < candidati.size(); i++)
if (candidati->Stato() == 4)
{
candidati->DecisioneFinale("Accetta");
}
else if (candidati->Stato() == 3)
{
if (accettazioni[j])
candidati->DecisioneFinale("Accetta");
else
candidati->DecisioneFinale("Rifiuta");
j++;
}
}
void Associazione::NominaNuoviMembri()
{
unsigned i = 0;
string qualifica;
while (i < candidati.size())
{
if (candidati->Stato() == 6 || candidati->Stato() == 7)
{
if (candidati->Stato() == 6)
qualifica = "Esperto";
else
qualifica = "Maestro";
Membro* m = new Membro(candidati->Nome(), qualifica);
membri.push_back(m);
delete candidati;
candidati.erase(candidati.begin() + i);
}
else if (candidati->Stato() == 5)
{
delete candidati;
candidati.erase(candidati.begin() + i);
}
else
i++;
}
}
ostream& operator<<(ostream& os, const Associazione& a)
{
unsigned i;
os << "Membri : " << a.Membri() << endl;
for (i = 0; i < a.Membri(); i++)
os << a.membri->Nome() << " " << a.membri->Qualifica() << endl;
os << "Candidati : " << a.Candidati() << endl;
for (i = 0; i < a.Candidati(); i++)
os << *(a.candidati) << endl;
return os;
}
|