// // Created by angel on 13/10/2024. // #include "funzioni.h" #include #include #include // Funzione che restituisce un puntatore alla struct Multa con i dati dell’infrazione ricevuti come parametri Multa *creaMulta(char targa[], char data[], char ora[], char velocita[]){ Multa *m = (Multa *)malloc(sizeof(Multa)); strcpy(m->targa, targa); strcpy(m->data, data); strcpy(m->ora, ora); strcpy(m->velocita, velocita); return m; } // Funzione che inizializza l'array di multe a NULL void iniziaMulta(Multa *multe[]){ for(int i = 0; i < 1000; i++){ multe[i] = NULL; } } // Funzione che aggiunge una infrazione all’array globale, nel “primo” posto libero void aggiungiMulta(Multa *multe[], Multa *m){ int i = 0; while(multe[i] != NULL){ i++; } multe[i] = m; } // Funzione che calcola il numero di infrazioni memorizzate nell’array globale che sono state comminate ad una automobile di cui è fornita la targa void calcolaInfrazioni(Multa *multe[], char targa[]){ int i = 0; int count = 0; while(multe[i] != NULL){ if(strcmp(multe[i]->targa, targa) == 0){ count++; } i++; } printf("Il numero di infrazioni per la targa %s è %d\n", targa, count); } // Funzione che salva sul file tutte le infrazioni contenute nell’array globale void salvaInfrazioni(Multa *multe[]){ FILE *f = fopen("infrazioni.txt", "w"); int i = 0; while(multe[i] != NULL){ fprintf(f, "%s %s %s %s\n", multe[i]->targa, multe[i]->data, multe[i]->ora, multe[i]->velocita); i++; } fclose(f); }