Salve a tutti, mi è stato chiesto, per scopi didattici, di realizzare un programma C per la gestione di un market. Un prodotto è identificato da un codice, prezzo di acquisto,e prezzo di vendita. Mi è stato chiesto di implementare una funzione per il controllo della data di scadenza. Ho gestito, la cosa nel seguente modo, il programma viene compilato ed eseguito. Questo procedimento, però, mi risulta strano perchè nella lista per la gestione della data ho tralasciato il puntatore al nodo successivo ed anche l'inserimento nella lista è gestito in modo semplice (senza puntatore prev e cur). E', dunque, affidabile questa soluzione?
struct data{
int giorno;
int anno;
int mese;
};
struct prodotto{
char *codice;
struct data *dataS;
categoria c;
float pAcquisto;
float pVendita;
int quantita;
struct prodotto *next;
};
struct data *inserisci_data_scadenza();
int controlla_data_S(struct prodotto *p);
struct prodotto *magazzino = NULL;
int controlla_data_S(struct prodotto *p){
struct data *d;
int anno, mese, giorno;
if(p == NULL){
printf("Prodotto non trovato!\n");
return 0;
}
printf("Inserire data corrente:(gg/mm/aaaa): ");
scanf("%d/%d/%d: ", &giorno, &mese, &anno);
d = p -> dataS;
if((d -> anno < anno) || (d -> anno == anno && d -> mese < mese) || (d -> anno == anno && d -> mese == mese && d -> giorno < giorno)){
printf("Prodotto scaduto!\n");
ritiro(p -> codice);
}
else {
printf("Prodotto non scaduto!\n");
}
return 1;
}