Progetto per gli orali del 12.04.02 - 14.06.02 - 10.07.02 - 17.09.02
Gestione magazzino
Progettare l'architettura ad oggetti ed implementare in C++ una sistema di gestione
magazzino con le seguenti caratteristiche:
- i prodotti gestiti nel magazzino sono istanze di una classe
- ciascun prodotto ha (oltre a nome, codice, descrizione, etc) anche le seguenti
proprietà: numero di pezzi presenti in magazzino, numero minimo di
pezzi che deve essere presente in magazzino (scorta)
- ciascun prodotto è in grado di indicare quanti pezzi sono prelevabili
senza scendere sotto il valore di scorta minima
- ciascun prodotto è in grado di indicare quanti prodotti sono presenti
in totale nel magazzino
- ciascun prodotto è in grado di registrare e visualizzare la data
dell'ultimo prelievo di pezzi
- i prodotti sono tenuti in ordine crescente di codice
- dato un valore intero, il sistema è in grado di produrre un elenco dei
prodotti per i quali è possibile prelevare quel numero di pezzi senza
scendere sotto scorta
- se P1 ed P2 sono due prodotti, ridefinire gli operatori < e > in modo che
ritornino true/false in base al confronto tra i numeri di pezzi presenti in
magazzino per i prodotti P1 e P2
- il sistema deve consentire inserimento e rimozione di prodotti
- il sistema deve salvare i dati su file al termine dell'esecuzione e leggerli all'avvio
- il sistema deve estrarre i dati di un prodotto a partire dal codice e visualizzarli
correttamente
- eseguendo il programma devono essere opportunamente dimostrate tutte le caratteristiche
sopra elencate
Facoltativo:
Gestire input ed output dei podotti mediante ridefinizione degli operatori di iostream
(<< e >>, vedi "Non-member operators", capitolo 12, Eckel)
Commenti e suggerimenti:
- utilizzare una corretta architettura ad oggetti
- utilizzare allocazione dinamica della memoria (dove utile)
- utilizzare un'efficiente algoritmo di ricerca (vedi tabelle di hash)
- incapsulare le operazioni sulle date in una opportuna classe
Domande:
Utilizzare il forum del corso
(link)
per porre domande sul progetto.