FONDAMENTI DI INFORMATICA II e modulo B (tempo 2 h) - 9 Febbraio 2012
Un file di testo viaggi.txt memorizza le prenotazioni dei viaggi in treno per alcuni commessi viaggiatori. Ciascuna prenotazione contiene
Un secondo file di testo, percorsi.txt contiene le lunghezze chilometriche delle varie tratte. Ciascuna tratta contiene:
Si realizzi un programma C, organizzato in almeno tre funzioni, rispettivamente dedicate a:
a) costruire un albero binario di ricerca, ordinato sul campo nome viaggiatore, che riporta in ciascun nodo: nome viaggiatore, stazione di partenza, stazione di arrivo, lunghezza della tratta (intero). La funzioneA riceve i puntatori ai due file e restituisce il puntatore all'albero T;
b) stampare ordinatamente il contenuto di T in un file testo di uscita (>output.txt); la funzioneB riceve il puntatore al file di uscita e il puntatore all'albero T, e restituisce void;
c) previo inserimento da input di un nome viaggiatore letto nel main, accedendo a T determinare il totale dei chilometri che il viaggiatore deve percorrere. La funzione C riceve il nome del viaggiatore letto da main, il puntatore ad albero T, e restituisce un intero.
Ad esempio, se il file viaggi.txt contiene:
Rossi |
Bologna |
Firenze |
Bianchi |
Palermo |
Catania |
Rossi |
Firenze |
Roma |
Verdi |
Padova |
Venezia |
Verdi |
Ferrara |
Padova |
Bianchi |
Catania |
Enna |
Bianchi |
Enna |
Palermo |
e il file percorsi.txt contiene:
Bologna |
Firenze |
80 |
Palermo |
Catania |
80 |
Firenze |
Roma |
150 |
Padova |
Venezia |
40 |
Ferrara |
Padova |
60 |
Catania |
Enna |
60 |
Enna |
Palermo |
100 |
per il nome "Rossi" la funzioneC restituisce un totale di chilometri pari a 230.
Per chi svolge il compito A+B (+30 min, tot 2,5 h):
Si carichino i dati dell'albero T in un vettore di strutture (i primi
10, le prenotazioni sono al massimo 100), lo si ordini sul campo lunghezza
tratta e lo si stampi in uscita sul file outputAB.txt.
NOTA BENE: si consegnino i sorgenti, eseguibile e i file di uscita generati.
È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento.