3E: Soluzione esercizio in C++ con l'uso di Array, Void e Switch Case



Soluzione dello studente Leonardo Ferrari

Realizzare un programma che stampi la classifica di serie A, le squadra vincitrice dello scudetto, le squadre che parteciperanno alla Champions League, all'Europa League, le squadre retrocesse, l'ultima in classifica.
Il programma deve consentire inoltre di cercare una squadra e di visualizzare il punteggio in classifica. Infine bisogna riassegnare i punteggi alle squadre con la funzione random e stampare il nuovo elenco.

#include <iostream>
#include <string>
#define n 20
#include <stdlib.h>
#include <ctime>
#include <cstdlib>

using namespace std;
int punteggio[n]={65,52,36,14,58,46,21,47,66,59,95,20,85,35,24,16,57,29,37,61};
string squadre[n]={"Inter", "Milan", "Juve","Lazio","Cagliari","Lecce","Bologna","Roma","Atalanta","Verona","Parma","Sassuolo","Udinese","Samdoria","Spal","Fiorentina","Brescia","Genoa","Torino","Napoli"};

void max(){
int massimo=0;
string squadra_max;
int i;

for(i=0;i<n;i++){
if(massimo<punteggio[i]){
massimo=punteggio[i];
squadra_max=squadre[i];
}
}

cout<<"La squadra con il punteggio massimo e': "<<squadra_max<<"\t"<<massimo<<endl;
}

void min(){
int minimo=punteggio[0];
string squadra_min;
int i;

for(i=0;i<n;i++){
if(minimo>punteggio[i]){
minimo=punteggio[i];
squadra_min=squadre[i];
}
}

cout<<"La squadra con il punteggio minimo e': "<<squadra_min<<"\t"<<minimo<<endl;
}

void ordina(){
int appoggio;
string trampolino;
int i;
int k;
int classifica=1;

for(i=0;i<n;i++){
for(k=0;k<n-1-i;k++){
if(punteggio[k]<punteggio[k+1]){
appoggio=punteggio[k];
punteggio[k]=punteggio[k+1];
punteggio[k+1]=appoggio;
trampolino=squadre[k];
squadre[k]=squadre[k+1];
squadre[k+1]=trampolino;
}
}
}

cout<<"Questa è la classifica: "<<endl;
for(k=0;k<n;k++){
cout<<classifica<<"\t"<<squadre[k]<<"\t"<<punteggio[k]<<endl;
classifica++;
}

}

void classifica(){
int appoggio;
string trampolino;
int i;
int k;
int classifica=1;

for(i=0;i<n;i++){
for(k=0;k<n-1-i;k++){
if(punteggio[k]<punteggio[k+1]){
appoggio=punteggio[k];
punteggio[k]=punteggio[k+1];
punteggio[k+1]=appoggio;
trampolino=squadre[k];
squadre[k]=squadre[k+1];
squadre[k+1]=trampolino;
}
}
}

cout<<"Le squadre che vanno in champion league sono: "<<squadre[0]<<"\t"<<squadre[1]<<"\t"<<squadre[2]<<"\t"<<squadre[3]<<endl;
cout<<"Le squadre che vanno in european league sono: "<<squadre[4]<<"\t"<<squadre[5]<<"\t"<<squadre[6]<<endl;
cout<<"Le squadre che retrocedono in serie B sono: "<<squadre[17]<<"\t"<<squadre[18]<<"\t"<<squadre[19]<<endl;

}

void ricerca(){
string cerca;
int i;

cout<<"Inserisci la squadra che vuoi cercare: ";
cin>>cerca;

for(i=0;i<n;i++){
if(cerca==squadre[i]){
cout<<"La squadra "<<cerca<<" e' stata trovata nella posizione "<<i;
}
}
}

void rigenera(){
int i;

srand(time(NULL));
for(i=0;i<n;i++){
punteggio[i]=rand()%113+1;
}
}

void new_classifica(){
int appoggio;
string trampolino;
int i;
int k;
int classifica=1;

for(i=0;i<n;i++){
for(k=0;k<n-1-i;k++){
if(punteggio[k]<punteggio[k+1]){
appoggio=punteggio[k];
punteggio[k]=punteggio[k+1];
punteggio[k+1]=appoggio;
trampolino=squadre[k];
squadre[k]=squadre[k+1];
squadre[k+1]=trampolino;
}
}
}

cout<<"Questa è la classifica: "<<endl;
for(k=0;k<n;k++){
cout<<classifica<<"\t"<<squadre[k]<<"\t"<<punteggio[k]<<endl;
classifica++;
}
}

int main(){

int scelta;
do{
cout<<"1-Squadra con il punteggio massimo"<<endl;
cout<<"2-Squadra con il punteggio minimo"<<endl;
cout<<"3-Visualizza la classifica"<<endl;
cout<<"4-Visualizza le squadra che vanno in champion, europan league e le squadre che retrocedono in B"<<endl;
cout<<"5-Ricerca di una squadra"<<endl;
cout<<"6-Cambia i punteggi"<<endl;
cout<<"7-Visualizza la nuova classifica"<<endl;
cout<<"Fai la tua scelta:"<<endl;
cin>>scelta;
switch(scelta){
case 1:
system("CLS");
max();
break;
case 2:
system("CLS");
min();
break;
case 3:
system("CLS");
ordina();
break;
case 4:
system("CLS");
classifica();
break;
case 5:
system("CLS");
ricerca();
break;
case 6:
system("CLS");
rigenera();
break;
case 7:
system("CLS");
new_classifica();
break;
}
}

while(scelta!=0);

system("pause");
}

Commenti