Buongiorno ragazzi, il programma nel momento in cui aggiungo un materiale in più, che sia una credenza o un letto, entra in loop quando vado a selezionare l'opzione di visualizzi, non riesco a capire in che parte di codice ci può essere l'errore! Grazie in anticipo a chiunque mi aiuti!
codice:#include<iostream> #include<fstream> #include<stdio.h> using namespace std; int inserisci(); void vediEricerca (); int ricerca(); void vediCred (); void vediLetto (); class arredo { public: string nome=""; string materiali=""; string colore=""; int prezzo; }; class credenza: public arredo { public: int ripiani; int cassetti; int sconto() { int nuovoPrezzo; nuovoPrezzo=prezzo*0.2; int sconto; sconto=prezzo-nuovoPrezzo; if(cassetti!=0) { cout<<"Il prezzo scontato del 20% e':"<<sconto<<endl; return sconto; } } }; class letto: public arredo { public: string tipo=""; }; int main() { int scelta; do { system("CLS"); cout<<"1.Inserire"; cout<<"\n2.Visualizza e Ricerca"; cout<<"\n3.Esci"; cout<<"\nOperazione da eseguire:"; cin>>scelta; switch(scelta) { case 1: inserisci(); break; case 2: vediEricerca (); break; } system("PAUSE"); } while(scelta!=3); cout<<"\n Grazie per aver utlizzato il programma! \n"; return 0; } int inserisci() { ofstream salva; salva.open("arredo.txt",ios::app); int scelta; cout<<"1.per inserire Credenza"; cout<<"\n2.per inserire Letto"; cout<<"\nOperazione da eseguire:"; cin>>scelta; switch(scelta) { case 1: { ofstream salva; salva.open("arredo.txt",ios::app); credenza c; c.nome="Credenza"; cout<<"\nNome Mobile:"<<c.nome<<endl; cout<<"\nMateriale:"; cin>>c.materiali; cout<<"\nColore:"; cin>>c.colore; cout<<"\nPrezzo rivenditore:"; cin>>c.prezzo; cout<<"\nCassetti:"; cin>>c.cassetti; c.sconto(); cout<<"\nRipiani:"; cin>>c.ripiani; salva<<c.nome<<endl; salva<<c.materiali<<endl; salva<<c.colore<<endl; salva<<c.prezzo<<endl; salva<<c.cassetti<<endl; salva<<c.ripiani<<endl; salva<<c.sconto()<<endl; salva.close(); } break; case 2: { ofstream salva; salva.open("arredo2.txt",ios::app); letto l; l.nome="Letto"; cout<<"\nNome Mobile:"<<l.nome<<endl; cout<<"\nMateriale:"; cin>>l.materiali; cout<<"\nColore:"; cin>>l.colore; cout<<"\nPrezzo rivenditore:"; cin>>l.prezzo; cout<<"\nTipo:"; cin>>l.tipo; salva<<l.nome<<endl; salva<<l.materiali<<endl; salva<<l.colore<<endl; salva<<l.prezzo<<endl; salva<<l.tipo<<endl; salva.close(); } break; }system("PAUSE"); } void vediEricerca () { ifstream leggi; leggi.open("arredo.txt"); while(!leggi.eof()) { credenza c; leggi>>c.nome; leggi>>c.materiali; leggi>>c.colore; leggi>>c.prezzo; leggi>>c.cassetti; leggi>>c.ripiani; cout<<"Nome:"<<c.nome<<endl; cout<<"Materiale:"<<c.materiali<<endl; cout<<"Colore:"<<c.colore<<endl; cout<<"Prezzo:"<<c.prezzo<<endl; cout<<"Prezzo rivenditore:"<<c.prezzo<<endl; cout<<"Cassetti:"<<c.cassetti<<endl; cout<<"Ripiani:"<<c.ripiani<<endl; c.sconto(); cout<<"\n---------------------------------------\n"; } leggi.close(); ifstream legg; legg.open("arredo2.txt"); while(!legg.eof()) { letto l; legg>>l.nome; legg>>l.materiali; legg>>l.colore; legg>>l.prezzo; legg>>l.tipo; cout<<"Nome:"<<l.nome<<endl; cout<<"Materiale:"<<l.materiali<<endl; cout<<"Colore:"<<l.colore<<endl; cout<<"Prezzo:"<<l.prezzo<<endl; cout<<"Tipo:"<<l.tipo<<endl; cout<<"\n---------------------------------------\n"; } legg.close(); }

Rispondi quotando