/* 48cppElencoStruct Programma che crea un elenco degli alunni di una scuola con il nome, cognome, classe e voto Riontino Raffaele 24-1-'10 31-1-'10 : sistemato il riorino in modo alfabetico anche in base ai nomi se i cognomi sono uguali */ # include # include # include using namespace std; char scelta, nomescuola[40]; int i,numero, controllo=0; struct studenti{ char nome[20], cognome[20], classe[5]; char voto[4]; } alunno[20]; void scuola(); void menu(); void inserimento(); void visualizza(); void ricerca(); void riordino(); void esci(); main() { do{ scuola(); menu(); switch (scelta) { case 'I' : inserimento(); break; case 'V' : visualizza(); break; case 'R' : ricerca(); break; case 'E' : esci(); exit(0); break; default : system ("cls"); cout << "\n\n\t\t\tScelta non consentita !!!\n\n\n\n\n\t\t"; system("pause"); } // chiusura dello switch }while (1 == 1 ); //chiusura del ciclo do/while } // chiusura del main void menu() { system ("cls"); cout << "\n\t\tElenco nominativo degli alunni della scuola \n\n\t\t\t\t" << nomescuola << "\n\n"; cout << "\n\t\t\tMenu' principale\n\n\n"; cout << "\t- I - inserisci l'elenco degli alunni\n\n"; cout << "\t- V - visualizza l'elenco degli alunni\n\n"; cout << "\t- R - ricerca nominativo\n\n"; cout << "\t- E - esci\n\n\n"; cout << "\tDigita una scelta e premi invio : "; cin >> scelta; scelta = toupper (scelta); } void scuola() { system ("cls"); cout << "\n\n\n\n\t\tInserisci il nome della scuola : \n\n\n\t\t\t"; cin.getline (nomescuola,40); } void inserimento() { int fermo=1; system ("cls"); if (controllo > 0) { cout << "\n\tIn memoria ci sono gia' dei dati, se si continua\n\n"; cout << "\tcon questa operazioni, tutti i dati inseriti in precedenza\n\n"; cout << "\tandranno persi.\n\n"; cout << "\tContinuare con l'operazione ? 1 per confermare ... "; cin >> fermo; } controllo++; while (fermo == 1){ fermo++; system ("cls"); cout << "\n\t\t\tInserimento dei dati \n\n"; cout << "\tDigita il numero dei nominativi che vuoi inserire e premi invio : "; cin >> numero; system ("cls"); for (i=0 ; i> alunno[i].voto; } // chiusura ciclo for riordino(); cout << "\n\n\t"; system ("pause"); } // chiusura del while } // in questa funzione avviene il riordino alfabetico void riordino() { int t,j; struct studenti{ char nome[20], cognome[20], classe[5], voto[4]; } temp; t=0; do{ j=0; strcpy (temp.nome,alunno[j].nome); strcpy (temp.cognome,alunno[j].cognome); strcpy (temp.classe,alunno[j].classe); strcpy (temp.voto,alunno[j].voto); for (i=1 ; i0) {//2 strcpy (alunno[j].nome,alunno[i].nome); strcpy (alunno[j].cognome,alunno[i].cognome); strcpy (alunno[j].classe,alunno[i].classe); strcpy (alunno[j].voto,alunno[i].voto); strcpy (alunno[i].nome,temp.nome); strcpy (alunno[i].cognome,temp.cognome); strcpy (alunno[i].classe,temp.classe); strcpy (alunno[i].voto,temp.voto); }//2 }//1 if (strcmp(temp.cognome,alunno[i].cognome)>0) { strcpy (alunno[j].nome,alunno[i].nome); strcpy (alunno[j].cognome,alunno[i].cognome); strcpy (alunno[j].classe,alunno[i].classe); strcpy (alunno[j].voto,alunno[i].voto); strcpy (alunno[i].nome,temp.nome); strcpy (alunno[i].cognome,temp.cognome); strcpy (alunno[i].classe,temp.classe); strcpy (alunno[i].voto,temp.voto); } else { strcpy (temp.nome,alunno[i].nome); strcpy (temp.cognome,alunno[i].cognome); strcpy (temp.classe,alunno[i].classe); strcpy (temp.voto,alunno[i].voto); } j++; } t++; }while (t0)&&(i % 2 == 0)) { cout << "\n\n\t"; system ("pause"); } } cout << "\n\n\t"; system ("pause"); } // definizione della funzione di ricerca void ricerca() { char cognome[20],ancora[2]; do { int n; system ("cls"); cout << "\n\t\t\tRicerca per nominativo\n\n"; cout << "\tinserisci il cognome dell'alunno da cercare : "; cin.ignore(); cin.getline (cognome,22); n=0; for (i=0 ; i0) && (n % 2 == 0)) { cout << "\n\n\t"; system ("pause"); } }//chiusura dell'if } //chiusura del for cout << "\n\n\tSono stati trovati " << n << " nominativi su " << numero << ".\n\n\t"; if (n == 0) {cout << "Prova ad effettuare la ricerca inserendo il nome al posto del cognome\n\n\t";} cout << "Effettuare una nuova ricerca (1=si/2=no)? "; cin >> ancora; }while (atoi(ancora) == 1); } // definizione della funzione esci void esci() { system ("cls"); cout << "\n\n\n\t\t\tProgramma terminato.\n\n\n"; cout << "\n\n\t\tI.T.I.S. Ettore Molinari - Milano\n\n"; cout << "\n\t\t\t Corso serale\n\n\n\n\n"; cout << "\t\tRiontino Raffaele 3AS INF 24-1-'10\n\n\n\n\n\t\t"; system ("pause"); }