LABORATORIO DI INFORMATICA L-A
APPELLO DEL 03/07/2003
ESERCIZIO
È dato un file di testo che contiene l'elenco dei vestiti presenti in un
negozio.
Il file contiene al massimo 20 righe e ogni riga contiene:
- Il tipo (un codice numerico che indica il tipo di vestito)
- La taglia (numero intero)
- La quantità di vestiti di tale tipo e taglia presenti in negozio (numero
intero)
- Il prezzo unitario (floating point)
Si chiede di scrivere un programma C, denominato vestiti,
con le seguenti caratteristiche:
Il programma dovrà essere suddiviso in 3 file.
- funzioni.h: dovrà contenere le definizioni dei tipi e le
dichiarazioni delle funzioni sotto descritte
- funzioni.c: dovrà contenere le definizioni delle funzioni
dichiarate in funzioni.h
- main.c: dovrà contenere solo la funzione main()
Il programma dovrà comprendere:
Tipi di strutture
- vestito che contiene i dati di un vestito (tipo, taglia e quantità)
- vestiti che contiene un array di strutture di tipo vestito e il
numero di vestiti effettivamente letti.
Funzioni e procedure
- funzione denominata leggi(): dato il nome
di un file riempie una struttura di tipo vestiti
contenente le righe lette dal file. La funzione restituisce 1 se
l'operazione è andata a buon fine, altrimenti restituisce 0.
- procedura denominata estrai(): prende come parametri
una taglia, e due strutture di tipo vestiti. La prima
struttura contiene i vestiti letti con la funzione leggi(), nella seconda
struttura bisogna ricopiare tutti i vestiti della taglia passata come primo
parametro
- funzione denominata quant() che prende come parametro una
struttura di tipo vestiti e restituisce come risultato il numero
totale di vestiti contenuti nella struttura passata come parametro
- funzione denominata prezzo() che prende come parametro una
struttura di tipo vestiti e restituisce come risultato il prezzo
totale dei vestiti contenuti nella struttura passata come parametro
- funzione denominata scrivi() che scrive in un file di testo,
il cui nome viene passato come
parametro, una riga per ogni taglia pari
compresa fra il 42 e il 54. La funzione restituisce 1 se l'operazione è
andata a buon fine, altrimenti restituisce 0.
Per ogni riga avremo:
- La taglia
- La quantità di vestiti della taglia in questione
- Il prezzo totale dei vestiti della taglia in questione
Attenzione: le taglie dei vestiti sono solo numeri
pari (46, 48 ecc.)
N.B.: In pratica la funzione scrivi() per ogni
taglia invocherà prima la funzione estrai() che estrarrà tutti i vestiti della
taglia richiesta inserendoli nella struttura passata come ultimo parametro.
Quindi invocherà quant() e prezzo(), passando come parametro la struttura
riempita da estrai().
Il programma, utilizzando le suddette funzioni, dovrà:
- Leggere il file VESTITI.TXT - usando la funzione leggi()
) segnalando a video eventuali problemi
- Scrivere nel file di testo TOTALI.TXT le quantità e i prezzi
totali per ogni taglia, usando la funzione scrivi(), segnalando a
video eventuali problemi.