mercoledì 8 ottobre 2014

Esercizio 06/10/2014 - AGGIORNATO! (11/10/14)

Compito per casa assegnato il 06/10/2014 con consegna per il 08/10/2014

Esercizio su classi, ereditarietà, metodi e proprietà:
Creare una classe "Padre" Persona dalla quale ereditare due classi "Figlio" Studente e Dipendente.
 La classe "Padre" deve contenere un metodo per l’inserimento, uno per la visualizzazione dei dati e uno per l’aggiornamento di uno o più campi inseriti.

Il programmatore dovrà decidere i criteri public,protected o private da assegnare al modificatore.

#include <iostream>
using namespace std;
class Persona{
        public:
        Persona();
       void inserisciPersona()
                {
          cout<<"Inserisci il Nome: "<<endl;
          cin>>nome;
          cout<<"Inserisci il Cognome: "<<endl;
          cin>>cognome;
          cout<<"Inserisci la Data di Nascita: "<<endl;
          cin>>dataNascita;
          cout<<"Inserisci la Citta': "<<endl;
          cin>>citta;
    }

    void visualizzaPersona()
                {
                    cout<<"Nome: "<<nome<<endl;
                    cout<<"Cognome: "<<cognome<<endl;
                    cout<<"Data di Nascita: "<<dataNascita<<endl;
                    cout<<"Citta': "<<citta<<endl;
                };
        void aggiornaPersona()
                {
                    char menu;
                    do
                    {
                    cout<<"Quale campo vuoi modificare? 1)Nome 2)Cognome 3)Data di Nascita 4)Citta"<<endl;
                    cin>>menu;
                    switch(menu)
                        {
                            case '1': cout<<"Inserisci il Nome: "<<endl;
                                    cin>>nome;
                            break;
                            case '2': cout<<"Inserisci il Cognome: "<<endl;
                                    cin>>cognome;
                            break;
                            case '3': cout<<"Inserisci la Data di Nascita: "<<endl;
                                    cin>>dataNascita;
                            break;
                            case '4': cout<<"Inserisci la Citta': "<<endl;
                                    cin>>citta;
                            break;
                            default: cout<<"Scelta non valida"<<endl;
                        }
                    }while((menu<'1')||(menu>'4'));
                };

  protected:
        char nome[15];
        char cognome[15];
        char dataNascita[11];
        char citta[15];
        };


Persona::Persona()
{
       char nome[15];
       char cognome[15];
        char dataNascita[11];
        char citta[15];
}

class Studente : public Persona {
        public:
        Studente();
  void inserisciStudente()
                {
          cout<<"Inserisci la classe dello studente: "<<endl;
           cin>>classe;
           cout<<"Inserisci la sezione dello studente: "<<endl;
           cin>>sezione;
           cout<<"Inserisci l'indirizzo di studi dello studente: "<<endl;
           cin>>indirizzo;
    }

        void aggiornaStudente();

  void visualizzaStudente()
                {
                    visualizzaPersona();
                    cout<<"Classe: "<<classe<<endl;
                    cout<<"Sezione: "<<sezione<<endl;
                    cout<<"Indirizzo: "<<indirizzo<<endl;
                };
        protected:
        char classe[10];
        char sezione[2];
        char indirizzo[15];
        };

void Studente::aggiornaStudente()
{

     char scelt;
     char menu;
                 do{
                  cout<<"Quale parte vuoi modificare? 1)persona 2)studente"<<endl;
                  cin>>scelt;
                  switch(scelt)
                   {
                    case '1': aggiornaPersona();
                    break;
                    case '2':
        do{
                        cout<<"Quale campo vuoi modificare? 1)Classe 2)Sezione 3)Indirizzo"<<endl;
                        cin>>menu;


                         switch(menu)
                             {
                                case '1': cout<<"Inserisci la classe dello studente: "<<endl;
                                         cin>>classe;
                                   break;
                                 case '2': cout<<"Inserisci la sezione dello studente: "<<endl;
                                          cin>>sezione;
                                   break;
                                case '3': cout<<"Inserisci l'indirizzo di studi dello studente: "<<endl;
                                        cin>>indirizzo;
                                   break;
                                  default: cout<<"Scelta non valida"<<endl;
                             };
                        }while((menu<'1')||(menu>'3'));
                        break;
                       default: cout<<"Scelta non valida!"<<endl;
                   }
                 }while((scelt<'1')||(scelt>'2'));
}

