non mi è chiaro cosa faccia il soprastante codice quicodice:#include <stdio.h> #include <conio.h> #define MAXCHAR 30 #define MAXSTUDENTI 200 // definizioni di tipi: mettiamole PRIMA del main typedef char stringa [MAXCHAR]; typedef struct { stringa via; int numCivico; } tIndirizzo; typedef struct { stringa nome; tIndirizzo indiriz; int voto; } tStudente; typedef struct { tStudente elenco [MAXSTUDENTI]; int numEffettivoStudenti; } tClasse; int main () { char carLetto; char inutile; int i; tClasse myClass; // un'istanza del tipo tClasse! tStudente studLetto; // per l'inserimento myClass.numEffettivoStudenti = 0; do { printf ("*** MENU PRINCIPALE ***\n\n"); printf ("scegli la tua opzione:\n"); printf ("1: inserisci uno studente nella classe\n"); printf ("2: visualizza tutta la listozza di studenti\n"); printf ("3: svuota il listone\n"); printf ("4: uscita\n\n"); // filtro l'input do carLetto = getch(); while (carLetto < '1' || carLetto > '4'); switch (carLetto) { case '1': printf ("***INSERIMENTO DI UNO STUDENTE***\n\n"); printf ("inserisci il nome: "); scanf ("%s", studLetto.nome); printf ("inserisci la via: "); scanf ("%s", studLetto.indiriz.via); printf ("inserisci il num. civico: "); scanf ("%d", &studLetto.indiriz.numCivico); printf ("inserisci il voto: "); scanf ("%d", &studLetto.voto); myClass.elenco[myClass.numEffettivoStudenti]=studLetto; myClass.numEffettivoStudenti++; // nota bene: manca il test per vedere se e' gia' pieno, andrebbe aggiunto printf ("\n\nPREMI UN TASTO PER CONTINUARE"); inutile = getch(); break; case '2': printf ("***LISTA TOTALE GLOBALE DEGLI STUDENTI***\n\n"); if (myClass.numEffettivoStudenti == 0) printf ("La lista e' vuota!"); for (i=0; i<myClass.numEffettivoStudenti; i++) { printf ("%d: %s abitante in via %s n. %d - voto %d\n", i+1 , myClass.elenco[i].nome, myClass.elenco[i].indiriz.via, myClass.elenco[i].indiriz.numCivico, myClass.elenco[i].voto ); } printf ("\n\nPREMI UN TASTO PER CONTINUARE"); inutile = getch(); break; case '3': myClass.numEffettivoStudenti = 0; printf ("Ho svuotato l'array"); printf ("\n\nPREMI UN TASTO PER CONTINUARE"); inutile = getch(); break; case '4': break; // impossibile raggiungere questo caso se il // filtro sull'input funziona default: printf ("errore, qualcosa non va"); break; } // fine switch } while (carLetto != '4'); printf ("\naddio. buon proseguimento di lezione, amico!\n"); }
Quicodice:myClass.elenco[myClass.numEffettivoStudenti]=studLetto; myClass.numEffettivoStudenti++;
codice:myClass.numEffettivoStudenti = 0;
non ho ben capito come fa il codice a inserire i vari studenti nell'elengo, io avrei usato un for con indice i per l'inserimento, non capisco.

Rispondi quotando
