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:

Si chiede di scrivere un programma C, denominato vestiti, con le seguenti caratteristiche:

Il programma dovrà essere suddiviso in 3 file.

  1. funzioni.h: dovrà contenere le definizioni dei tipi e le dichiarazioni delle funzioni sotto descritte
  2. funzioni.c: dovrà contenere le definizioni delle funzioni dichiarate in funzioni.h
  3. main.c: dovrà contenere solo la funzione main()

Il programma dovrà comprendere:

Tipi di strutture

  1. vestito che contiene i dati di un vestito (tipo, taglia e quantità)
  2. vestiti che contiene un array di strutture di tipo vestito e il numero di vestiti effettivamente letti.

Funzioni e procedure

  1. 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. 
  2. 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
  3. 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
  4. 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
  5. 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à:

  1. Leggere il file VESTITI.TXT  - usando la funzione leggi() ) segnalando a video eventuali problemi
  2. 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.