Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Funzioni
Forum - C/C++ - Funzioni - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
gesux (Normal User)
Newbie


Messaggi: 9
Iscritto: 07/05/2007

Segnala al moderatore
Postato alle 22:28
Mercoledì, 09/05/2007
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;
            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);
}


PM
Avatar
gesux (Normal User)
Newbie


Messaggi: 9
Iscritto: 07/05/2007

Segnala al moderatore
Postato alle 22:29
Mercoledì, 09/05/2007
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;
}

PM
Avatar
gesux (Normal User)
Newbie


Messaggi: 9
Iscritto: 07/05/2007

Segnala al moderatore
Postato alle 22:30
Mercoledì, 09/05/2007
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;
  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;
}

PM
Avatar
gesux (Normal User)
Newbie


Messaggi: 9
Iscritto: 07/05/2007

Segnala al moderatore
Postato alle 22:32
Mercoledì, 09/05/2007
Maturalmente ci sono altre funzioni:
Candidato.h e associazione.h
Maturalmente se ti servono me lo dici.
Ti ringrazio anticipatamente
Ciao

PM
Avatar
vbdummy (Normal User)
Newbie


Messaggi: 7
Iscritto: 07/05/2007

Segnala al moderatore
Postato alle 23:00
Mercoledì, 09/05/2007
si ma che problema hai?
Posta l'errore non il codice....

Ultima modifica effettuata da vbdummy il 09/05/2007 alle 23:01
PM
Avatar
gesux (Normal User)
Newbie


Messaggi: 9
Iscritto: 07/05/2007

Segnala al moderatore
Postato alle 23:15
Mercoledì, 09/05/2007
Non riesco a compilarlo cioè non appare il comand che serve per visuallizare il menu.

PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 19:35
Venerdì, 11/05/2007
Testo quotato

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.


PM
Pagine: [ 1 2 ] Precedente | Prossimo