Problema array paralleli con controlli

di il
2 risposte

Problema array paralleli con controlli

Ciao a tutti , oggi a scuola hanno assegnato questo problema solo che voglio creare alcuni controlli delle risposte oltre a quello sul menu che funziona,ma voglio una spinta su come creare e usare una funzione di caricamento e una di visualizzazione del vettore universale dato che i vettori non sono tutti interi ma sono anche dei vittori di stringhe,io ci ho provato e sto inserendo lo switch qualcuno mi aiuta a capire?

//Problema centro estivo

/*Si vogliono mantenere le info dei bambini massimo 30 di un centro estivo
Cognome
Nome
Anno di nascita
Tipo corso (Mattina, Mattina e pranzo, Corso completo (mattina, pranzo e cena)) 
Numero cellulare genitore
Saldo versato
Città di provenienza

Si svolga un programma in grado di :
Tramite un menu che consente di :
1. Dato in input un cognome contare quanti bambini si chiamano con quel cognome e visualizzare i loro nomi. 
2. Calcolare la media dei soldi e visualizzare i nomi e i cognomi dei bambini che hanno dato un saldo inferiore alla media.
3. Trovare i bambini con meno di 10 anni e sostituire il tipo di corso con la tipologia mattina.
*/

#include <iostream>
using namespace std;

const int MAX=30; //indica il numero massimo di vettori quindi bambini che si possono inserire

int ChiediDimensione()
{
	int d;
	do
	{
		cout<<"Di quanti bambini si vogliono mantenere le informazioni? ";
		cin>>d;
	}while (d<1 || d>MAX);
	
	return d;
cout<<"  "<<endl;
}

void CaricaVettore(string Cognome[],int d)
{
	for(int i=0;i<d;i++){
		cout<<"Informazione numero "<<i<<":";
		cin>>Cognome[i];
	}
cout<<"  "<<endl;
}
 
void VisualizzaVettore(string Cognome[],int d)
{
    cout<<"Visualizzo gli elementi :";
    cout<<"  "<<endl;
	for (int i=0;i<d;i++) 
	{
		cout<<Cognome[i]<<"  ";
	}
	cout<<"  "<<endl;
	
}



int MENU()
{
	int scelta;
    do{
	
    
    cout<<"Effettua una scelta:"<<endl;

    cout<<" 1 Dato in input un cognome contare quanti bambini si chiamano con quel cognome e visualizzare i loro nomi."<<endl;
	cout<<" 2 Calcolare la media dei soldi e visualizzare i nomi e i cognomi dei bambini che hanno dato un saldo inferiore alla media."<<endl;
	cout<<" 3 Trovare i bambini con meno di 10 anni e sostituire il tipo di corso con la tipologia mattina."<<endl;
    cin>>scelta;
	} while(scelta<1 || scelta>4);


    
	return scelta;
}
	

int main()
{
	int d;
	string Cognome[MAX];
    string Nome[MAX];
    int Annonascita[MAX];
    string Tipocorso[MAX]; //(Mattina, Mattina e pranzo, Corso completo (mattina, pranzo e cena)) 
    int Numerocellulare[MAX];
    int Saldoversato[MAX];
    string Cittaprovenienza[MAX];
    d=ChiediDimensione();
    cout<<"Inserire il cognome di ogni bambino"<<endl;
    CaricaVettore(Cognome , d);
    cout<<"Tutti i cognomi sono stati correttamente inseriti"<<endl;
    cout<<"  "<<endl;
    VisualizzaVettore(Cognome , d);
    cout<<"  "<<endl;
    

    cout<<"Inserire il nome di ogni bambino"<<endl;
    CaricaVettore(Nome , d);
    cout<<"Tutti i nomi sono stati correttamente inseriti"<<endl;
    cout<<"  "<<endl;

    
    cout<<"Inserire l'anno di nascita di ogni bambino"<<endl;
    CaricaVettore(Annonascita, d);
    cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
    cout<<"  "<<endl;
   
    
    cout<<"Inserire il tipo del corso di ogni bambino"<<endl;//(Mattina, Mattina e pranzo, Corso completo (mattina, pranzo e cena)) 
    CaricaVettore(Nome , d);
    cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
    cout<<"  "<<endl;
    do {

    } while(Tipocorso[MAX]=Mattina|| Tipocorso[MAX]=Mattina e pranzo || Tipocorso[MAX]=Corso completo);
    VisualizzaVettore(Nome , d);
    
    
    cout<<"Inserire il numero di cellulare di un genitore  di ogni bambino"<<endl;
    CaricaVettore(Nome , d);
    cout<<"Tutti i numeri sono stati correttamente inseriti"<<endl;
    cout<<"  "<<endl;
    VisualizzaVettore(Nome , d);
    
    
    cout<<"Inserire il saldo versato dai genitori di ogni bambino"<<endl;
    CaricaVettore(Nome , d);
    cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
    cout<<"  "<<endl;
    VisualizzaVettore(Nome , d);
    
    
    cout<<"Inserire la citta di provenienza di ogni bambino di ogni bambino"<<endl;
    CaricaVettore(Nome , d);
    cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
    cout<<"  "<<endl;
    VisualizzaVettore(Nome , d);
    
    
    MENU();
    return 0;

}

