From 618cf7a5ea3dce780804e04522612a20d9968957 Mon Sep 17 00:00:00 2001 From: Mr SL1D3R <76396365+Mr-sl1d3r@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:42:03 +0200 Subject: [PATCH] Aggiornate le funzioni --- funzioni.c | 31 +++++++++++++++++++++++++++---- funzioni.h | 9 ++++----- main.c | 18 ++++++++++++++++++ 3 files changed, 49 insertions(+), 9 deletions(-) diff --git a/funzioni.c b/funzioni.c index 5109c6b..fca70f4 100644 --- a/funzioni.c +++ b/funzioni.c @@ -8,24 +8,23 @@ #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[], char limite[], char importo[], char pagata[]){ +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); - strcpy(m->limite, limite); - strcpy(m->importo, importo); - strcpy(m->pagata, pagata); 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){ @@ -33,3 +32,27 @@ void aggiungiMulta(Multa *multe[], Multa *m){ } 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); +} \ No newline at end of file diff --git a/funzioni.h b/funzioni.h index 06d3c1d..760eb85 100644 --- a/funzioni.h +++ b/funzioni.h @@ -10,15 +10,14 @@ typedef struct { char data[11]; char ora[6]; char velocita[4]; - char limite[4]; - char importo[6]; - char pagata[2]; }Multa; +Multa *multe[1000]; - -Multa *creaMulta(char targa[], char data[], char ora[], char velocita[], char limite[], char importo[], char pagata[]); +Multa *creaMulta(char targa[], char data[], char ora[], char velocita[]); void iniziaMulta(Multa *multe[]); void aggiungiMulta(Multa *multe[], Multa *m); +void calcolaInfrazioni(Multa *multe[], char targa[]); +void salvaInfrazioni(Multa *multe[]); #endif //AUTOVELOX_FUNZIONI_H diff --git a/main.c b/main.c index 0c17b8c..75e25de 100644 --- a/main.c +++ b/main.c @@ -8,9 +8,27 @@ Realizzare la funzione che salva sul file tutte le infrazioni contenute nell’a */ #include +#include "funzioni.h" int main(void) { + iniziaMulta(multe); + + Multa *m1 = creaMulta("AB123CD", "12/10/2024", "12:30", "120"); + Multa *m2 = creaMulta("AB123CD", "12/10/2024", "12:31", "130"); + Multa *m3 = creaMulta("CD456EF", "12/10/2024", "12:32", "140"); + Multa *m4 = creaMulta("EF789GH", "12/10/2024", "12:33", "150"); + + aggiungiMulta(multe, m1); + aggiungiMulta(multe, m2); + aggiungiMulta(multe, m3); + aggiungiMulta(multe, m4); + + calcolaInfrazioni(multe, "AB123CD"); + calcolaInfrazioni(multe, "CD456EF"); + calcolaInfrazioni(multe, "EF789GH"); + + salvaInfrazioni(multe); }