Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nena06 en 8 Julio 2010, 17:05 pm



Título: codigo que haga que regrese al inicio de un programa.
Publicado por: nena06 en 8 Julio 2010, 17:05 pm
Hola..se que alo mejor les resulta muy tonta mi pregunta..pero decearia saber el codigo de como regresar a la opcion principal,ya lo he buscado y no e podido ..si alguien me ayuda le quedare inmenzamente agradecida.
mi tarea consiste en crea un programa con varias opciones.pero cuando despliega la opcion 1 por ejemplo ya no puedo regresar al menu principal para elegir otra.gracias.

att..yo.


Título: Re: codigo que haga que regrese al inicio de un programa.
Publicado por: nicolas_cof en 8 Julio 2010, 17:08 pm
nena06, bienvenid@! te recomendaria leer las Reglas del subforo (https://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html)

Si pones algo del avance que llevas hecho seria mas facil para nosotros poder ayudarte.

Te invito a que pases por estos temas...

https://foro.elhacker.net/programacion_cc/para_que_dejeis_de_preguntar_de_una_vez_por_los_menus-t276719.0.html

https://foro.elhacker.net/programacion_cc/librospapers_c_and_c-t296234.0.html

https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Salu10.


Título: Re: codigo que haga que regrese al inicio de un programa.
Publicado por: SnakingMax en 8 Julio 2010, 18:57 pm
Lo que preguntas se hace con dos bucles mientras (bucle while) (logicamente se puede hacer con otros bucles)
Yo utilizo el 1er bucle hacerMientras para ver si he seleccionado salir y el otro para ver si ya he seleccionado alguna de las opciones.
También se puede hacer creando un procedimiento menu.
Te dejo el cómo se hace en pseudocódigo para que lo traduzcas al lenguaje de programación que vayas a utilizar:

Código:
Constantes
Entero N;

Variables
Entero Opción=N+15;

Inicio
hacer mientras (opción<>0)
     hacer mientras (opcion<0) ó (opción>N)
          imprimirPorPantalla "1-Esta es la primera opcion del menú.";
          imprimirPorPantalla "2-Esta es la segunda opcion del menú.";
                                           .
                                           .
                                           .
                                           .
          imprimirPorPantalla "N-Esta es la N opcion del menú.";
          imprimirPorPantalla "0-Opción de salir";
          Leer opcion;
     finMientras

     selecciona caso opcion
                    caso opcion=1: Instrucciones de la primera opción del menú.
                    caso opcion=2: Instrucciones de la segunda opción del menú.
                    caso opcion=N: Instrucciones de la tercera opción del menú.
     finCaso;
finMientras;
Fin.


Título: Re: codigo que haga que regrese al inicio de un programa.
Publicado por: winroot en 8 Julio 2010, 19:14 pm
tmb se puede llamando a la función main nuevamente no?
igual, gastamos menos recursos haciéndolo como dicen en el para que no pregunten mas por los  menus, pero  igual dejo un code=p
Código
  1. #include<iostream>
  2. using namespace std;
  3. void texto(string t);
  4. int main()
  5. {
  6. string text;
  7. cout <<"escriba un texto" <<endl;
  8. cin >>text;
  9. texto(text);
  10. }
  11. void texto(string t)
  12. {
  13. cout <<t <<endl;
  14. //inicia de nuevo el programa llamando a la función main
  15. main();
  16. }
  17.  
si no estoy confundido, tendría que ser algo así.
saludos


Título: Re: codigo que haga que regrese al inicio de un programa.
Publicado por: @synthesize en 8 Julio 2010, 19:48 pm
Puedes crearte una función principal (P.e. void miFunc() ) y acceder a ella llamándola desde el programa.

También puedes no salir de una principal gracias a un bucle, como te explican arriba, y así te ahorrar definir funciones o usar recursividad


Título: Re: codigo que haga que regrese al inicio de un programa.
Publicado por: do-while en 8 Julio 2010, 19:53 pm
Juas, un main recursivo solo para mostrar el menu principal...

Hacia mucho que no veia algo asi (7 años exactamente), cuando ayude a un amigo a hacer el tipico trabajo con 2 ficheros (o los que sea) para gestionar una linea aerea, ferreteria, cine...

Creo que en todo lo que le ayude, estaba correcto, mejorable seguramente pero correcto, pero no se si le pusieron un 5 o un 6 sobre 10. Supongo que seria por utilizar un main recursivo, y mira que le adverti veces que en lugar de ponerse a ocupar la pila con llamadas a main de forma indefinida (en principio el usuario podia acceder al menu principal una, mil o diez mil veces durante una ejecucion), que usase un do-while  ;-). Pero ni caso...

No utilices main de forma rcursiva solo para mostrar un menu.

¡Saludos!

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