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();
}