Oppure

Loading
30/04/22 14:44
MrMind6767
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 le 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

using namespace std;

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

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

int main(){
int scelta;
squadra s[5];//array di 5 perle 5 squadre
	int g[10];//array di 10 perchè ci sono 10 giocate 
	partita  s1;
	partita  g1;    	
    partita s2;
	partita  g2;
int vinte=0;
		int perse=0;
		int pareggi=0;
squadra pu;


do{
		menu();
			cout<<"Cosa vuoi fare?\n"<<endl;
		cin>>scelta;
		
		switch(scelta){
			case 1:
			
			inser(s);
				
					break;
				case 2 :
					giocata(g,s1,g1,s2,g2);
			
					break;
					case 3 :
						classifica(s,g,s1,g1,s2,g2,vinte,perse,pareggi,pu);
							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(squadra v[]){
cout<<"--------INSERIMENTO SQUADRE--------\n"<<endl;
for(int i=0;i<5;i++){
	cout<<"Inserisci il nome della squadra: ";
	cin>>v[i].squad;
}
}

void giocata(int p[], partita p1,partita t1,partita p2,partita t2) {
cout<<"--------INSERIMENTO PARTITA--------\n"<<endl;


for(int i=0;i<1;i++){
do{
cout<<"Inserisci un numero delle partite tra 1 e 10 "<<endl;
cin>>p[i];}while(p[0]>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(squadra v[],int p[],partita p1, partita t1,partita p2, partita t2,int vin,int per,int par,squadra score){
	cout<<"--------CLASSIFICA--------\n";


		if(t1.goals1>t2.goals2){
				
		score.punti=3;
		vin++;
	cout<<p1.squ1; cout<<score.punti<<endl;}
		else{score.punti=0;
		per++;
			score.punti++;
		}	
			
		}
	
		
		
	


Mi è stato detto di dover usare il selection sort nella classifica per ordina, ma non l'ho mai usato. In più ho dubbi su come far si che il ciclo if verifichi anche le altre situzioni. Tipo pareggi, e sconfitte delle 10 partite totali
Ultima modifica effettuata da Thejuster 01/05/22 6:38
30/04/22 20:15
nessuno
Puoi usare qualsiasi tipo di ordinamento anche un semplice bubble sort.
Ultima modifica effettuata da AldoBaldo 12/05/22 11:16
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
02/05/22 7:44
MrMind6767
Il fatto è che non ho mai usato un tipo di ordinamento, non so come muovermi a livello pratico
02/05/22 7:46
MrMind6767
Poi il come ho analizzato il punteggio credi vada bene? Non capisco come mai non mi stampi la squadra giocatrice
02/05/22 13:18
nessuno
Studia il "bubble sort" (ordinamento a bolle) e, quando lo hai compreso bene, lo applichi.
Torni qui con il codice per capire se va bene.

In ogni caso, ci sono molti punti da rivedere/riscrivere. Partendo dall'inserimento squadre, in cui va azzerato il numero di punti per ogni squadra

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;
   }
}


Poi le partite ... intanto il nome delle squadre non va ripetuto all'interno della struttura, ma va messo un riferimento all'indice dell'array delle squadre

struct partita
{
   int sqCasa;
   int sqTrasf;
   int gCasa;
   int gTasf;
};


e poi va dichiarato un array delle partite. Dove l'hai messo?

Essendoci 5 squadre le partite saranno 10 partite quindi

partita p[10];


poi inserisci i dati nelle partite e aggiorni il primo array con i dati del secondo ... ordini il primo e lo stampi ...
Ultima modifica effettuata da AldoBaldo 12/05/22 11:17
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
03/05/22 14:07
AldoBaldo
Magari ti può essere utile per farti un'idea di come funzioni il meccanismo dell'ordinamento bubble sort.

pierotofy.it/pages/sorgenti/dettagli/19429-Bubble_Sort_Demo/
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
04/05/22 14:30
MrMind6767
Postato originariamente da AldoBaldo:
Magari ti può essere utile per farti un'idea di come funzioni il meccanismo dell'ordinamento bubble sort.

pierotofy.it/pages/sorgenti/dettagli/19429-Bubble_Sort_Demo/

grazie
04/05/22 14:43
MrMind6767
Stavo sistemando un pò di cose ma nel farlo mi ha riportato un errore per il cin, che non riesco a capire


#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(squadra v[]);
void giocata(partita p[]);
//void classifica(squadra v[],partita p[],int vin,int per, int par);

int main(){
int scelta;
squadra s[5];//array di 5 perle 5 squadre
	partita g[10];//array di 10 perchè ci sono 10 giocate 
int vinte=0;
		int perse=0;
		int pareggi=0;



do{
		menu();
			cout<<"Cosa vuoi fare?\n"<<endl;
		cin>>scelta;
		
		switch(scelta){
			case 1:
			
			inser(s);
				
					break;
				case 2 :
					giocata(g);
			
					break;
					case 3 :
					//	classifica(s,g,vinte,perse,pareggi);
							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(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;
}
}

void giocata(partita p[]) {
cout<<"--------INSERIMENTO PARTITA--------\n"<<endl;


for(int i=0;i<1;i++){
do{
cout<<"Inserisci un numero delle partite tra 1 e 10 "<<endl;
[b]cin>>p[i][/b];}
while(p[0]>10);
cout<<"Inserisci il nome della 1"<<char (167)<<"squadra: ";
cin>>p[i].squi1;
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;

}





}


Al cin che ho evidenziato

[Error] no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'partita'):-?