Gestione di un campionato di calcio

di il
16 risposte

Gestione di un campionato di calcio

Allora salve a tutti, devo fare un programma che gestisca un campionato di calcio che mostri un piccolo menu che dia la possibiltà di
1.Inserire delle squadre del torneo
2.Inserire delle partite giocate indicando le squadre che disputano la partita, i gol di ogni squadra.
3. Mostrare la classifica aggiornata
4. Decretare il vincitore al termine delle 10 partite.
Per ora sono riuscito a completare i primi due punti, ma ho problemi e dilemmi sul terzo punto.
So che teoricamente dovrei usare if per eseguire un controllo dei vittoriosi e dei perdenti o dei pareggiati, so che dovrei usare delle variabili che conteggino sia le vittorie che sconfitte che pareggi maaaa a livello pratico mi perdo e non so come andare oltre. PLS HELP

Questo è quanto ho fatto

#include<iostream>
using namespace std;

struct partita{
string squ1;
string squ2;
int goals1;
int goals2;
};
struct squadra{
	string squad;
		int punti;
		
		

};

int menu(void);
void inser(string v[]);
void giocata(partita p1,partita t1,partita p2, partita t2);
void classifica(string v[],partita p1, partita t1,partita p2, partita t2,int vin,squadra score);

int main(){
int scelta;
	string s[5];
	partita s1;
	partita  g1;    	
    partita  s2;
	partita  g2;
int vinte=0;
		int perse=0;
		int pareggi=0;
squadra pun;

	
do{
		menu();
			cout<<"Cosa vuoi fare?\n"<<endl;
		cin>>scelta;
		
		switch(scelta){
			case 1:
			
			inser(s);
				
					break;
				case 2 :
					giocata(s1,g1,s2,g2);
			
					break;
					case 3 :
						classifica(s,s1,g1,s2,g2,vinte,pun);
							break;
							case 4:
							
								break;
								case 5:
								
									break;
		}
	}while(scelta!=5);
	
	
}


int menu(void){

    cout<<"******GESTIONE CAMPIONATO****** "<<endl;
	
	cout<<"1. Inserisci squadre "<<endl;
	cout<<"2. Inserisci partita "<<endl;
	cout<<"3. Mostra classifica "<<endl;
	cout<<"4. Decreta vincitore "<<endl;
	cout<<"5. Esci"<<endl;
	

}

void inser(string v[]){
cout<<"--------INSERIMENTO SQUADRE--------\n"<<endl;
for(int i=0;i<5;i++){
	cout<<"Inserisci il nome della squadra: ";
	cin>>v[i];
}
}

void giocata( partita p1,partita t1,partita p2,partita t2) {
cout<<"--------INSERIMENTO PARTITA--------\n"<<endl;
int num;
do{
cout<<"Inserisci un numero delle partite tra 1 e 10 "<<endl;
cin>>num;}
while(num>10);


cout<<"Inserisci il nome della 1"<<char (167)<<"squadra: ";
cin>>p1.squ1;
cout<<"Inserisci il risutato della partita: "<<endl;
cin>>t1.goals1;
cout<<"Inserisci il nome della 2"<<char (167)<<"squadra: ";
cin>>p2.squ2;
cout<<"Inserisci il risutato della partita: "<<endl;
cin>>t2.goals2;


}
void classifica(string v[],partita p1,partita t1, partita p2, partita t2, int vin, squadra score){
	cout<<"--------CLASSIFICA--------";
/*	for(int i=0;i<5;i++ ){
		


		if(t1.goals1>t2.goals2){
		score.punti+=3;
		vin++;
		cout<<p1.squ1<<"  "<<t1.goals1;
		}
		else{
			score.punti++;
		}
	
		}*/
}

