Gestione campionato di calcio!

di il
4 risposte

Gestione campionato di calcio!

Salve a tutti!
Sono nuovo di qua e sono alla mia prima esperienza di programmazione in C++. Devo creare un programma di questo tipo:

\"Si realizzi un programma che gestisce un campionato di calcio a girone. Per prima cosa, il programma richiede di inserire i dati delle squadre; quindi vengono organizzati i turni del girone, dove per ciascun turno l’utente indica le singole partite (squadra in casa contro squadra fuori casa). Infine, quando le verie partite vengono giocate, il programma deve
consentire di inserire i risultati. Da ultimo, il programma deve esser ein grado di calcolare la classifica del campionato. Opzionalmente, si possono aggiungere alcune funzionalità statistiche.\"

Ho iniziato a lavorarci sopra e per adesso mi sto dedicando alla parte dell'inserimento di informazioni tralasciando controlli vari..e questo è quello che ho creato (principalmente con uso di cicli, strutture e vettori):

#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <string.h>

using namespace std;

typedef struct {
char nome[15];
int partite_casa, partite_fuori, punti, vinte, pareggiate, perse, gol_fatti, gol_subiti;
} SQUADRA;

typedef struct {
char squadra_casa[15];
char squadra_fuori[15];
int punteggio_casa, punteggio_fuori;
} PARTITA;

typedef struct {
PARTITA incontro;
} GIORNATA;

