Prima di passare alle funzioni vere e proprie, partiamo dalla base, dalla definizione di un prodotto e dalle variabili da usare.
codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
static double guadagno;
char *tipi[] = {"fresco", "alimentare", "detersivo", "altro"};
typedef struct prodotto
{
char *tipo;
double prezzoacq;
double prezzoven;
int quantita;
long codice;
struct prodotto *next;
} Prodotto_t;
Dichiaro una variabile globale guadagno, che andrò di volta in volta ad incrementare o diminuire e che terrà conto del guadagno di giornata.
Dopodichè, creo un'altra variabile globale, tipi, che + un vettore di puntatori, ognuno dei quali punta alle stringhe predefinite. Primo dubbio: è giusta la scelta di un vettore di puntatori? O magari si potrebbe creare un enum? O una union?
Dopodichè passo alla definizione di un nuovo tipo del tipo struttura prodotto. I prodotti sono concatenati in una lista, ragion per cui ogni prodotto contiene un puntatore al prodotto successivo.
Secondo dubbio: i prodotti freschi, a differenza degli altri, devono avere anche un campo per la data di scadenza. Come gestisco la situazione? Creo un campo scadenza per tutti i prodotti, definendolo solo nel caso in cui il prodotto sia fresco e lasciandolo NULL per gli altri? Oppure c'è qualche modo di creare magari un "sottoprodotto" di tipo fresco, che aggiunge a prodotto solo il campo scadenza? E inoltre, il campo scadenza come andrebbe definito? Come stringa?
Grazie mille a tutti