ho scritto questa pila con le principali istruzione ma dov'è che sbaglio ? visto che quando vado provarla mi funziona solo una volta se tutto va bene!! e la funzione stampa come si fa?
grazie per il vostro aiuto! ve ne sarò riconoscente a vita!!!
codice:#include <cstdlib> #include <iostream> #include "pila.h" using namespace std; void menu(); int main(int argc, char *argv[]) { pila a; int scelta; int t; int e; //elemento da inserire do { menu(); cout<<"inserisci scelta"<<endl; cin>>scelta; switch(scelta) { case 1: cout<<"inserisci elemento"<<endl; cin>>e; a.push(e); break; case 2: cout<<"gli elementi della pila sono"<<endl; a.stampa(e); break; case 3: cout<<"l'elemento in testa e': "<<endl; a.pop(e); break; case 4: cout<<"copia elemento in testa alla pila"<<endl; a.top(e); break; default : break; } } while(scelta <6); system("PAUSE"); return EXIT_SUCCESS; } void menu() { cout<<"*****************************************************************************"<<endl; cout<<"******************************************************************************"<<endl; cout<<"1)inserisci elemento"<<endl; cout<<"2)stampa pila"<<endl; cout<<"3 prelevare elemento in testa alla pila"<<endl; cout<<"4) copia elemento in testa alla pila"<<endl; cout<<"*****************************************************************************"<<endl; cout<<"******************************************************************************"<<endl; } #ifndef _pila_h_ #define _pila_h_ typedef int E; class pila { public: pila(); //costruttore void push (const E e); void stampa(E & e); void pop (E & e); void top (E & e) const; bool empty () const ; bool full() const; private : enum{N=100}; //massimlo numero di elementi nella pila E p[N]; //p array di N elementi di tipo E int t; //t puntatore alla testa dell'array }; #endif #include <cstdlib> #include <iostream> #include "pila.h" using namespace std; //prototipo pila :: pila() { (t=0);} // assegna a empty true se la pila e' vuota bool pila::empty() const { return (t==0); } //assegna a full true se la pila è piena bool pila :: full () const { return (t==N); } //inserisci elemento void pila:: push(const E e) { p[t]=e; t++; } //stampa pila void pila:: stampa(E & e){ while(t!=0){ e=p[t-1]; t--; cout<<" "<<e<<endl;} } //preleva elemento in testa void pila:: pop (E & e){ t--; e=p[t]; cout<<" "<<e<<endl; } // copia elemento in testa alla pila void pila :: top (E & e) const { e=p[t-1]; cout<<" "<<e<<endl; }

					
					
					
					
				
 