int main()
{
int scelta, numero_squadre, i, j, numero_giornate, numero_incontri;
SQUADRA *squadra;
PARTITA *incontro;
GIORNATA *giornata;

cout << \"***************** GESTIONE TORNEO ***********************\";

do
{
cout << \"\\n\\nScegli un'operazione da fare\\n\\n\";
cout << \"1. Crea campionato\\n\";
cout << \"2. Inserisci i risultati\\n\";
cout << \"3. Guarda la classifica\\n\";
cout << \"4. Esci dal menu del campionato\\n\";
cout << \"5. Ringraziamenti\\n\\n\";
cout << \"Scelta: \";
cin >> scelta;
} while(scelta!=1 && scelta!=2 && scelta!=3 && scelta!=4 && scelta!=5);

switch(scelta)
{
case 1:
{
cout << \"\\n*****Hai scelto di creare un nuovo campionato*****\\n\";
cout << \"Inserisci il numero delle squadre del tuo campionato: \";
cin >> numero_squadre;

squadra = new SQUADRA[numero_squadre];
if(squadra == NULL)
{
cout << \"\\nMemoria esaurita!\";
exit(1);
}

for(i=0; i<numero_squadre; i++)
{
cout << \"Inserisci il nome della squadra \" << i+1 << \": \";
cin.getline(squadra[i+1].nome, 14);
} /*
cout << \"\\nI nomi delle squadre che hai inserito sono:\\n\";

for(i=0; i<numero_squadre; i++)
cout << \"Squadra numero\" << i+1 << \": \" << squadra[i+1].nome << endl; */

delete squadra;

numero_giornate = (numero_squadre-1)*2;
cout << \"\\nIl numero totale delle giornate da giocare sono: \" << numero_giornate;
cout << \"\\nDelle quali \" << numero_giornate/2 << \" per l'andata e \" << numero_giornate/2 << \" per il ritorno\";
numero_incontri = numero_squadre/2;

incontro = new PARTITA[numero_incontri];
if(incontro == NULL)
{
cout << \"\\nMemoria esaurita!\";
exit(1);
}

for(i=0; i<numero_giornate/2; i++)
{
cout << \"\\n\\nInserimento delle partite per la giornata numero \" << i+1;
for(j=0; j<numero_incontri; j++)
{
cout << \"\\nPartita numero \" << j+1 << \", squadra in casa: \";
cin.getline(incontro[j+1].squadra_casa, 14);
cout << \"Partita numero \" << j+1 << \", squadra fuori casa: \";
cin.getline(incontro[j+1].squadra_fuori, 14);
delete incontro;
}
}
}
break;

case 2:
cout << \"Hai scelto il caso 2\\n\\n\";
break;

case 3:
cout << \"Hai scelto il caso 3\\n\\n\";
break;

case 4:
cout << \"Hai scelto di uscire dal menu...alla prossima!\\n\\n\";
break;

case 5:
cout << \"Hai scelto il caso 5\\n\\n\";
break;
}
system(\"PAUSE\");
return EXIT_SUCCESS;
}

I problemi che mi dà è che molto spesso si blocca, in base al numero di squadre che vengono inserite può fermarsi e non continuare il processo; e inoltre quando uso l'istruzione cin.getline(...) non mi premette di inserire il primo valore ma passa direttamente al secondo. Se qualcuno mi sa dire in cosa sbaglio e come posso risolverlo gliene sarei grato. Sono ben accetti anche consigli e opinioni riguardo al progetto.
Grazie!

4 Risposte

  • Re: Gestione campionato di calcio!

    Cout << \"\\n\\nInserimento delle partite per la giornata numero \" << i+1;
    for(j=0; j<numero_incontri; j++)
    {
    cout << \"\\nPartita numero \" << j+1 << \", squadra in casa: \";
    cin.getline(incontro[j+1].squadra_casa, 14);
    cout << \"Partita numero \" << j+1 << \", squadra fuori casa: \";
    cin.getline(incontro[j+1].squadra_fuori, 14);
    delete incontro;
    }
    }
    }
    break;

    case 2:
    cout << \"Hai scelto il caso 2\\n\\n\";
    break;

    case 3:
    cout << \"Hai scelto il caso 3\\n\\n\";
    break;

    case 4:
    cout << \"Hai scelto di uscire dal menu...alla prossima!\\n\\n\";
    break;

    case 5:
    cout << \"Hai scelto il caso 5\\n\\n\";
    break;
    }
    system(\"PAUSE\");
    return EXIT_SUCCESS;
    }

    I problemi che mi dà è che molto spesso si blocca, in base al numero di squadre che vengono inserite può fermarsi e non continuare il processo; e inoltre quando uso l'istruzione cin.getline(...) non mi premette di inserire il primo valore ma passa direttamente al secondo. Se qualcuno mi sa dire in cosa sbaglio e come posso risolverlo gliene sarei grato. Sono ben accetti anche consigli e opinioni riguardo al progetto.
    Grazie!
  • Re: Gestione campionato di calcio!

    #include <iostream>
    #include <cstdlib>
    #include <stdlib.h>
    #include <string.h>
    #define DIM 15
    using namespace std;

    typedef struct {
    int squadre,nome;
    int partite_casa, partite_fuori, punti, vinte, pareggiate, perse, gol_fatti, gol_subiti;
    } SQUADRA ;

    typedef struct {
    char squadra_casa[15];
    char squadra_fuori[15];
    int punteggio_casa, punteggio_fuori;
    } PARTITA;

    typedef struct {
    PARTITA incontro;
    } GIORNATA;

    int main()
    {
    int scelta, numero_squadre, i, j, numero_giornate, numero_incontri,squadra_fuori,squadra_casa, squadre_nome;
    SQUADRA *squadra;
    PARTITA *incontro;
    GIORNATA *giornata;
    int squadra_nome [15];

    do
    {

    cout << "***************** GESTIONE TORNEO ***********************";
    cout << "\\n\\n Scegli un'operazione da fare\\n\\n"<<endl;
    cout << "1. Crea campionato\\n" <<endl;
    cout << "2. Inserisci i risultati\\n"<<endl ;
    cout << "3. Guarda la classifica\\n" <<endl;
    cout << "4. Esci dal menu del campionato\\n"<<endl ;
    cout << "5. Ringraziamenti\\n\\n" <<endl;
    cout << "Scelta: " ;
    cin >> scelta;
    } while(scelta!=1 && scelta!=2 && scelta!=3 && scelta!=4 && scelta!=5);

    switch(scelta)
    {
    case 1:
    {
    cout << "\\n*****Hai scelto di creare un nuovo campionato*****\\n "<<endl;
    cout << "Inserisci il numero delle squadre del tuo campionato: ";
    cin >> numero_squadre;

    squadra = new SQUADRA;
    if(squadra == NULL)
    {
    cout << "\\n Memoria esaurita! ";
    exit(1);
    }

    for(i=0; i<numero_squadre; i++)
    {
    cout<< "Inserisci il nome della squadre: " << i+1 ;
    cin>>squadre_nome ,15;

    }


    for(i=0; i<numero_squadre; i++)
    cout <<(numero_squadre ,15);

    delete squadra;

    numero_giornate = (numero_squadre-1)*2;
    cout << "\\n Il numero totale delle giornate da giocare sono: " << numero_giornate;
    cout << "\\n Delle quali " << numero_giornate/2 << " per l'andata e " << numero_giornate/2 << " per il ritorno";
    numero_incontri = numero_squadre/2;

    incontro = new PARTITA[numero_incontri];
    if(incontro == NULL)
    {
    cout << "\\n Memoria esaurita! ";
    exit(1);
    }

    for(i=0; i<numero_giornate/2; i++)
    {
    cout << "\n\\n Inserimento delle partite per la giornata numero " << i+1;
    for(j=0; j<numero_incontri; j++)
    {
    cout << "\\n Partita numero " << j+1 << " squadra in casa:";
    cin>>(incontro[j+1]. squadra_casa [14]);
    cout << "Partita numero " << j+1 << " squadra fuori casa: ";
    cin>>(incontro[j+1]. squadra_fuori [14]);
    delete incontro;


    break;
    case 2:
    cout << "Hai scelto il caso 2\\n\\n"<<endl;
    break;
    case 3:
    cout << "Hai scelto il caso 3\\n\\n"<<endl;
    break;
    case 4:
    cout << "Hai scelto di uscire dal menu...alla prossima!\\n\\n"<<endl;
    break;
    case 5:
    cout << "Hai scelto il caso 5\\n\\n"<<endl;
    break;

    system("pause");
    return EXIT_SUCCESS;
    }
    }
    }
    }}
    Ecco a te
  • Re: Gestione campionato di calcio!

    Spero che nel frattempo il problema fosse stato risolto: hai risposto a un post di 8 anni fa!
  • Re: Gestione campionato di calcio!

    Meglio tardi che mai
Devi accedere o registrarti per scrivere nel forum
4 risposte