Autovelox/funzioni.c

58 lines
1.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// Created by angel on 13/10/2024.
//
#include "funzioni.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// Funzione che restituisce un puntatore alla struct Multa con i dati dellinfrazione 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 allarray 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 nellarray 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 nellarray 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);
}