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