Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BKsiragon en 26 Enero 2013, 18:44 pm



Título: Ayuda! Retornar al Menu Principal en C++
Publicado por: BKsiragon en 26 Enero 2013, 18:44 pm
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:

Código:
#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");

}


Título: Re: Ayuda! Retornar al Menu Principal en C++
Publicado por: $Edu$ en 26 Enero 2013, 18:55 pm
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.


Título: Re: Ayuda! Retornar al Menu Principal en C++
Publicado por: Sputnik_ en 26 Enero 2013, 18:59 pm
Advertencia - mientras estabas leyendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include<conio.h>
  4. #include<windows.h>
  5. #define MAX 10
  6. using namespace std;
  7.  
  8.  
  9. void burbuja();
  10. void seleccion();
  11. void salir();
  12.  
  13. main(void)
  14.  
  15. {
  16.  
  17. system("color 0A"); //COLOR PARA LA CONSOLA
  18.  
  19. int seguir=1;
  20. int x;    
  21.  
  22. cout<<endl<<"\t##################################################################";
  23. cout<<endl<<"\t#                    METODOS DE ORDENAMIENTO                     #";
  24. cout<<endl<<"\t#            METODO DE LA BURBUJA Y SELECCION DIRECTA            #"; //PORTADA DEL PROMAGRA!
  25. cout<<endl<<"\t#                          By: IS5D-C                            #";          
  26. cout<<endl<<"\t##################################################################"<<endl;
  27. cout<<endl;
  28. cout<<endl;
  29. do
  30. {
  31. cout<<endl<<"\t\t******************* M E N U ******************";
  32. cout<<endl<<"\t\t*                                            *";
  33. cout<<endl<<"\t\t*     1.- Ordenamiento por Metodo Burbuja    *";
  34. cout<<endl<<"\t\t*                                            *";
  35. cout<<endl<<"\t\t*     2.- Ordenamiento por Metodo Seleccion  *";  //MENU DEL PROGRAMA!
  36. cout<<endl<<"\t\t*                                            *";
  37. cout<<endl<<"\t\t*     3.- Salir                              *";
  38. cout<<endl<<"\t\t**********************************************";
  39. cout<<endl;
  40. cout<<endl;
  41.  
  42. cout<<endl<<">> ELIGE UNA OPCION: ";                              //PEDIR OPCION DEL MENU!
  43. cout<<endl<<"   -------------------> ";
  44. cin>>x;
  45. cout<<endl;
  46.  
  47.  
  48. switch (x){
  49. case 1:burbuja();
  50. break;
  51. case 2:seleccion();
  52. break;
  53. case 3:{
  54. seguir = 0;
  55. break;}
  56.  
  57.  
  58. default: cout<<"ERROR, OPCION INVALIDA..";
  59. }
  60. if (seguir!=0)
  61. {
  62. cout << "DESEA CONTINUAR? 1 - SI , 0 - NO ";
  63. cin >> seguir;
  64. };
  65. }while (seguir==1);
  66. system("PAUSE");
  67. }
  68.  
  69.  
  70. void burbuja()
  71. {
  72. int I,N,Aux,J;
  73. int V[10];
  74.  
  75.  
  76.  
  77. cout<<"Cuantos Numeros va a Ingresar al Vector?, Maximo 10: ";
  78. cin>>N;
  79. cout<<endl;
  80. for(I=0; I<N; I++)
  81. {
  82. cout<<"Ingrese Dato "<<I+1<<": ";
  83. cin>>V[I];
  84. }
  85. for (I=0; I<N-1; I++)
  86. for (J=0; J<(N-1)-I; J++)
  87. if (V[J]>V[J+1])
  88. {
  89. Aux=V[J];
  90. V[J]=V[J+1];
  91. V[J+1]=Aux ;
  92. }
  93.  
  94. cout<<endl<<"[ NUMEROS ORDENADOS MEDIANTE BURBUJA ] "<<endl;
  95. for(I=0; I<N; I++)
  96. cout<<endl<<"\t\t"<<V[I];
  97. cout<<endl<<endl;
  98.  
  99.  
  100. }
  101.  
  102.  
  103.  
  104. void seleccion()
  105. {
  106. int J,I,N,K;
  107. int V[10];
  108. int Aux;
  109.  
  110. cout<<"Cuantos Numeros va a Ingresar al Vector?, Maximo 10: ";
  111. cin>>N;
  112. cout<<endl;
  113. for(I=0; I<N; I++)
  114.  
  115.  
  116. {  
  117. cout<<"Ingrese Dato "<<I+1<<": ";
  118. cin>>V[I];
  119. }
  120.  
  121. for(I=0; I<N-1; I++)
  122. {
  123. K=I;
  124. for (J=I+1; J<N; J++)
  125. if (V[J]<V[K])
  126. K=J;
  127.  
  128. Aux=V[I];
  129. V[I]=V[K];
  130. V[K]=Aux;
  131. }
  132.  
  133.  
  134. cout<<endl<<"[ NUEMROS ORDENADOS MEDIANTE SELECCION ]"<<endl;
  135. for(I=N-1; I>=0; I--)
  136. cout<<endl<<"\t\t"<<V[I];
  137. cout<<endl<<endl;
  138. system("exit");
  139.  
  140. }
  141.  
  142.  

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.


Título: Re: Ayuda! Retornar al Menu Principal en C++
Publicado por: BKsiragon en 26 Enero 2013, 20:35 pm
Amigos muchas gracias por reponder y ayudarme, seguire tratando de mejorar el codigo.