#include #include //---- Strutture struct struttIndirizzo { char citta[20]; char via[20]; char numero[4]; char cap[5]; }; struct struttAnagrafica { char nome[20]; char cognome[20]; int eta; struct struttIndirizzo indirizzo; }; // ---- Variabili globali: archivioAnagr e numImmessi struct struttAnagrafica archivioAnagr[10]; int numImmessi = 0; //------------------------ void immetti() { if (numImmessi == 10) return; // Numero massimo già raggiunto printf("--- Inserire i dati anagrafici della persona numero %d:\n", numImmessi); printf("Nome : "); scanf("%s", archivioAnagr[numImmessi].nome); printf("Cognome : "); scanf("%s", archivioAnagr[numImmessi].cognome); printf("Eta : "); scanf("%d", &archivioAnagr[numImmessi].eta); printf("Citta : "); scanf("%s", archivioAnagr[numImmessi].indirizzo.citta); printf("Via : "); scanf("%s", archivioAnagr[numImmessi].indirizzo.via); printf("Numero : "); scanf("%s", archivioAnagr[numImmessi].indirizzo.numero); printf("CAP : "); scanf("%s", archivioAnagr[numImmessi].indirizzo.cap); numImmessi = numImmessi + 1; } //------------------------ void elenca() { int i; if (numImmessi == 0) { printf("- Nessuna persona inserita nell'archivio!\n"); return; } for(i = 0; i < numImmessi; i++) { printf("--- Persona numero %d:\n", i); printf("Nome : %s\n", archivioAnagr[i].nome); printf("Cognome : %s\n", archivioAnagr[i].cognome); printf("Eta : %d\n", archivioAnagr[i].eta); printf("Citta : %s\n", archivioAnagr[i].indirizzo.citta); printf("Via : %s\n", archivioAnagr[i].indirizzo.via); printf("Numero : %s\n", archivioAnagr[i].indirizzo.numero); printf("CAP : %s\n", archivioAnagr[i].indirizzo.cap); } } //------------------------ void cerca_in_nome() { int i; char stringa[20]; if (numImmessi == 0) { printf("- Nessuna persona inserita nell'archivio!\n"); return; } printf("Inserisci la stringa da cercare nel nome: "); scanf("%s", stringa); for(i = 0; i < numImmessi; i++) { if ( (strstr(archivioAnagr[i].nome, stringa)) != NULL ) printf("- Stringa trovata nel nome della persona numero %d: nome = %s\n", i, archivioAnagr[i].nome); } } //------------------------ void cerca_tutto() { int i; char stringa[10]; if (numImmessi == 0) { printf("- Nessuna persona inserita nell'archivio!\n"); return; } printf("Inserisci la stringa da cercare nel nome: "); scanf("%s", stringa); for(i = 0; i < numImmessi; i++) { if ( (strstr(archivioAnagr[i].nome, stringa)) != NULL ) printf("- Stringa trovata nel nome della persona numero %d: nome = %s\n", i, archivioAnagr[i].nome); if ( (strstr(archivioAnagr[i].cognome, stringa)) != NULL ) printf("- Stringa trovata nel cognome della persona numero %d: cognome = %s\n", i, archivioAnagr[i].cognome); } } //------------------------ void cerca_per_eta() { int i, etaLim; if (numImmessi == 0) { printf("- Nessuna persona inserita nell'archivio!\n"); return; } printf("Inserisci l'eta' limite: "); scanf("%d", &etaLim); for(i = 0; i < numImmessi; i++) { if ( archivioAnagr[i].eta > etaLim ) printf("- La persona numero %d ha eta' superiore: eta' = %d\n", i, archivioAnagr[i].eta); } } //------------------------ void cerca_per_cap() { int i; char cap[5]; if (numImmessi == 0) { printf("- Nessuna persona inserita nell'archivio!\n"); return; } printf("Inserisci il CAP da cercare: "); scanf("%s", cap); for(i = 0; i < numImmessi; i++) { if ( (strcmp(archivioAnagr[i].indirizzo.cap, cap)) == 0 ) printf("- La persona numero %d ha questo CAP.\n", i); } } //--------------------------------- int menu() { int scelta; printf("--- Menu ---\n\n"); printf(" 1 - Immetti\n"); printf(" 2 - Elenca\n"); printf(" 3 - Cerca in nome\n"); printf(" 4 - Cerca tutto\n"); printf(" 5 - Cerca per eta'\n"); printf(" 6 - Cerca per CAP\n"); printf(" 7 - Uscita\n"); printf("\n"); do { printf("Scelta: "); scanf("%d", &scelta); } while ((scelta < 1) || (scelta > 7)); printf("\n"); return scelta; } //--------------------------------- int main(int argc, char *argv[]) { int scelta, ripeti; ripeti = 1; do { printf("\n"); scelta = menu(); switch(scelta) { case 1: immetti(); break; case 2: elenca(); break; case 3: cerca_in_nome(); break; case 4: cerca_tutto(); break; case 5: cerca_per_eta(); break; case 6: cerca_per_cap(); break; case 7: ripeti = 0; break; } } while (ripeti == 1); printf("Vabbe' allora ciao.\n\n"); system("PAUSE"); return 0; }