Oppure

Loading
09/05/07 19:52
vbdummy
Postami il problema e se non riesco io, ci sarà sicuramente qualcuno nel forum che ti aiuterà.

Ciao
aaa
09/05/07 20:28
gesux
Grazie mille ti do la funzione main.cpp
// File main.cpp

#include "Associazione.h"

int main()
{
Associazione a("Amici della pelota";);
int scelta;
do
{
cout << a;
cout << "Quale operazione vuoi effettuare?\n"
<< "1: Aggiungi candidato\n"
<< "2: Esegui prove\n"
<< "3: Registra Accettazioni\n"
<< "4: Nomina nuovi membri\n"
<< "0: Esci\n\n"
<< "Scelta: ";
cin >> scelta;
cout << endl;
switch (scelta)
{
case 1:
{
string nome;
cout << "Nome candidato : ";
cin >> nome;
a.InserisciCandidato(nome);
}
break;
case 2:
{
Data d;
unsigned dim = a.CandidatiInProva();
vector<unsigned> v(dim);
cout << "Data : ";
cin >> d;
cout << "Voti (" << dim << " candidati in prova) : ";
for (unsigned i = 0; i < dim; i++)
cin >> v[i];
a.EseguiProve(d,v);
}
break;
case 3:
{
vector<bool> v;
string s;
cout << "Vettore accettazioni: ";
for (unsigned i = 0; i < a.Candidati(); i++)
if (a.VediCandidato(i)->Stato() == 3)
{
cout << a.VediCandidato(i)->Nome() << " ? (si/no) : ";
cin >> s;
if (s == "si";)
v.push_back(true);
else
v.push_back(false);
}
a.RegistraAccettazioni(v);
}
break;
case 4:
a.NominaNuoviMembri();
}
}
while (scelta != 0);
}

aaa
09/05/07 20:29
gesux
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[i];
for (i = 0; i < candidati.size(); i++)
delete candidati[i];
}

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[i]->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[i]->Stato() <= 2)
{
candidati[i]->EseguiProva(voti[j], data);
j++;
}
}
}

void Associazione::RegistraAccettazioni(vector<bool> accettazioni)
{
unsigned i, j = 0;
for (i = 0; i < candidati.size(); i++)
if (candidati[i]->Stato() == 4)
{
candidati[i]->DecisioneFinale("Accetta";);
}
else if (candidati[i]->Stato() == 3)
{
if (accettazioni[j])
candidati[i]->DecisioneFinale("Accetta";);
else
candidati[i]->DecisioneFinale("Rifiuta";);
j++;
}
}

void Associazione::NominaNuoviMembri()
{
unsigned i = 0;
string qualifica;
while (i < candidati.size())
{
if (candidati[i]->Stato() == 6 || candidati[i]->Stato() == 7)
{
if (candidati[i]->Stato() == 6)
qualifica = "Esperto";
else
qualifica = "Maestro";
Membro* m = new Membro(candidati[i]->Nome(), qualifica);
membri.push_back(m);
delete candidati[i];
candidati.erase(candidati.begin() + i);
}
else if (candidati[i]->Stato() == 5)
{
delete candidati[i];
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[i]->Nome() << " " << a.membri[i]->Qualifica() << endl;

os << "Candidati : " << a.Candidati() << endl;
for (i = 0; i < a.Candidati(); i++)
os << *(a.candidati[i]) << endl;
return os;
}
aaa
09/05/07 20:30
gesux
Ultima funzione:
/ 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[i];
for (i = 0; i < candidati.size(); i++)
delete candidati[i];
}

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[i]->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[i]->Stato() <= 2)
{
candidati[i]->EseguiProva(voti[j], data);
j++;
}
}
}

void Associazione::RegistraAccettazioni(vector<bool> accettazioni)
{
unsigned i, j = 0;
for (i = 0; i < candidati.size(); i++)
if (candidati[i]->Stato() == 4)
{
candidati[i]->DecisioneFinale("Accetta";);
}
else if (candidati[i]->Stato() == 3)
{
if (accettazioni[j])
candidati[i]->DecisioneFinale("Accetta";);
else
candidati[i]->DecisioneFinale("Rifiuta";);
j++;
}
}

void Associazione::NominaNuoviMembri()
{
unsigned i = 0;
string qualifica;
while (i < candidati.size())
{
if (candidati[i]->Stato() == 6 || candidati[i]->Stato() == 7)
{
if (candidati[i]->Stato() == 6)
qualifica = "Esperto";
else
qualifica = "Maestro";
Membro* m = new Membro(candidati[i]->Nome(), qualifica);
membri.push_back(m);
delete candidati[i];
candidati.erase(candidati.begin() + i);
}
else if (candidati[i]->Stato() == 5)
{
delete candidati[i];
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[i]->Nome() << " " << a.membri[i]->Qualifica() << endl;

os << "Candidati : " << a.Candidati() << endl;
for (i = 0; i < a.Candidati(); i++)
os << *(a.candidati[i]) << endl;
return os;
}
aaa
09/05/07 20:32
gesux
Maturalmente ci sono altre funzioni:
Candidato.h e associazione.h
Maturalmente se ti servono me lo dici.
Ti ringrazio anticipatamente
Ciao
aaa
09/05/07 21:00
vbdummy
si ma che problema hai?
Posta l'errore non il codice....
Ultima modifica effettuata da vbdummy 09/05/07 21:01
aaa
09/05/07 21:15
gesux
Non riesco a compilarlo cioè non appare il comand che serve per visuallizare il menu.
aaa
11/05/07 17:35
netarrow
Postato originariamente da gesux:

vbdummy ti devo chiedere una cosa importante su un progetto che non riesco a compilare e che non trovo l'errore mi daresti una mano.Magari ci scambiamo l'email?


così si va :ot: dai dadi all'associazione degli amici della plaia pleia, nn ricordo che era.

Il forum non serve a questo, già il fatto di aver copiato il programma ti ha fatto guadagnare tempo, suddividere e ordinare il programma puoi farlo tu.

Il titolo inoltre è ambiguo.

Loked.

aaa