1 Compito di Laboratorio di Informatica Corso di Laurea I Livello

Transcript

1 Compito di Laboratorio di Informatica Corso di Laurea I Livello
Compito di Laboratorio di Informatica
Corso di Laurea I Livello Ingegneria Informatica
a.a.2007-2008
24 Giugno 2008
Prof.Ing.S.Cavalieri
In un negozio di ricambi auto è presente un archivio digitale per la gestione delle giacenze.
L’archivio è basato sull’utilizzo della struttura dati Lista. L'archivio è composto da un vettore
dinamico la cui dimensione è pari al numero di marche di automobili esistenti in commercio. Tale
dimensione viene fornita al programma in fase iniziale (alla partenza del programma). Ogni
elemento del vettore contiene un puntatore ad una Lista, composta da elementi contenenti:
• Modello
• Anno
• Lista Secondaria Pezzi di Ricambio
Ciascuna Lista è ORDINATA per Modello e Anno.
La Lista Secondaria dei Pezzi di Ricambio contenuta in ciascun elemento della Lista principale è
realizzata tramite una struttura dati Lista, ciascun nodo della quale è composto da:
• Codice Pezzo Ricambio
• Prezzo
• Numero di Giacenze in Magazzino
• Riferimenti nel magazzino (ossia scaffale, corridoio, etc.etc.)
La Lista Secondaria dei pezzi di ricambio è ordinata per Codice Pezzo Ricambio.
Si suppone l’esistenza di un secondo vettore dinamico, la cui dimensione è sempre pari al numero
di marche di automobili esistenti in commercio e il cui valore è fornito al programma in fase
iniziale, come già detto. Ciascun elemento del vettore contiene le seguenti informazioni:
• Marca Auto
• Indice del Vettore principale relativo alla lista di modelli di quella marca di auto
In questo vettore vengono inserite in fase iniziale del programma le corrispondenze tra la Marca di
Auto e l’indice del primo vettore in cui sono memorizzate le informazioni relative a tale marca di
auto. Si suppone che tale vettore venga inserito dall’utente all’inizio del programma.
Codificare in C:
• Le strutture dati utilizzate e le funzioni primitive necessarie per lo svolgimento del compito.
• Una procedura che inserisce un nuovo modello di autovettura (in tal caso la lista dei pezzi di
ricambio deve essere posta a vuota). La procedura riceve, la marca di auto, il modello e l’anno.
Solo se il modello e/o l’anno NON esistono, viene effettuato l’inserimento.
• Una procedura che inserisce un pezzo di ricambio di un modello già esistente. La procedura
riceve la marca di auto, il modello e l’anno. Se il pezzo di ricambio non esiste, le informazioni
relative al codice, prezzo, numero di giacenze e riferimenti vengono inserite nella lista
secondaria relativa al modello e all’anno inserito. Se il pezzo di ricambio già esiste, viene
aggiornato solo il numero di giacenze in magazzino (il numero esistente + quello da inserire).
• Una procedura che, data la marca di auto, il modello, l’anno e il codice del pezzo di ricambio,
visualizzi il numero di giacenze e i riferimenti nel magazzino.
• Un main che gestisca opportunamente le procedure definite prima.
1