C++ Esercizio Struct dentro una Struct

di il
4 risposte

C++ Esercizio Struct dentro una Struct

Salve a tutti ho un problemino con un esercizio sulle struct. Riporto qui la traccia:

"Definire la struttura dati Auto che descrive un'automobile in base a marca, cilindrate,anno di immatricolazione e acquirente (l'acquirente è caratterizzato da solo nome e cognome)
Scrivere un programma C++ che dichiarata la tabella Autosalone di tipo Auto(per comodità se ne fissi la dimensione a 10 elementi)consenta di inserire da tastiera i dati delle auto vendute e di visualizzare il solo cognome degli acquirenti di auto di cilindrata superiore a 1500 cc,oltre al numeto totale di auto che sono state immatricolate in un anno richiesto all'utente."

Il problema è che non so come inserire il valore del nome e del cognome nella sottostruct proprietario, cioè non conosco proprio la sintassi in un caso del genere.

Allego il codice del programma:
#include <cstdlib>
#include <iostream>


using namespace std;


struct car {
                  char marca[20];
                  int cilindrata;
                  int annoimmatricolazione;
                  
                  struct proprietario{
                                      char nome[15];
                                      char cognome[15];
                                      };
                                      };
                         

int main()
{
   car autosalone[10];
   
   int i;
   int anno;
   bool verita;
//riempimento tabella
for(i=0;i<10;i++){
                  
                  cout<<"Marca:";
                  cin>>autosalone[i].marca;
                  cout<<"\nCilindrata:";
                  cin>>autosalone[i].cilindrata;
                  cout<<"cc";
                  cout<<"\nAnno di immatricolazione:";
                  cin>>autosalone[i].annoimmatricolazione;
                  cout<<"\nNome Del Proprietario";
                  cin>>autosalone[i].proprietario.nome;
                  cout<<"\nCognome Del Proprietario:";
                  cin>>autosalone[i].proprietario.cognome;
                  cout<<endl;
                  }
//Stampa nome proprietari con auto di cilindrata superiore a 1500cc
for(i=0;i<10;i++){
cout<<"Elenco Proprietari Con Auto di cilindrata superiore a 1500cc"<<endl;
if(autosalone[i].cilindrata>1500){ 
                                   cout<<autosalone[i].proprietario.nome;
                                   cout<<" "<<autosalone[i].proprietario.cognome;
                                   cout<<endl;
                                   }
                                   }
//Stampa nome auto per anno di immatricolazione
for(i=0;i<10;i++)
if(autosalone[i].annoimmatricolazione==anno)cout<<autosalone[i].marca<<endl;
cout<<"End Program"<<endl;
                  
                          
    system("PAUSE");
    return 0;
}
p.s
( non ho potuto chiamare la struct "auto" poichè mi dava errore evidentemente auto è un tipo che non conosco o qualcos'altro di arcano)
Quindi dov'è che sbaglio?
Grazie a tutti per l'aiuto!

4 Risposte

  • Re: C++ Esercizio Struct dentro una Struct

    struct car {
                      char marca[20];
                      int cilindrata;
                      int annoimmatricolazione;
                     
                      struct _proprietario{
                                          char nome[15];
                                          char cognome[15];
                       };
          _proprietario proprietario;
      };
    Ecco svelato l'arcano. auto è una keyword (parola chiave), non lo puoi usare. E' utile nei template oppure se sei pigro di scrivere un tipo di dato abbastanza lungo e complesso. Lo imparerai strada facendo non ti preoccupare.
  • Re: C++ Esercizio Struct dentro una Struct

    Io personalmente la scriverei cosi:
    
    struct Auto
    {
        char marca[20];
        int cilindrata;
        int annoimmatricolazione;
    
        struct
        {
            char nome[15];
            char cognome[15];
        }proprietario;
    };
    
    Poi rivisiteri perbenino il codice perchè contiene parecchi errori.
    Anche la parte di input dati sarebbe da rivedere.

    [dimenticavo]
    Ricordati che il c++ è case sensitivi e quindi Auto != auto != AUTO.
    [/dimenticavo].
  • Re: C++ Esercizio Struct dentro una Struct

    Dato che si parla di C++ userei le

    string

    al posto dei vettori di char.
  • Re: C++ Esercizio Struct dentro una Struct

    FunZiona! Non mel'aspettavo proprio questa soluzione, non ci sarei mai arrivato! Grazie mille a tutti.Comunque per quanto riguarda il resto del programma, è scritto un pò male infatti, una volta superato il problema della struct ho notato un bel ciclo infinito e altre cose però facilmente risolvibili!
Devi accedere o registrarti per scrivere nel forum
4 risposte