Ayuda! Retornar al Menu Principal en C++

Iniciado por BKsiragon, 26 Enero 2013, 18:44 PM

0 Miembros y 1 Visitante están viendo este tema.

BKsiragon

Amigos quisieran que me ayudaran con este codigo para poder regresar al menu principal, es decir al terminar de realizar la operacion de Ordenacion seleccionada me salga la opcion para regresar de nuevo al menu principal o la opcion para salir del programa. les dejo el codigo:


#include <iostream>
#include <stdio.h>
#include<conio.h>
#include<windows.h>
#define MAX 10
using namespace std;


void burbuja();
void seleccion();
void salir();

main(void)

{
         
system("color 0A"); //COLOR PARA LA CONSOLA


int x;     
                 
cout<<endl<<"\t##################################################################";
cout<<endl<<"\t#                    METODOS DE ORDENAMIENTO                     #";
cout<<endl<<"\t#            METODO DE LA BURBUJA Y SELECCION DIRECTA            #"; //PORTADA DEL PROMAGRA!
cout<<endl<<"\t#                          By: IS5D-C                            #";           
cout<<endl<<"\t##################################################################"<<endl;
cout<<endl;
cout<<endl;

cout<<endl<<"\t\t******************* M E N U ******************";
cout<<endl<<"\t\t*                                            *";
cout<<endl<<"\t\t*     1.- Ordenamiento por Metodo Burbuja    *";
cout<<endl<<"\t\t*                                            *";
cout<<endl<<"\t\t*     2.- Ordenamiento por Metodo Seleccion  *";  //MENU DEL PROGRAMA!
cout<<endl<<"\t\t*                                            *";
cout<<endl<<"\t\t*     3.- Salir                              *";
cout<<endl<<"\t\t**********************************************";
cout<<endl;
cout<<endl;

cout<<endl<<">> ELIGE UNA OPCION: ";                              //PEDIR OPCION DEL MENU!
cout<<endl<<"   -------------------> ";
cin>>x;
cout<<endl;


switch (x){
case 1:burbuja();
break;
case 2:seleccion();
break;
case 3:salir();
break;


default: cout<<"ERROR, OPCION INVALIDA..";
}
getch();
}


void burbuja()
{
int I,N,Aux,J;
int V[10];



cout<<"Cuantos Numeros va a Ingresar al Vector?, Maximo 10: ";
cin>>N;
cout<<endl;
for(I=0; I<N; I++)
{
cout<<"Ingrese Dato "<<I+1<<": ";
cin>>V[I];
}
for (I=0; I<N-1; I++)
for (J=0; J<(N-1)-I; J++)
if (V[J]>V[J+1])
{
Aux=V[J];
V[J]=V[J+1];
V[J+1]=Aux ;
}

cout<<endl<<"[ NUMEROS ORDENADOS MEDIANTE BURBUJA ] "<<endl;
for(I=0; I<N; I++)
cout<<endl<<"\t\t"<<V[I];
cout<<endl<<endl;


}



void seleccion()
{
int J,I,N,K;
int V[10];
int Aux;

cout<<"Cuantos Numeros va a Ingresar al Vector?, Maximo 10: ";
cin>>N;
cout<<endl;
for(I=0; I<N; I++)


{   
cout<<"Ingrese Dato "<<I+1<<": ";
cin>>V[I];
}

for(I=0; I<N-1; I++)
{
K=I;
for (J=I+1; J<N; J++)
if (V[J]<V[K])
K=J;

Aux=V[I];
V[I]=V[K];
V[K]=Aux;
}


cout<<endl<<"[ NUEMROS ORDENADOS MEDIANTE SELECCION ]"<<endl;
for(I=N-1; I>=0; I--)
cout<<endl<<"\t\t"<<V[I];
cout<<endl<<endl;
cout<<"Presione Cualquier Tecla para Salir!";
system("exit");

}

void salir()
{
cout<<"Presione Cualquier Tecla para Salir!";
system("exit");

}

$Edu$

Tienes que meter el menu en bucle Do-While, seguramente has leido sobre eso. Haces que se ejecute por primera vez el bucle y luego seguira ejecutandose MIENTRAS que una variable NO sea igual a "salir" por ejemplo, asi cuando el usuario ingrese "salir" ahi el bucle terminara y saldra del programa.

Busca sobre eso del bucle y encontraras ejemplos y de paso iras viendo como poner otros pequeños bucles para controlar mejor los errores cuando ingresa algo incorrecto el usuario, para que vuelva a preguntar hasta que ingrese bien los datos o como quieras hacerlo.

Sputnik_

#2
Advertencia - mientras estabas leyendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h>
#include<conio.h>
#include<windows.h>
#define MAX 10
using namespace std;


void burbuja();
void seleccion();
void salir();

main(void)

{
         
system("color 0A"); //COLOR PARA LA CONSOLA

int seguir=1;
int x;    
                 
cout<<endl<<"\t##################################################################";
cout<<endl<<"\t#                    METODOS DE ORDENAMIENTO                     #";
cout<<endl<<"\t#            METODO DE LA BURBUJA Y SELECCION DIRECTA            #"; //PORTADA DEL PROMAGRA!
cout<<endl<<"\t#                          By: IS5D-C                            #";          
cout<<endl<<"\t##################################################################"<<endl;
cout<<endl;
cout<<endl;
do
{
cout<<endl<<"\t\t******************* M E N U ******************";
cout<<endl<<"\t\t*                                            *";
cout<<endl<<"\t\t*     1.- Ordenamiento por Metodo Burbuja    *";
cout<<endl<<"\t\t*                                            *";
cout<<endl<<"\t\t*     2.- Ordenamiento por Metodo Seleccion  *";  //MENU DEL PROGRAMA!
cout<<endl<<"\t\t*                                            *";
cout<<endl<<"\t\t*     3.- Salir                              *";
cout<<endl<<"\t\t**********************************************";
cout<<endl;
cout<<endl;

cout<<endl<<">> ELIGE UNA OPCION: ";                              //PEDIR OPCION DEL MENU!
cout<<endl<<"   -------------------> ";
cin>>x;
cout<<endl;


switch (x){
case 1:burbuja();
break;
case 2:seleccion();
break;
case 3:{
seguir = 0;
break;}


default: cout<<"ERROR, OPCION INVALIDA..";
}
if (seguir!=0)
{
cout << "DESEA CONTINUAR? 1 - SI , 0 - NO ";
cin >> seguir;
};
}while (seguir==1);
system("PAUSE");
}


void burbuja()
{
int I,N,Aux,J;
int V[10];



cout<<"Cuantos Numeros va a Ingresar al Vector?, Maximo 10: ";
cin>>N;
cout<<endl;
for(I=0; I<N; I++)
{
cout<<"Ingrese Dato "<<I+1<<": ";
cin>>V[I];
}
for (I=0; I<N-1; I++)
for (J=0; J<(N-1)-I; J++)
if (V[J]>V[J+1])
{
Aux=V[J];
V[J]=V[J+1];
V[J+1]=Aux ;
}

cout<<endl<<"[ NUMEROS ORDENADOS MEDIANTE BURBUJA ] "<<endl;
for(I=0; I<N; I++)
cout<<endl<<"\t\t"<<V[I];
cout<<endl<<endl;


}



void seleccion()
{
int J,I,N,K;
int V[10];
int Aux;

cout<<"Cuantos Numeros va a Ingresar al Vector?, Maximo 10: ";
cin>>N;
cout<<endl;
for(I=0; I<N; I++)


{  
cout<<"Ingrese Dato "<<I+1<<": ";
cin>>V[I];
}

for(I=0; I<N-1; I++)
{
K=I;
for (J=I+1; J<N; J++)
if (V[J]<V[K])
K=J;

Aux=V[I];
V[I]=V[K];
V[K]=Aux;
}


cout<<endl<<"[ NUEMROS ORDENADOS MEDIANTE SELECCION ]"<<endl;
for(I=N-1; I>=0; I--)
cout<<endl<<"\t\t"<<V[I];
cout<<endl<<endl;
system("exit");

}



estas mezclando C++ y C en este programa, yo quitaría getch(); y tambien es muy poco potable el programa :D saludos

Edito1. Quite la función salir();
Edito2.
Las personas lo suficientemente locas como para pensar que pueden cambiar el mundo son las que lo cambian.

BKsiragon

Amigos muchas gracias por reponder y ayudarme, seguire tratando de mejorar el codigo.