El switch-case esta cortado por las definiciones de funciones. Si metes las funciones al final, se acaba el problema:
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <stdlib.h>
using namespace std;
void pausa();
struct Nodo{
int dato;
Nodo *siguiente;
};
//Prototipos de Función
void agregarPila(Nodo *&,int);
void sacarPila(Nodo *&,int &);
void mostrarPila(Nodo *&,int &);
int main(){
bool bandera=false;
char tecla;
do{
system("cls");
cin.clear();
cout << "Calculadora" << endl;
cout << "-----------" << endl << endl;
cout << "\t1 .- Sumar" << endl;
cout << "\t2 .- Restar" << endl;;
cout << "elige una opcion: ";
cin >> tecla;
switch(tecla){
case '1':
{
Nodo *pila = NULL; //Inicializamos pila
int dato, aux;
char rpt;
aux=5;
do{ //Pedimos todos los elementos de la pila
//cout<<"Digite un numero: ";
//cin>>dato;
if (aux<=0||aux>5){
cout<<"Alcanzo los 5 digitos: ";
break;
}
cout<<"Digite un numero: ";
cin>>dato;
if(dato==0){
if((aux==5)||(aux==4)||(aux==2)||(aux==1)||(aux==0)){
//cout<<aux-1;
agregarPila(pila,dato);
} else {
cout<<"\nNO ES UN VALOR ACEPTADO: ";
break;
}
aux=aux-1;
cout<<aux;
}
if(dato==1){
if(aux==3){
//cout<<aux-1;
agregarPila(pila,dato);
} else {
cout<<"\nNO ES UN VALOR ACEPTADO: ";
break;
}
aux=aux-1;
cout<<aux;
}
if (aux<=0 || aux>5){
cout<<"\n\nAlcanzo los 5 digitos: ";
break;
}
cout<<"\nDesea agregar otro numero a pila(s/n): ";
cin>>rpt;
} while((rpt == 's')||(rpt=='S'));
//if (aux<=0||aux>5)
//{
// cout<<"Alcanzo los 5 digitos: ";
//break;
//}
//cout<<"\nIMPRESION #2: \n";
//cout<<"\nIMPRESION #2: \n";
cout<<"Mostrando los elementos de la pila en la columna ENTRADA: ";
//while(pila != NULL){
// sacarPila(pila,dato);
// if(pila != NULL){
// cout<<dato<<" , ";
// }
// else{
// cout<<dato<<".";
// }
//}
//cout<<"\n\n\nIMPRESION #2: \n";
cout<<"\n\tESTADO\tENTRADA\tRESULTADO\n";
int a=0;
int b=0;
while(pila != NULL){
sacarPila(pila,dato);
if(pila != NULL){
cout<<"\t q"<<a<<"\t "<<dato<<"\t q"<<b<<"\n";
if((a==0)&&(b==0)){
a=0+dato;
b=0+dato;
} else {
a=1;
b=1;
}
} else{
cout<<"\t q"<<a<<"\t "<<dato<<"\t q"<<b<<"\n";
}
}
getch();
return 0;
}
case '2':
system("cls");
cout << "Has elejido Restar.\n";
pausa();
break;
default:
system("cls");
cout << "Opcion no valida.\a\n";
pausa();
break;
}
}while(bandera!=true);
return 0;
}
void pausa()
{
cout << "Pulsa una tecla para continuar...";
getwchar();
getwchar();
}
void agregarPila(Nodo *&pila,int n){
Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->dato = n;
nuevo_nodo->siguiente = pila;
pila = nuevo_nodo;
cout<<"\n\tElemento "<<n<<" agregado a PILA correctamente"<<"\n";
}
void sacarPila(Nodo *&pila,int &n){
Nodo *aux = pila;
n = aux->dato;
pila = aux->siguiente;
delete aux;
}
void mostrarPila(Nodo *&pila,int &n){
Nodo *aux = pila;
n = aux->dato;
pila = aux->siguiente;
delete aux;
}