Un file di testo (film.txt) contiene record relativi a produzioni cinematografiche (si sa che sono al massimo 30). Ogni linea riporta, per ciascun progetto cinematografico, un codice del film (valore numerico intero), nome del regista, budget richiesto (valore numerico intero). Un secondo file testo (preventivi.txt) riporta le spese preventivate da ciascuna produzione, sono riportati il codice del film, il nome del produttore, la sua offerta di spesa (valore numerico intero). Per lo stesso progetto cinematografico ci possono essere state più offerte di produttori diversi, e ve ne è almeno una.
I nomi (di regista e produttore) sono stringhe di al massimo 20 caratteri.
Si scriva un programma C organizzato in
(almeno tre) funzioni invocate dal main
e dedicate rispettivamente a:
Per ogni record letto dal primo file,
cerchi nel secondo file l'elemento che ha lo stesso codice film e
l'offerta di spesa maggiore e restituisca una struttura composta
dai campi: codice del film, nome del regista, budget richiesto, nome
del produttore (che ha fatto l'offerta maggiore) e la sua offerta.
Tale funzione ha come parametri un puntatore a file e un elemento;
restituisce un tipo struct
da definire in base ai campi indicati e richiesti;
Inserisca poi la struttura restituita in un albero binario di ricerca T, ordinato sul campo codice; tale funzione ha come parametri la struttura restituita dal punto precedente, il puntatore all'albero T (più eventuali altri a scelta) e restituisce il puntatore all'albero creato;
Stampi ordinatamente in base al codice del
film il contenuto dell'albero T su un file di tipo testo
(OUTPUT.TXT, da consegnare con i sorgenti ed eseguibile), che
riporta, per ciascuna riga, il codice del film, il nome del regista,
il budget richiesto, il nome del produttore (che ha fatto l'offerta
maggiore) e la sua offerta. Tale funzione ha come parametri il
puntatore al file di uscita e il puntatore all'albero T (più
eventuali altri a scelta) e restituisce void
.
Per chi svolge il compito A+B:
Inserisca in un vettore V
ordinato sul campo codice film gli elementi
dell'albero T che hanno il campo budget maggiore del campo
offerta. Tale funzione ha come parametri il puntatore all'albero T
e il vettore V (più eventuali altri a scelta) e restituisce un int
che rappresenta il numero di elementi inseriti in V (facoltativo: si
stampi a video poi il contenuto del vettore).