drunkenpenguin
31-08-2010, 13:50
In poche parole vorrei scrivere un programma che svolge varie operazioni a seconda della scelta fatta con switch.
Il problema è che, una volta terminata la funzione scelta con switch, il programma termina senza poter fare ulteriori scelte.
Come posso far rieseguire la scelta finché non si vuole uscire?
posto il codice nel caso possa servire a qualcosa:
#include <iostream>
using namespace std;
struct puffo{
char nome[10];
char professione[15];
puffo *prox;
};
void ins(puffo *&testa);
void cerca(puffo *&testa);
void puffiamo(puffo *&testa);
int main(){
int x;
puffo *inizio=NULL;
cout<<"Ciao, benvenuto in Puffolandia, cosa vuoi fare?"<<endl;
cout<<"1.Inserire un puffo"<<endl<<"2.Cercare un puffo"<<endl;
cout<<"3.Puffarsi la puffetta..."<<endl;
cin>>x;
if((x>4)||(x<1)) {
cout<<"vai alla puffoscuola a imparare i numeri puffostolto"<<endl;
return 0;
}
switch(x){
case 1:
ins(inizio);
break;
case 2: //MI SA' CHE PROBLEMA E
cerca(inizio); //SOLUZIONE STANNO DA
break; //QUESTE PARTI, POSSIBILE?
case 3:
puffiamo(inizio);
break;
case 4:
cout<<"un bona dai puffi"<<endl;
}
}
void ins(puffo *&testa){
puffo *tmp, *tmp2;
tmp2=testa;
tmp = new puffo;
cout<<"inserire il nome del puffo:"<<endl;
cin>>tmp->nome;
cout<<"inserire la professione del puffo:"<<endl;
cin>>tmp->professione;
tmp->prox=NULL;
if(testa==NULL) testa=tmp;
else{
while(tmp2->prox!=NULL) tmp2=tmp2->prox;
tmp2->prox=tmp;
}
}
void cerca(puffo *&testa){
char n[10];
cout<<"inserire il nome del puffo da cercare"<<endl;
cin>>n;
puffo *Tmp;
Tmp=testa;
while((Tmp->nome) != n) Tmp=Tmp->prox;
if((Tmp->prox==NULL)&&(Tmp->nome!=n))cout<<"il puffo che stai cercando non puffa nella lista"<<endl;
else cout<<"il puffo "<<n<<"di lavoro fa': "<<endl<<Tmp->professione<<"."<<endl;
}
void puffiamo(puffo *&testa){
char *puffetta = "puffetta";
puffo *puf;
puf=testa;
while(puf->nome!=puffetta)puf=puf->prox;
if((puf->prox==NULL)&&(puf->nome!=puffetta))cout<<"e oggi si rimane senza chiavare...puffetta non c'e'..."<<endl;
else cout<<"AAAHHHHH, OOOHHHH, UUUUUHHHHHHH"<<endl;
}
Il problema è che, una volta terminata la funzione scelta con switch, il programma termina senza poter fare ulteriori scelte.
Come posso far rieseguire la scelta finché non si vuole uscire?
posto il codice nel caso possa servire a qualcosa:
#include <iostream>
using namespace std;
struct puffo{
char nome[10];
char professione[15];
puffo *prox;
};
void ins(puffo *&testa);
void cerca(puffo *&testa);
void puffiamo(puffo *&testa);
int main(){
int x;
puffo *inizio=NULL;
cout<<"Ciao, benvenuto in Puffolandia, cosa vuoi fare?"<<endl;
cout<<"1.Inserire un puffo"<<endl<<"2.Cercare un puffo"<<endl;
cout<<"3.Puffarsi la puffetta..."<<endl;
cin>>x;
if((x>4)||(x<1)) {
cout<<"vai alla puffoscuola a imparare i numeri puffostolto"<<endl;
return 0;
}
switch(x){
case 1:
ins(inizio);
break;
case 2: //MI SA' CHE PROBLEMA E
cerca(inizio); //SOLUZIONE STANNO DA
break; //QUESTE PARTI, POSSIBILE?
case 3:
puffiamo(inizio);
break;
case 4:
cout<<"un bona dai puffi"<<endl;
}
}
void ins(puffo *&testa){
puffo *tmp, *tmp2;
tmp2=testa;
tmp = new puffo;
cout<<"inserire il nome del puffo:"<<endl;
cin>>tmp->nome;
cout<<"inserire la professione del puffo:"<<endl;
cin>>tmp->professione;
tmp->prox=NULL;
if(testa==NULL) testa=tmp;
else{
while(tmp2->prox!=NULL) tmp2=tmp2->prox;
tmp2->prox=tmp;
}
}
void cerca(puffo *&testa){
char n[10];
cout<<"inserire il nome del puffo da cercare"<<endl;
cin>>n;
puffo *Tmp;
Tmp=testa;
while((Tmp->nome) != n) Tmp=Tmp->prox;
if((Tmp->prox==NULL)&&(Tmp->nome!=n))cout<<"il puffo che stai cercando non puffa nella lista"<<endl;
else cout<<"il puffo "<<n<<"di lavoro fa': "<<endl<<Tmp->professione<<"."<<endl;
}
void puffiamo(puffo *&testa){
char *puffetta = "puffetta";
puffo *puf;
puf=testa;
while(puf->nome!=puffetta)puf=puf->prox;
if((puf->prox==NULL)&&(puf->nome!=puffetta))cout<<"e oggi si rimane senza chiavare...puffetta non c'e'..."<<endl;
else cout<<"AAAHHHHH, OOOHHHH, UUUUUHHHHHHH"<<endl;
}