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!