testo esame in formato PDF

Transcript

testo esame in formato PDF
Fondamenti di Programmazione
CdL in Ingegneria Informatica, Elettronica e delle Telecomunicazioni
a.a. 2015/2016
Docente: Prof. Andrea Prati
Prova del 06 luglio 2016
Istruzioni per l’esame in laboratorio
Scrivere un programma in linguaggio C (singolo file sorgente chiamato <matricola>.c) che abbia
il comportamento descritto nel seguito. Il tempo a disposizione è di 120 minuti. Al termine del
tempo gli elaborati salvati su Z:\ verranno raccolti automaticamente dal sistema di laboratorio.
Eventuali documenti sono disponibili in P:\Prati. Si consiglia di copiare i file in Z:
Durante la prova non è possibile uscire (ad esempio, per andare in bagno). Nel caso di
turni multipli d’esame non è neanche possibile uscire anticipatamente nel caso ci si voglia
ritirare o consegnare in anticipo.
Testo dell’esame
Il programma da realizzare dovrà gestire per conto di un’azienda di vendita prodotti farmaceutici
un sistema per il controllo delle vendite dei propri rappresentanti. Ogni rappresentante (venditore)
è identificato dalle seguenti informazioni:
 ID del rappresentante: intero positivo che identifica il rappresentante
 Nome del prodotto venduto: stringa di massimo 30 caratteri
 Importi delle singole vendite: memorizzate come array di float di dimensione variabile e
non nota a priori
 Numero vendite: che indica la dimensione dell’array precedente, cioè il numero di vendite
effettuate da quel rappresentante per quel prodotto
Le informazioni sulle vendite sono memorizzate nel file vendite.txt che ha una riga contenente ID
e nome prodotto, seguito da una serie di righe che iniziano per $ con gli importi, fino al prossimo
ID e nome prodotto:
<ID>;<nome prodotto>;
$<importo1>
[$<importo2>]
[$<importoN>]
Ad esempio, il file fornito per l’esame ha il seguente contenuto:
2201;Siringhe;
$30.40
$100.00
$213.20
3324;Lacci emostatici;
$420.00
3324;Siringhe;
$33.00
$22.50
2201;Lacci emostatici;
$200.50
$120.20
3131;Antistaminici;
$400.20
$22.50
$12.50
$22.50
3131;Siringhe;
$20.50
Tempo MASSIMO a disposizione per la soluzione: 120 minuti
Il programma deve:
1. Leggere dal file vendite.txt tutte le informazioni e memorizzarle in un albero binario di
ricerca con chiave ID del rappresentante.
2. Scorrere l’albero binario di ricerca e memorizzare in una lista doppiamente concatenata
un nodo per ciascun prodotto con campo ulteriore “totale vendite” di tipo float in cui
vengono accumulate (sommate) le vendite fatte (dai vari rappresentanti) di quel prodotto.
NOTA: ogni nodo dell’albero può contenere più importi per la vendita di uno stesso
prodotto e di uno stesso rappresentante.
L’inserimento nella lista deve essere fatto solo se il nodo con quel prodotto non è già
presente, altrimenti deve essere solo aggiornato il totale delle vendite. L’inserimento in
lista deve essere fatto in ordine per nome del prodotto.
3. Stampare la lista ordinata per nome prodotto
4. Ordinare la lista per totale vendite, utilizzando un qualsiasi algoritmo di ordinamento
5. Stampare la lista ordinata per totale vendite
Tempo MASSIMO a disposizione per la soluzione: 120 minuti