Salve a tutti. Anticipamente chiedo il perdono dal mio italiano a causa che non sono italofono.
Cercero di spiegarmi.
Ho due classi: "Prodotto" e "Supermercato", ho vari firme delle funzioni e implementazioni - qui ok.
Il problema e' il seguente. Quanto sono nel "main.cpp" e eseguo' il seguente codice:
ma prima giustamente istanzio un oggetto :codice:cout<<"Inserisci codice prodotto: "; cin>>codiceProdotto; cout<<"Inserisci descrizione prodotto: "; cin>>descrizioneProdotto; cout<<"Inserisci prezzo unitario del prodotto: "; cin>>prezzoUnitarioProdotto; cout<<"Inserisci quantita presente in negozio: "; cin>>quantitaNegozioProdotto; cout<<"Inserisci quantita presente in magazzino: "; cin>>quantitaMagazzinoProdotto; Prodotto *prodottoNuovo = new Prodotto(codiceProdotto,descrizioneProdotto,prezzoUnitarioProdotto,quantitaNegozioProdotto,quantitaMagazzinoProdotto); prodottoPresenteNegozioMagazzino->aggiungiProdotto((*prodottoNuovo));
E mi si pianta il programma. Uso IDE Code::Blocks che comunque compila il smart-complition vede tutte le firme ok.codice:Supermercato *prodottoPresenteNegozioMagazzino = new Supermercato();
Esporto a voi il codice della "Prodotto.h" , "Prodotto.cpp", "Supermercato.h" e "Supermercato.cpp"
codice:#ifndef PRODOTTO_H_INCLUDED#define PRODOTTO_H_INCLUDED #include <string> using namespace std; class Prodotto { private: int codice; string descrizione; float prezzoUnit; int quantitaNegozio; int quantitaMagazzino; public: int getCodice(); void setCodice(int codice); string getDescrizione(); void setDescrizione(string descrizione); float getPrezzoUnit(); void setPrezzoUnit(float prezzoUnit); int getQuantitaNegozio(); void setQuantitaNegozio(int quantitaNegozio); int getQuantitaMagazzino(); void setQuantitaMagazzino(int quantitaMagazzino); Prodotto(void);//Costruttore standard Prodotto(int in_codice, string in_descrizione, float in_prezzoUnit, int in_quantitaNegozio, int in_quantitaMagazzino);//Costruisco un oggetto Prodotto(const Prodotto &prodotto); //Costruttore di copia }; #endif // PRODOTTO_H_INCLUDEDcodice:#include "Prodotto.h" int Prodotto::getCodice() { return this->codice; } void Prodotto::setCodice(int codice) { this->codice = codice; } string Prodotto::getDescrizione() { return this->descrizione; } void Prodotto::setDescrizione(string descrizione) { this->descrizione = descrizione; } float Prodotto::getPrezzoUnit() { return this->prezzoUnit; } void Prodotto::setPrezzoUnit(float prezzoUnit) { this->prezzoUnit = prezzoUnit; } int Prodotto::getQuantitaNegozio() { return this->quantitaNegozio; } void Prodotto::setQuantitaNegozio(int quantitaNegozio) { this->quantitaNegozio = quantitaNegozio; } int Prodotto::getQuantitaMagazzino() { return this->quantitaMagazzino; } void Prodotto::setQuantitaMagazzino(int quantitaMagazzino) { this->quantitaMagazzino = quantitaMagazzino; } Prodotto::Prodotto(void) { codice = 0; descrizione = ""; prezzoUnit = 0.0; quantitaNegozio = 0; quantitaMagazzino = 0; } Prodotto::Prodotto(int in_codice, string in_descrizione, float in_prezzoUnit, int in_quantitaNegozio, int in_quantitaMagazzino) { this->codice = in_codice; this->descrizione = in_descrizione; this->prezzoUnit = in_prezzoUnit; this->quantitaNegozio = in_quantitaNegozio; this->quantitaMagazzino = in_quantitaMagazzino; } Prodotto::Prodotto(const Prodotto &prodotto) { this->codice = prodotto.codice; this->descrizione = prodotto.descrizione; this->prezzoUnit = prodotto.prezzoUnit; this->quantitaNegozio = prodotto.quantitaNegozio; this->quantitaMagazzino = prodotto.quantitaMagazzino; }codice:#ifndef SUPERMERCATO_H_INCLUDED #define SUPERMERCATO_H_INCLUDED #include <iostream> #include "Prodotto.h" class Supermercato { private: Prodotto* prodotto; int fornimentoMagazzino; int trasferimentoNegozio; int ricercaProdotto; int vendiProdotti; int quantita = 0, quanMax = 1000; public: Supermercato(void) { prodotto = new Prodotto[quanMax]; } ~Supermercato() { delete[] prodotto; } void aggiungiProdotto(const Prodotto in_prodotto); int fornisciQuantitaMagazzino(int in_fornimentoMagazzino); int vendiProdotto(int in_vendiProdotti); void trasferisciProdottoDaMagazANegoz(int in_trasferimentoNegozio, Prodotto in_prodotto); string RicercaProdotti(int codice); int getQuantita(); }; #endif // SUPERMERCATO_H_INCLUDEDPoi dovrei implementare le altri funzioni che non sono ancora state implementate. Perche' non saprei come farle. Mi sono abilitato a programmare in Java che li funziona la cosa un po diversamente. Prego aiutatemi...codice:#include "Supermercato.h" #include <ciso646> /** una libreria che converte gli operatori logici es. || in parola chiave "or"*/ #define quantitaMax 1000 void Supermercato::aggiungiProdotto(Prodotto in_prodotto) { prodotto[quanMax] = in_prodotto; quantita++; } int Supermercato::getQuantita() { return quantita; } int Supermercato::fornisciQuantitaMagazzino(int in_fornimentoMagazzino) { /**for (int i = 0; i < quantita; i++) { if (prodotto[i].getQuantitaMagazzino() == 0 or prodotto[i].getQuantitaMagazzino() >= 0) +=in_fornimentoMagazzino; }*/ } int Supermercato::vendiProdotto(int in_vendiProdotti) { float prezzoTot; for (int i = 0; i < quantita; i++) { if (prodotto[i].getQuantitaNegozio() > 0) prezzoTot = prodotto->getPrezzoUnit()*(float)in_vendiProdotti; } return prezzoTot; } void Supermercato::trasferisciProdottoDaMagazANegoz(int in_trasferimentoNegozio, Prodotto in_prodotto) { // TODO - implement Supermercato::trasferisciProdottoDaMagazANegoz throw "Not yet implemented"; } string Supermercato::RicercaProdotti(int codice) { for (int i = 0; i < quantita; i++) { if(prodotto[i].getCodice() == codice) { cout<<"Codice e' presente: "<<endl; } cout<<"Codice e' errato o non presente"; } return 0; }
In attesa di una Vostra rispota, le porgo distinti saluti.

Rispondi quotando