PDA

View Full Version : [C++] Aiuto per struttura ad oggetti


rudelcu
19-09-2008, 15:34
Chi mi aiuta con questo esercizio?

Progettare una libreria per il software di gestione di un magazzino di un supermercato con le seguenti classi:
fornitore (contenente almeno nominativo, num di telefono, 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 certoquantitativo 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 salvandoli 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.

Questo è lo schema da cui dovrei partire per il codice(è fatto da me x cui sarà sicuramente errato:D):
Classe Fornitore:
-Membri privati:
--Nominativo (char[])
--Telefono(char[20])
--Fax(char[20])
--P.Iva(char[])
--C.C.(char[])
--Cod.Fornitore(int?)
-Pubblici:
--costruttore(come inizializzo le variabili?)
--Distruttore()
--get-fornitore(visualizza il fornitore(?))
--put-fornitore(scrivi il fornitore(?))
--overloading di >> e >>??????
(poi nn so ke altro mettere)

Classe Articoloderivata da fornitore(?))
-Privati
--Descrizione(non so come fare a prevedere 4 fornitori attraverso i codici)
--Prezzo di costo (int)
--Aliquota Iva (int)
--Codice articolo(int?)
-Pubblici:
--Costruttore(?)
--Distruttore(?)
--Prezzo di vendita[(P.costo+iva)*1,4]


Poi le altre funzioni non ho idea dove metterle e cioè:
ArticoloConQuantità
magazzino(classe)
operatore +
vendita

Che ne dite?ho interpretato bene il tema?
Scusate la mia ignoranza...avete da darmi qualche consiglio?
grazie in anticipo

cionci
19-09-2008, 15:43
Classe Articoloderivata da fornitore(?))
Questo è errato.
La relazione di derivazione è solitamente possibile chiamarla estensione. In pratica la classe derivata deve avere le stesse caratteristiche della classe base più alcune peculiari: come dire, ha senso derivare Quadrato da FormaGeometrica, ma sicuramente non ha senso derivare Articolo da Fornitore.
La relazione fra Articolo e Fornitore ti viene fornita nella descrizione nel punto in cui dice: "un campo che preveda fino a 4 fornitori".

Vincenzo1968
19-09-2008, 15:55
Direi che anche questo è sbagliato:

Prezzo di vendita[(P.costo+iva)*1,4]

Solitamente il ricarico si applica sul costo al netto di I.V.A. e successivamente si aggiunge l'imposta.

P.S.
Deve trattarsi di un commerciante onesto se applica un ricarico del 40%. Ne conosco che applicano ricarichi del 100, 200 e 300% :D

banryu79
19-09-2008, 15:58
P.S.
Deve trattarsi di un commerciante onesto se applica un ricarico del 40%. Ne conosco che applicano ricarichi del 100, 200 e 300% :D

Si vede che è in modalità: [STROZZINAGGIOMODE OFF]

rudelcu
19-09-2008, 15:59
Questo è errato.
La relazione di derivazione è solitamente possibile chiamarla estensione. In pratica la classe derivata deve avere le stesse caratteristiche della classe base più alcune peculiari: come dire, ha senso derivare Quadrato da FormaGeometrica, ma sicuramente non ha senso derivare Articolo da Fornitore.
La relazione fra Articolo e Fornitore ti viene fornita nella descrizione nel punto in cui dice: "un campo che preveda fino a 4 fornitori".

E come dovrei schematizzarlo quel passaggio?

rudelcu
20-09-2008, 11:10
E come dovrei schematizzarlo quel passaggio?

allora?nessuno vuole aiutarmi?:cry:

cionci
20-09-2008, 11:12
un campo che preveda fino a 4 fornitori :D Una variabile che può mantenere più di un valore cos'è ?

rudelcu
21-09-2008, 17:34
un campo che preveda fino a 4 fornitori :D Una variabile che può mantenere più di un valore cos'è ?

è un array. ma come lo faccio con la classe?
Nn sono molto bravo in c++, è x questo ke ho kiesto aiuto...

rudelcu
23-09-2008, 19:42
thanks...