Studente::Studente()
{
        char classe[10];
        char sezione[2];
        char indirizzo[15];
}

class Dipendente : public Persona {
        public:
        Dipendente();
        void inserisciDipendente()
                {
          cout<<"Inserisci la mansione del dipendente: "<<endl;
              cin>>mansione;
             cout<<"Inserisci lo stipendio del dipendente: "<<endl;
            cin>>stipendio;
    }
        void aggiornaDipendente();
        void visualizzaDipendente()
                {
                    visualizzaPersona();
                    cout<<"Mansione: "<<mansione<<endl;
                    cout<<"Stipendio: "<<stipendio<<endl;

                };
        protected:

        char mansione[15];
        char stipendio[6];
        };

void Dipendente::aggiornaDipendente() {

 char scelt;
   char menu;
        do{
               cout<<"Quale parte vuoi modificare? 1)persona 2)dipendente"<<endl;
                cin>>scelt;
                 switch(scelt)
                  {
                   case '1': aggiornaPersona();
                   break;
                   case '2':
                       do{
                          cout<<"Quale campo vuoi modificare? 1)Mansione 2)Stipendio"<<endl;
                        cin>>menu;
                        switch(menu)
                            {
                               case '1': cout<<"Inserisci la mansione del dipendente: "<<endl;
                                      cin>>mansione;
                                break;
                               case '2': cout<<"Inserisci lo stipendio del dipendente: "<<endl;
                                      cin>>stipendio;
                                break;
                                  default: cout<<"Scelta non valida"<<endl;
                             };
                           }while((menu!='1')&&(menu!='2'));
                       break;
                       default: cout<<"Scelta non valida!"<<endl;
                     };
     }while((scelt<'1')||(scelt>'2'));
}

Dipendente::Dipendente()
{
          char mansione[15];
          char stipendio[6];

}

main()
 {
  int menu;
  char scelta1;
  cout << "Esercizio 06/10/2014";
  cout << endl << endl;
 Persona prova;
 Studente prova2;
 Dipendente prova3;
 do{
    cout << "Che tipo di oggetto usi? 1)Persona 2)Studente 3)Dipendente"<<endl;
    cin>>menu;
    if((menu<1)||(menu>3))
     cout<<"Scelta non valida!"<<endl;

 }while((menu<1)||(menu>3));

  if(menu==1)
    {
     prova.inserisciPersona();
        do{
         cout << "Vuoi visualizzare i dati inseriti? s/n"<<endl;
         cin >> scelta1;
        }while((scelta1!='s')&&(scelta1!='n'));
  if(scelta1=='s')
            prova.visualizzaPersona();
            do{
    cout << "Vuoi aggiornare i dati inseriti? s/n"<<endl;
             cin >> scelta1;
            }while((scelta1!='s')&&(scelta1!='n'));
            if(scelta1=='s')
                prova.aggiornaPersona();
            cout<<endl<<endl;
            prova.visualizzaPersona();
        }

  else
    if(menu==2)
        {
        prova2.inserisciPersona();
  prova2.inserisciStudente();
        do{
         cout << "Vuoi visualizzare i dati inseriti? s/n"<<endl;
         cin >> scelta1;
        }while((scelta1!='s')&&(scelta1!='n'));
        if(scelta1=='s')
            prova2.visualizzaStudente();
            do{
             cout << "Vuoi aggiornare i dati inseriti? s/n"<<endl;
             cin >> scelta1;
   }while((scelta1!='s')&&(scelta1!='n'));
            if(scelta1=='s')
                prova2.aggiornaStudente();
            cout<<endl<<endl;
            prova2.visualizzaStudente();
        }

   else
     if(menu==3)
        {
         prova3.inserisciPersona();
         prova3.inserisciDipendente();
         do{
          cout << "Vuoi visualizzare i dati inseriti? s/n"<<endl;
          cin >> scelta1;
         }while((scelta1!='s')&&(scelta1!='n'));
        if(scelta1=='s')
            {
    prova3.visualizzaDipendente();
             do{
              cout << "Vuoi aggiornare i dati inseriti? s/n"<<endl;
              cin >> scelta1;
          }while((scelta1!='s')&&(scelta1!='n'));
             if(scelta1=='s')
                 prova3.aggiornaDipendente();
                cout<<endl<<endl;
             prova3.visualizzaDipendente();
            }
  }
return 0;
}


Lavoro di gruppo sviluppato con Mattia Callegaro