Corso di Laboratorio di Informatica L-A
Appello d'Esame del 14 Gennaio 2002
Turno 1 - Compito C
È dato un file
di testo VENDITE.TXT
che contiene il resoconto delle vendite natalizie relativo ai 20 prodotti distribuiti
da un negozio di giocattoli, un prodotto per riga. Più precisamente,
ogni riga contiene, nell'ordine:
- descrizione
del prodotto (non
più di 50 caratteri, senza spazi intermedi)
- uno e un solo
spazio
- codice
del prodotto (numero intero)
- uno e un solo
spazio
- numero
di pezzi venduti (numero intero)
- uno e un solo spazio
- prezzo unitario
del prodotto (numero float)
Si
chiede di scrivere un programma C che, dopo aver definito una struttura giocattolo
nel modo appropriato rispetto a quanto specificato sopra:
- legga il resoconto
delle vendite dal file e lo metta in un array di giocattolo
di nome vendite;
[si mostri a video
l'array così costruito]
- a partire dal
vettore vendite,
costruisca una lista non ordinata di interi i cui elementi siano
il numero di pezzi rimasti invenduti di ciascun
prodotto. Si supponga che il negozio avesse inizialmente un numero uguale
NUM=100
di pezzi di ogni prodotto;
[si visualizzi la lista
costruita]
- richieda all'utente
di inserire due numeri interi invenduti
e soglia;
- utilizzi una funzione
int quanti(lista
l, int invenduti, int soglia), specificatamente progettata,
che restituisca quanti sono gli elementi della lista maggiori
di invenduti
se
e solo se tale numero è superiore a soglia.
In caso di numero inferiore a soglia deve essere restituito -1;
- (OPZIONALE) costruisca
una ulteriore lista l2
di strutture in cui ogni elemento è
una struttura contenente due campi, il codice del prodotto ed
il valore
dei pezzi giacenti in
magazzino (numero pezzi invenduti * prezzo unitario).
Appartengano alla lista l2
i soli elementi di vendite
il cui numero di invenduti è inferiore a invenduti.
Sia inoltre la lista l2
ordinata in base al campo valore
dei pezzi giacenti.
E' possibile utilizzare
librerie C (ad esempio per stringhe) e si devono utilizzare le librerie sulle
liste presentate a lezione (list.h,
list.c, element.h).