16 Risposte

  • Re: Gestione di un campionato di calcio

    Manca un vettore di tipo squadra e uno di tipo partita da riempire. I dati non sono pensati in maniera corretta per il codice richiesto.


    .
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Manca un vettore di tipo squadra e uno di tipo partita da riempire. I dati non sono pensati in maniera corretta per il codice richiesto.


    .
    il vettore di tipo squadra sarebbe per l'assegnazione di punti ? tipo
    squadra punt[30]
    
    il vettore invece di tipo partita per cosa dovrei utilizzarlo?
  • Re: Gestione di un campionato di calcio

    Veramente è il nome che hai scelto per le strutture che ti dovrebbe dire tutto.
    Ma l'hai scritto tu il codice o stiamo parlando di codice che hai copiato?
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Veramente è il nome che hai scelto per le strutture che ti dovrebbe dire tutto.
    Ma l'hai scritto tu il codice o stiamo parlando di codice che hai copiato?
    Codice MIO. Mi dai unaa dritta più precisa?
  • Re: Gestione di un campionato di calcio

    Ma allora ci spieghi perché hai scelto quelle strutture e non le usi?
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Ma allora ci spieghi perché hai scelto quelle strutture e non le usi?
    Ma ho detto che mi perdo, ho buttato giù il codice tentando di costruire il programma. Ma ovviamente non è ne perfetto ne completo, ma se mai scrivevo qualcosa mai potevo provare un inizio.
    Ho usato la struttura partita nel main e poi nelle stampe ...E sicuramente dovrei utilizzarle ancora per altro ma come detto mi son perso, ecco perchè volevo un illuminazione . GRazie
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Veramente è il nome che hai scelto per le strutture che ti dovrebbe dire tutto.
    Ma l'hai scritto tu il codice o stiamo parlando di codice che hai copiato?
    aaah ora ho capito. Intendevi

    squadra s[5];
    partita par[10]; 
    giusto?
  • Re: Gestione di un campionato di calcio

    Ripeto ... le strutture (che hai scelto tu) si usano proprio in questo modo. Ecco perché non ho ancora capito come le hai scelte senza saperle usare.

    Comunque ora continua
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Ripeto ... le strutture (che hai scelto tu) si usano proprio in questo modo. Ecco perché non ho ancora capito come le hai scelte senza saperle usare.

    Comunque ora continua
    Sono stato 2 mesetti in pausa dopo aver sentito solo 2 spiegazioni riguardo le strutture con un paio di esercizi, adesso c'è questo compito e quindi mi ritrovo un pò disperso
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Ripeto ... le strutture (che hai scelto tu) si usano proprio in questo modo. Ecco perché non ho ancora capito come le hai scelte senza saperle usare.

    Comunque ora continua
    Adesso però sto punto e a capo, sono rimasto con il non capire come procedere con la classifica
  • Re: Gestione di un campionato di calcio

    Esamina tutti i risultati delle partite e aggiorni i punti delle squadre nel vettore delle squadre.

    Ordina il vettore delle squadre con un algoritmo di ordinamento che conosci e visualizza questo vettore ordinato, stampando squadra e punti
  • Re: Gestione di un campionato di calcio

    oregon ha scritto:


    Esamina tutti i risultati delle partite e aggiorni i punti delle squadre nel vettore delle squadre.

    Ordina il vettore delle squadre con un algoritmo di ordinamento che conosci e visualizza questo vettore ordinato, stampando squadra e punti

    l'Esaminazione dei risultati dovrei farli all'interno di un ciclo for riferito al vettore partita? O tipo cominciare con gli if e poi proseguire con il for per l'aggiornamento delle squadre?
  • Re: Gestione di un campionato di calcio

    MrMind6767 ha scritto:


    oregon ha scritto:


    Esamina tutti i risultati delle partite e aggiorni i punti delle squadre nel vettore delle squadre.

    Ordina il vettore delle squadre con un algoritmo di ordinamento che conosci e visualizza questo vettore ordinato, stampando squadra e punti

    l'Esaminazione dei risultati dovrei farli all'interno di un ciclo for riferito al vettore partita? O tipo cominciare con gli if e poi proseguire con il for per l'aggiornamento delle squadre?




    	cout<<"--------CLASSIFICA--------\n";
    
    
    		if(t1.goals1>t2.goals2){
    				
    		score.punti=3;
    		vin++;
    	cout<<p1.squ1<<score.punti<<endl;}
    		else{
    			score.punti++;
    		}	
    ho fatto in questo modo una prova per vedere se controllasse la prima partita inserita e mi funziona a metà, ossia mi stampa i punti ma non il nome della squadra e non capisco come mai .
    Adesso dovrei fare molteplici if con lo stesso sistema ma conteggiando sia perse che vinte e pareggiate. MA riguardo il costante aggiornamento non so.
  • Re: Gestione di un campionato di calcio

    #include<iostream>
    #include <cstdlib>
    #define N 5
    
    using namespace std;
    
    struct partita{                                   //utilizzo due strutture una per il tipo partita e una per il tipo squadra
    string squ1;                                     
    string squ2;
    int goals1;
    int goals2;
    };
    struct squadra{
    	string squad;
    		int punti=0;
    		
    		
    
    };
    
    int menu(void);
    void inser(squadra v[]);
    void giocata(partita p[],squadra v[]);
    void classifica(squadra v[]);
    void vincitore (squadra v[]);
    
    int main(){
    int scelta;
        squadra sq[5];//array di 5 per le 5 squadre
    	partita par[10];//array di 10 per le 10 partite
      
    
               //uno switch per poter scegliere tra le possibilità del menu e un do while per far ripetere il menu, fino alla scelta 5 che lo arrestA
    do{
    		menu();                         
    			cout<<"Cosa vuoi fare?\n"<<endl;
    		cin>>scelta;
    		
    		switch(scelta){
    			case 1:
    			
    			inser(sq);
    				
    					break;
    				case 2 :
    					giocata(par,sq);
    			
    					break;
    					case 3 :
    						classifica(sq);
    							break;
    							case 4:
    							vincitore(sq);
    								break;
    								case 5:
    								
    									break;
    		}
    	}while(scelta!=5);
    	
    	
    }
    
    //funzione per la creazione del menu anche più sistematico 
    int menu(void){
    
        cout<<"******GESTIONE CAMPIONATO****** "<<endl;
    	
    	cout<<"1. Inserisci squadre "<<endl;
    	cout<<"2. Inserisci partita "<<endl;
    	cout<<"3. Mostra classifica "<<endl;
    	cout<<"4. Decreta vincitore "<<endl;
    	cout<<"5. Esci"<<endl;
    	
    
    }
    //funzione per l'inserimento delle 5 squadre del campionato
    void inser(squadra v[]){
    cout<<"--------INSERIMENTO SQUADRE--------\n"<<endl;
    for(int i=0;i<5;i++){
    	cout<<"Inserisci il nome della squadra: ";
    	cin>>v[i].squad;
    	v[i].punti=0;
    }
    }
    //funzione per l'inserimento delle squadre che giocano per ciascuna delle 10 partite 
    void giocata(partita p[],squadra v[]) {
    cout<<"--------INSERIMENTO PARTITA--------\n"<<endl;
    
    int num;
     
        do {
            cout<<"Inserisci un numero delle partite tra 1 e 10 "<<endl;
            cin>>num;
        } while((num<=0)||(num>10));
    
    
    for(int i=0;i<1;i++){
    cout<<"Inserisci il nome della 1"<<char (167)<<"squadra: ";
    cin>>p[i].squ1;
    cout<<"Inserisci il risutato della partita: "<<endl;
    cin>>p[i].goals1;
    cout<<"Inserisci il nome della 2"<<char (167)<<"squadra: ";
    cin>>p[i].squ2;
    cout<<"Inserisci il risutato della partita: "<<endl;
    cin>>p[i].goals2;
    
     if (p[i].goals1>p[i].goals2) {
            for (int j=0; j<5; j++) {
                if (p[i].squ1==v[j].squad) {
                    v[j].punti=v[j].punti+3;}
            }
        }
            else if (p[i].goals1==p[i].goals2) {
                    for (int j=0; j<5; j++) {
                        if (p[i].squ1==v[j].squad) {
                            v[j].punti=v[j].punti+1;
                            
                        }
                        if (p[i].squ1==v[j].squad) {
                            v[j].punti=v[j].punti+1;
                        
                    }
                    
                }
            }
            else {
              for (int j=0; j<5; j++) {
                  if (p[i].squ1==v[j].squad) {
                      v[j].punti=v[j].punti+3;
                  }
            }
    }
    }
    }
    
     
    
    
    
    
    
    
    void classifica (squadra v[]) {
        squadra temp;
        int min;
        for(int i=0; i<N-1; i++)
        {
        min=i;
    
        for(int j=i+1; j<N; j++)
          if(v[j].punti>v[min].punti) 
            min=j;
    
        temp=v[min];
        v[min].punti=v[i].punti;
        v[i]=temp;
        }
        for (int i=0; i<5; i++) {
            cout<<v[i].squad<<" "<<v[i].punti<<endl;
        }
    }
    void vincitore (squadra v[]) {
        for (int i=0; i<1; i++) {
            if (v[i].punti>v[i+1].punti) {
                cout<<"La squadra "<<v[0].squad<<" vince con "<<v[0].punti<<" punti "<<endl;
            }
                
            }
        }

    Che ne dite?
Devi accedere o registrarti per scrivere nel forum
16 risposte