2 Risposte

  • Re: Problema array paralleli con controlli

    CONTINUANDO A PROGRAMMARE RISALGO NEGLI STESSI PROBLEMI
    //Problema centro estivo
    
    /*Si vogliono mantenere le info dei bambini massimo 30 di un centro estivo
    Cognome
    Nome
    Anno di nascita
    Tipo corso (Mattina, Mattina e pranzo, Corso completo (mattina, pranzo e cena)) 
    Numero cellulare genitore
    Saldo versato
    Città di provenienza
    
    Si svolga un programma in grado di :
    Tramite un menu che consente di :
    1. Dato in input un cognome contare quanti bambini si chiamano con quel cognome e visualizzare i loro nomi. 
    2. Calcolare la media dei soldi e visualizzare i nomi e i cognomi dei bambini che hanno dato un saldo inferiore alla media.
    3. Trovare i bambini con meno di 10 anni e sostituire il tipo di corso con la tipologia mattina.
    */
    
    #include <iostream>
    #include <string>
    using namespace std;
    
    const int MAX=30; //indica il numero massimo di vettori quindi bambini che si possono inserire
    
    int ChiediDimensione()
    {
    	int d;
    	do
    	{
    		cout<<"Di quanti bambini si vogliono mantenere le informazioni? ";
    		cin>>d;
    	}while (d<1 || d>MAX);
    	
    	return d;
    cout<<"  "<<endl;
    }
    
    void CaricaVettore(string Cognome[],int d)
    {
    	for(int i=0;i<d;i++){
    		cout<<"Informazione numero "<<i<<":";
    		cin>>Cognome[i];
    	}
    cout<<"  "<<endl;
    }
     
    void VisualizzaVettore(string Cognome[],int d)
    {
        cout<<"Visualizzo gli elementi :";
        cout<<"  "<<endl;
    	for (int i=0;i<d;i++) 
    	{
    		cout<<Cognome[i]<<"  ";
    	}
    	cout<<"  "<<endl;
    	
    }
    
    
    int sommavettore (int Saldoversato[], int d,int somma) 
    { 
    
    
    for (int i=0;i<d;i++)
        {
        somma+=Saldoversato[i];
        return somma;
        }
    
    }
    
    
    
    int MENU( int scelta)
    {
        do{
    	
        
        cout<<"Effettua una scelta:"<<endl;
    
        cout<<" 1 Dato in input un cognome contare quanti bambini si chiamano con quel cognome e visualizzare i loro nomi."<<endl;
    	cout<<" 2 Calcolare la media dei soldi e visualizzare i nomi e i cognomi dei bambini che hanno dato un saldo inferiore alla media."<<endl;
    	cout<<" 3 Trovare i bambini con meno di 10 anni e sostituire il tipo di corso con la tipologia mattina."<<endl;
        cin>>scelta;
    	} while(scelta<1 || scelta>4);
    
    
        
    	return scelta;
    }
    	
    
    int main()
    {
    	int d;
    	int scelta,somma;
    	float media;
    	string Cognome[MAX];
        string Nome[MAX];
        int Annonascita[MAX];
        string Tipocorso[MAX]; //(Mattina, Mattina e pranzo, Corso completo (mattina, pranzo e cena)) 
        int Numerocellulare[MAX];
        int Saldoversato[MAX];
        string Cittaprovenienza[MAX];
        d=ChiediDimensione();
        cout<<"Inserire il cognome di ogni bambino"<<endl;
        CaricaVettore(Cognome , d);
        cout<<"Tutti i cognomi sono stati correttamente inseriti"<<endl;
        cout<<"  "<<endl;
        VisualizzaVettore(Cognome , d);
        cout<<"  "<<endl;
        
    
        cout<<"Inserire il nome di ogni bambino"<<endl;
        CaricaVettore(Nome , d);
        cout<<"Tutti i nomi sono stati correttamente inseriti"<<endl;
        cout<<"  "<<endl;
    
        
        cout<<"Inserire l'anno di nascita di ogni bambino"<<endl;
        CaricaVettore(Annonascita, d);
        cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
        cout<<"  "<<endl;
       
        
        cout<<"Inserire il tipo del corso di ogni bambino"<<endl;//(Mattina, Mattina e pranzo, Corso completo (mattina, pranzo e cena)) 
        CaricaVettore(Nome , d);
        cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
        cout<<"  "<<endl;
        do {
    
        } while(Tipocorso[MAX]=Mattina|| Tipocorso[MAX]=Mattina e pranzo || Tipocorso[MAX]=Corso completo);
        VisualizzaVettore(Nome , d);
        
        
        cout<<"Inserire il numero di cellulare di un genitore  di ogni bambino"<<endl;
        CaricaVettore(Nome , d);
        cout<<"Tutti i numeri sono stati correttamente inseriti"<<endl;
        cout<<"  "<<endl;
        VisualizzaVettore(Nome , d);
        
        
        cout<<"Inserire il saldo versato dai genitori di ogni bambino"<<endl;
        CaricaVettore(Nome , d);
        cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
        cout<<"  "<<endl;
        VisualizzaVettore(Nome , d);
        
        
        cout<<"Inserire la citta di provenienza di ogni bambino di ogni bambino"<<endl;
        CaricaVettore(Nome , d);
        cout<<"Tutte le informazioni sono state correttamente inserite"<<endl;
        cout<<"  "<<endl;
        VisualizzaVettore(Nome , d);
        
        
        MENU(scelta);
        
        switch(scelta)
    	{
    		case 1:
    			cout<<"Dato in input un cognome contare quanti bambini si chiamano con quel cognome e visualizzare i loro nomi "<<endl;
    			for(int i=0 ;i<d; i++) 
    			{
    				string ricerca;
    				cout<<"Inserire un cognome "<<endl;
    				cin>>ricerca;
    				if(Cognome[i]=ricerca) 
    				{
    					cout<<"Il nome del ragazzo con lo stesso cognome della ricerca e\'"<<nome [i]<<endl;
                    }
                    	cout<<"Non sono stati trovati ragazzi con lo stesso cognome"<<endl;
                }
    	
    		break;
    		case 2:
    			 cout<<"Sto calcolando la media dei saldi versati "<<endl;
    			 sommavettore(Saldoversato,d,somma);
    			 media=somma/d;
    			 cout<<""<<endl;
    			 
    			 e visualizzare i nomi e i cognomi dei bambini che hanno dato un saldo inferiore alla media
    		break;
    		case 3:
    		break;
    
        }
       system("pause");
    
    }
  • Re: Problema array paralleli con controlli

    Non puoi fare una funzione che accetti parametri di tipo diverso da quelli dichiarati.
    Problemi di questo tipo si affrontano in genere con i template o con le classi virtuali, ma non credo che ci siate arrivati.
    Qualche consiglio: per il numero di telefono non usare l'intero, ma lo string, mentre per le valute un tipo con la virgola.
    Se conosci le struct, usale.
Devi accedere o registrarti per scrivere nel forum
2 risposte