Elenet.net
+1 voto

Si scriva un programma C che legga due serie di dati e li memorizzi in due vettori di strutture. Nel primo vettore M (di dimensione 3) vengono memorizzati dati del tipo: <matricola, nome, cognome>. Si noti che la matricola identifica univocamente uno studente e che non ci sono due strutture che contengono lo stesso numero di matricola.

Nel secondo vettore V (di dimensione 7) vengono memorizzati dati del tipo: <matricola, esame, voto>. Possono esserci più record con lo stesso numero di matricola che denotano diversi esami fatti dallo stesso studente.

Si scriva un programma che tramite opportune procedure legga i dati in ingresso e li inserisca nei due vettori. Successivamente per ogni studente con matricola X contenuto nel vettore M sommi tutti i suoi voti ottenuti negli esami contenuti nel vettore V.

    quesito posto 18 Marzo 2016 in Classe terza da nicolo' guarino Esperto (687 punti)
      

    1 Risposta

    +1 voto
    Risposta migliore
    #include <iostream>
    using namespace std;

    struct studente{
        int matricola;
        char nome[20];
        char cognome[20];
    };

    struct valutazione{
        int matricola;
        char esame[20];
        int voto;
    };

    int main()
    {
        studente m[3];
        valutazione v[7];
        int nEsami = 0, check = 0, tot[3] = { };

        for (int i = 0; i < 3; i++)
        {
            cout << "Inserire il numero della matricola: ";
            cin >> m[i].matricola;
            cout << "Inserire il nome: ";
            cin >> m[i].nome;
            cout << "Inserire il cognome: ";
            cin >> m[i].cognome;
            system("CLS");
            cout << "Quanti esami ha dato la seguente matricola? ";
            cin >> nEsami;
            for (int j = 0; j < nEsami; j++)
            {
                if (check == 7)
                {
                    break;
                }
                v[check].matricola = m[i].matricola;
                cout << "Inserire l'esame per la suddetta matricola: ";
                cin >> v[check].esame;
                cout << "Inserire il voto: ";
                cin >> v[check].voto;
                check++;
            }
            system("CLS");
        }

        for (int i = 0; i < 7; i++)
        {
            if (v[i].matricola == m[0].matricola)
            {
                tot[0] += v[i].voto;
            }
            else if (v[i].matricola == m[1].matricola)
            {
                tot[1] += v[i].voto;
            }
            else
            {
                tot[2] += v[i].voto;
            }
        }

        cout << "Nome: " << m[0].nome << endl << "Cognome: " << m[0].cognome << endl;
        cout << "Matricola: " << m[0].matricola << endl << "Somma voti: " << tot[0] << endl << endl;
        cout << "Nome: " << m[1].nome << endl << "Cognome: " << m[1].cognome << endl;
        cout << "Matricola: " << m[1].matricola << endl << "Somma voti: " << tot[1] << endl << endl;
        cout << "Nome: " << m[2].nome << endl << "Cognome: " << m[2].cognome << endl;
        cout << "Matricola: " << m[2].matricola << endl << "Somma voti: " << tot[2] << endl << endl;
        system("PAUSE");
    }
    risposta inviata 22 Marzo 2016 da Christian Gritto Corsista (117 punti)
    Selezionata 1 Aprile 2016 da nicolo' guarino

    Domande correlate

    +1 voto
    1 risposta
    +1 voto
    3 risposte
    +1 voto
    3 risposte
    778 domande
    1,565 risposte
    639 commenti
    1,445 utenti