Prof. Marino wrote:1. Progettare una libreria per il software di gestione di un magazzino di un supermercato con le seguenti classi:
fornitore (contenente almeno nominativo, num di telef ono, num di fax, partita iva, numero di conto corrente, codice
fornitore)
articolo (contenente almeno descrizione, un campo che preveda fino a 4 fornitori, ad esempio attraverso i codici, prezzo
di costo, aliquota iva, prezzo di vendita -pari al prezzo di costo ivato e maggiorato del 40%-, codice articolo)
Il progetto di massima che si richiede comporta la definizione dei membri dato delle classi suddette, e di altre classi che
si ritiene opportuno definire (le classi fornitore e articolo possono ereditare o contenere come membri oggetti di altre
classi).
Alcuni membri di tali classi siano dei puntatori.
Si prevedano costruttori e distruttori, laddove sia necessario.
Si preveda un overloading degli operatori >> e << per inserire ed estrarre oggetti di tali classi e una funzione get_dato e
put_dato per visualizzare o modificare alcuni membri di un oggetto di tali classi.
Si definisca inoltre un dato strutturato ArticoloConQuantita che indichi un articolo ed un relativo quantitativo
disponibile. Tale dato sia usato per creare una classe magazzino (contenente, tra gli altri, almeno un array di un certo
quantitativo Q di elementi ArticoloConQuantita e altri membri che si ritengono necessari per l'utilizzo). Si faccia in
modo che il quantitativo Q sia in qualche modo variabile, ad esempio creando magazzino come una classe template che
abbia Q come parametro..
Su oggetti di tale classe si deve operare con l'operatore + per inserire un dato di tipo ArticoloConQuantita strutturato
che indichi un articolo ed un relativo quantitativo. Nel caso in magazzino esista già l'articolo, tale operatore deve
incrementare la disponibilità con la nuova quantità in ingresso, altrimenti deve creare un nuovo elemento nell'array. Nel
caso l'array sia pieno, produca invece un messaggio di errore. Si crei anche una funzione vendita che dato una certo
quantitativo ed un certo materiale detragga dal magazzino il materiale nel quantitativo indicato (o segnali la non
disponibilità di detto articolo, non trovandone uno con lo stesso codice). Se l'uso della funzione vendita porta a zero una
quantità di un certo articolo, si renda libera la locazione dell'array impegnata fino a quel momento dal tale articolo.
Scrivere un main in cui venga in primis creato un magazzino, inserendo dati, modificandoli (ad esempio inserendo più
volte ArticoloConQuantita per lo stesso tipo di qarticoli) e salva ndoli su file. Successivamente si apra il file di archivio
e si metta su video il suo contenuto, verificando che l'output sia coerente con quanto inserito.
2. Realizzare una struttura template List_data che implementi un elemento di lista concatenata contenente due campo
informativi di tipo generico data e key oltre ad ed un puntatore List_data *.
Usare questa struttura per implementare una classe template lista_concatenata avente come membro informativo
privato un membro puntatore di tipo generico List_type * di nome TestaDiLista e altri ritenuti necessari.
Siano previste le funzioni che cerchino eventuali elementi in lista in funzione del valore di key e che compiano
l'inserimento e la cancellazione di elementi nella/dalla lista.
3. Implementare la classe magazzino dell'esercizio 1 usando la classe template definita nell'esercizio 2, cone le relative
funzioni .
4. Realizzare una classe persona (contenente almeno nome, cognome, data di nascita oltre alle funzioni get_dato e
put_dato per visualizzare o modificare i membri privati) e una classe derivata da essa studente (contenente almeno
numero di matricola, facoltà, corso di laurea, ed un dato strutturato PianoD iStudi che ne registri il curriculum (esami
con date e voti), oltre alle funzioni get_dato e put_dato per visualizzare o modificare i membri privati e ad una funzione
CalcolaMediaEsami che operi su PianoDiStudi ).
Il membro PianoDiStudi deve basarsi su un tipo di dato strutturato TipoEsame che tra l'altro contenga almeno un nome
esame, un codice di segreteria, una data ed un voto.
Alcuni membri delle classi siano puntatori. Si prevedano i necessari costruttori e distruttori, così come un operatore +
definito fra un dato di tipo studente ed un dato di tipo TipoEsame, che effettui la registrazione dell'esame nel membro
PianoDiStudi. Si preveda infine un overloading degli operatori >> e << per inserire ed estrarre oggetti di tali classi e si
scriva un main in cui avviene fra l'altro la scrittura su file dei dati relativi a 10 studenti per alcuni esami; la successiva
chiusura e riapertura del file stesso, con l'operazione di visualizzazione su monitor dei dati precedentemente registrati.


Nicola wrote::o
tumik dove studi?



Users browsing this forum: No registered users and 0 guests