ragazzi, qualcuno può aiutarmi a risolvere questo problema che non riesco a cavarne un ragno dal buco?
L'esercizio richiede di gestire un magazzino, in particolare le fasi di movimentazione del materiale.
Ad ogni esecuzione della verifica automatica viene generato il file archivio "magazzino.dat" (dal verificatore nella directory corrente) contenente i dati descrittivi di diversi articoli, completati dalla qualità attualmente disponibile in magazzino, alla quantità minima al di sotto della quale il materiale va ordinato ai fornitori e dalla quantità massima di stoccaggio consentita.
I dati memorizzati per ogni articolo sono nell'ordine:
codice numero intero
descrizione stringa di 100 caratteri
fornitori array di 5 stringhe di 50 caratteri cad.
peso numero intero
quantita numero intero
quantita_min numero intero
quantita_max numero intero
Generare il file con il codice C necessario per implementare la seguente funzione richiesta per la gestione del magazzino:
- La funzione <aggiorna(codice, operazione, quantita)> deve permettere di aggiornare la quantità disponibile di un articolo, il codice del quale è specificato nel parametro <codice>, in base al tipo di operazione e alla quantità specificata (dai parametri <operazione> e <quantia>):
Se il parametro <operazione>, di tipo char, è uguale a 'V', bisogna gestire la vendita di un articolo, decrementando la quantità disponibile a magazzino (aggiornando cioè il relativo record di file), segnalando eventuali errori con le modalità sotto riportate.
Se il parametro <operazione> è uguale a 'A', è necessario gestire l'acquisto di un articolo aggiornando (incrementando) la quantità disponibile a magazzino per l'articolo specificato dal parametro <codice>, segnalando il risultato dell'operazione con le modalità sotto riportate.
Altri valori del parametro <operazione> devono generare un errore, restituendo il valore -2.
I dati devono essere aggiornati direttamente sul file e comunque, a meno di errori, la funzione deve restituire la quantità attualmente disponbile a magazzino per l'articolo specificato dal codice passato come primo parametro.
Se la quantità attualmente disponibile non è sufficiente per soddisfare la vendita, il magazzino non deve essere aggiornato.
Questa situazione viene segnalata facendo restituire alla funzione <aggiorna> il valore intero -1.
Inoltre:
Se la quantità disponibile aggiornata (dopo l'operazione) è minore della quantità minima permessa, deve essere invocata la funzione
"riordino(codice)" dove <codice> è il codice dell'articolo specificato e sottoscorta.
Questa condizione non rappresenta un errore.
Se la quantità dosponibile aggiornata (dopo l'operazione) è maggiore della quantità massima permessa, deve essere invocata la funzione
"esubero(codice)" dove <codice> è il codice dell'articolo specificato e in esubero.
Questa condizione non rappresenta un errore.
NOTA: ogni articolo è sempre specificato attraverso il suo codice.
NOTA: descrizioni e fornitori sono stringhe di caratteri casuali, senza significato.