Ayuda con código en c++ para retornar a un menú del programa

Quisiera saber como retornar a un menu en c++ y como salir de este aquí dejo mi código di me ayudaran se lo agradecería mucho
#include <iostream>
#include <stdlib.h>
#define MAX 5
using namespace std;
int vector[MAX];
void ingresar (int x, int p){
     vector

= x;
     }
void llenar(){
     int a, i;
     for (i=1; i<=MAX; i++){
         cout<<"Ingrese Valor"<<" "<<i<<":"<<endl;
         cin>>a;
         ingresar(a,i);
         }
         }
void mostrar(){
     int i;
     for (i=1; i<=MAX; i++){
         cout<<"|"<<vector<<"|"<<" ";
         }
         }
void invertir(){
     int i;
     for (i=MAX; i>=1; i--){
         cout<<"|"<<vector<<"|"<<" ";
         }
         }
int buscar (int x){
    int i;
    for (i=1; i<=MAX; i++){
        if (vector == x){
            return i;
        }
    }  
        return -1;
}  
void mensajes(){
       cout<<"1.- Llenar arreglo"<<endl;
       cout<<"2.- Invertir arreglo"<<endl;
       cout<<"3.- Buscar un valor"<<endl;
       cout<<"4.- Muestra el arreglo completo"<<endl;
       cout<<"5.- Salir"<<endl;
       }
void menu(){
  int opcion;  
       int p, y;
       mensajes();      
       cin>>opcion;
       system("cls");      
       switch (opcion){
              while (opcion!=5){ 
           cout<<"Elije una opcion:"<<endl;
              cin>>opcion;
              case 1:
                   llenar();
                   break;
              case 2:
                   invertir();
                   break;
              case 3:
                   cout<<"Ingrese el numero a buscar"<<" ";
                   cin>>y;
                   p = buscar(y);
                   if (p != -1){
                      cout<<"El numero ingresado esta en la posicion"<<" "<<p<<endl;
                   }
                   else{
                        cout<<"El numero ingresado no fue encontrado"<<endl;
                   }
                   break;
              case 4:
                   mostrar();
                   break;
              case 5:
                   cout<<"Fin del Programa"<<endl;
                   break;
                   default:
             cout<<"opcion incorrecta"<<endl;
       } 
       }
       }                      
main(){
       cout<<"         Menu           "<<endl;
       menu();
       system("pause");

1 respuesta

Respuesta
1
Tu código de menú está muy desordenado, y no solo eso, por ahí habrá una doble pedida de opción.
void menu(){
  int opcion;  
       int p, y;
       mensajes();      
       cin>>opcion;  <---- aca lo pides una vez
       system("cls");      
       switch (opcion){
              while (opcion!=5){ 
           cout<<"Elije una opcion:"<<endl;
              cin>>opcion;<----- entras al switch y vuelves a pedir la opcion.
              case 1:
                   llenar();
                   break;
              case 2:
                   invertir();
                   break;
              case 3:
                   cout<<"Ingrese el numero a buscar"<<" ";
                   cin>>y;...
El código de menús es ya casi un estándar. Te paso un ejemplo y lo puedes tu ya acomodar a tu problema.
void main(){
    int op;
    do{   // se ingresa al menu        
    cout<<"*******************************************************"<<endl;
    cout<<"*                                                     *"<<endl;
    cout<<"*                     Menu Empleados                  *"<<endl;
    cout<<"*                                                     *"<<endl;
    cout<<"*      1.Ingresar                                     *"<<endl;
    cout<<"*      2.Consultar                                    *"<<endl;
    cout<<"*      3.Modificar                                    *"<<endl;
    cout<<"*      4.Eliminar                                     *"<<endl;
    cout<<"*      5.Salir                                        *"<<endl;
    cout<<"*                                                     *"<<endl;
    cout<<"*******************************************************"<<endl;
    cout<<"Digite una de las opciones :                           ";cin>>op;
    switch(op){   // se verifica que opcion se eligio
        case 1:ingresar();break;            
        case 2:consultar();break;
        case 3:modificar();break;
        case 4:eliminar();break;
         case 5: cout<<"gracias por usar este programa..."<<endl;
    }
    }while (op>0 && op<5 ); // se sale del menu mientras la opcion esté entre 1 y 4
// De este modo tu menu se va a repetir todas las veces que tu elijas solo las opciones 1 //2 3 4 que son las que llaman a funciones en el proceso de tu programa.
    system ("pause");
}
Espero que te sirva.
Si necesitas más ayuda, solo dímelo.
Hasta entonces
Muchas tienes razón soy muy desornada y después no me entiendo es que tengo problemas para programar por que perdí un año con un profesor demasiado malo y mis compañeros igual pero te agradezco mucho tu ayuda gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas