Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Esercizio sulle funzioni

    Ciao a tutti, vorrei un aiuto con il seguente esercizio:
    Si sviluppi un programma che consente di stampare a video gli studenti che hanno preso un voto maggiore ad uno dato. Il programma deve essere strutturato nel seguente modo:


    1. struttura studente (nome, cognome, votoesameelementi)


    2. funzione capace di stampare uno studente


    3. funzione che costruisce un vettore di studenti con voto maggiore di uno dato.


    Sviluppate le 3 funzioni, il main deve fare inserire un vettore di studenti, utilizzando la funzione di stampa, stampare i primi due studenti inseriti.


    Stampare a video tutti gli studenti (solo cognome) con voto maggiore di un voto inserito da tastiera.


    Infine si sviluppi una funzione


    4. funzione capace di cercare uno specifico studente (cognome oppure nome).


    Il main richiamando la funzione 4 deve cercare e stampare lo studente cercato (con il voto di esame)


    Il codice che ho scritto per ora è il seguente:
    codice:
    #include <iostream>
    
    
    using namespace std;
    
    
    struct studente
    {
    char nome[20];
    char cognome[20];
    int voto;
    };
    
    
    void stampa_studente(studente a[], int indice)
    {
    cout << " Il nome dello studente è : " << a[indice].nome << endl;
    cout << " Il cognome dello studente è : " << a[indice].cognome << endl;
    cout << " Il voto dello studente è : " << a[indice].voto << endl;
    
    
    }
    
    
    void stampa_voto_dato(studente a[], int voto_dato, int indice)
    {
        for (int i=0; i<indice; i++)
     {
          if (a[i].voto > voto_dato)
           {
            cout << " Uno studente con il voto maggiore rispetto al voto dato è lo studente di cognome : " << a[i].cognome << endl;
           }
     }
    
    
    }
    
    
    int main()
    {
        int n=0;
        cout << " Quanti sono gli studenti ? ";
        cin >> n;
        studente a[n];
         // Inserisci informazioni
        for(int i = 0; i < n; i++)
        {
            cout << " Per lo studente numero " << i+1 << endl;
    
    
            cout << " Inserisci nome : ";
            cin >> a[i].nome;
    
    
            cout << " Inserisci cognome : ";
            cin >> a[i].cognome;
    
    
            cout << " Inserisci voto : ";
            cin >> a[i].voto;
    
    
            cout << endl;
        }
    
    
     //Stampa informazioni dei primi due studenti inseriti
    for (int i=0; i<=1; i++)
      {
        cout << " Dati dello studente " << i+1 << " : " << endl;
        stampa_studente(a, i);
        cout << endl;
      }
    
    
     //Stampa studenti con voto maggiore di un dato voto
    int voto_minimo;
    int i;
    cout << " Inserisci voto minimo : ";
    cin >> voto_minimo;
    stampa_voto_dato(a, voto_minimo, i);
    
    
    }

    Il programma viene eseguito, ma quando si tratta di stampare a video tutti gli studenti con voto maggiore di un voto inserito da tastiera, il programma non risponde correttamente. Qual è il problema? Per ora mi concentro su questa parte, dopo aver risolto questo problema vi espongo le mie perplessità sull'altro punto dell'esercizio.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Tu passi alla funzione una variabile i che non ha valore e la usi nella for come indice finale.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ciao! Ho risolto per quella parte, ma ho un altro problema:
    codice:
    #include <iostream>
    
    
    using namespace std;
    
    
    struct studente
    {
    char nome[20];
    char cognome[20];
    int votoesameelementi;
    };
    
    
    void stampa_studente(studente a[], int indice)
    {
    cout << " Il nome dello studente è : " << a[indice].nome << endl;
    cout << " Il cognome dello studente è : " << a[indice].cognome << endl;
    cout << " Il voto dello studente è : " << a[indice].votoesameelementi << endl;
    
    
    }
    
    
    void costruisci_vettore(studente a[], studente b[], int voto_dato, int indice)
    {
        for(int i=0; i<indice; i++)
        {
            if(a[i].votoesameelementi > voto_dato)
            {
                b[i].votoesameelementi = a[i].votoesameelementi;
                for(int c=0; a[i].nome[c] =! '0'; c++)
                {
                    b[i].nome[c] = a[i].nome[c];
                }
                for(int d=0; a[i].cognome[d] =! '0'; d++)
                {
                    b[i].cognome[d]=a[i].cognome[d];
                }
    
    
                }
        }
    }
    
    
    
    
    void stampa_voto_dato(studente a[], int voto_dato, int indice)
    {
          if (a[indice].votoesameelementi > voto_dato)
           {
            cout << " Uno studente con il voto maggiore rispetto al voto dato è lo studente di cognome : " << a[indice].cognome << endl;
           }
     }
    
    
    void ricerca_studente(studente a[], int dim)
    {
    char surname[20];
    cout<< " Inserisci cognome da ricercare : ";
    cin>>surname;
    for(int indice=0; indice<dim; indice++)
    {
    if(a[indice].cognome==surname)
    {
    cout << " I dati dello studente cercato sono : " << endl << a[indice].nome << endl << a[indice].cognome << endl << a[indice].votoesameelementi << endl;
    }
    }
    }
    
    
    int main()
    {
        int n=0;
        cout << " Quanti sono gli studenti ? ";
        cin >> n;
        studente a[n];
         // Inserisci informazioni
        for(int i = 0; i < n; i++)
        {
            cout << " Per lo studente numero " << i+1 << endl;
    
    
            cout << " Inserisci nome : ";
            cin >> a[i].nome;
    
    
            cout << " Inserisci cognome : ";
            cin >> a[i].cognome;
    
    
            cout << " Inserisci voto : ";
            cin >> a[i].votoesameelementi;
    
    
            cout << endl;
        }
    
    
     //Stampa informazioni dei primi due studenti inseriti
    for (int i=0; i<=1; i++)
      {
        cout << " Dati dello studente " << i+1 << " : " << endl;
        stampa_studente(a, i);
        cout << endl;
      }
    
    
     //Stampa studenti con voto maggiore di un dato voto
    int voto_minimo;
    cout << " Inserisci voto minimo : ";
    cin >> voto_minimo;
    for (int i=0; i<n; i++)
    {
        stampa_voto_dato(a, voto_minimo, i);
    }
    
    
    //Ricerca di uno studente
    ricerca_studente(a, n);
    
    
    return 0;
    
    
    }
    Non riesco ad utilizzare la funzione ricerca e non capisco come la funzione che costruisce il vettore di studenti con voto maggiore di un voto dato debba essere inserita nel main.
    Ultima modifica di floyd123; 09-06-2018 a 21:44

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Un forum non è una chat. Non si discute all'infinito in un thread, ma solo di un determinato problema.

    Crea un thread apposito con un problema specifico, spiegalo bene e corredalo della parte di codice interessato.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Va bene oregon, mi scuso

  6. #6
    Ho risolto! Potete eliminare il thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.