Programación General > C/C++

 Cómo hacer un menu circular en C++

(1/3) > >>

vpm:
Saludos,

Tengo que realizar un proyecto final en C++ y estoy usando Dev-C++ como Compilador.
Quiero agregarle un menu que sea circular, permitiendo usar las direccionales del teclado, que se resalte la opcion seleccionada, etc...

Por favor quisiera que me ayuden con un ejemplo que sea simple y funcional implementando lo ya dicho.

Gracias...

c14nur0:
pq no haces un swith case con las opciones y eso y bueno todo eso lo metes en un while infinito? si es que quieres que sea infinito si queres otra cosa puedes agergar una opcion salir por ejemplo, en esa opcion activas una bandera para que salga del while. eso haria yo no se xD hace ratico no programo en C y apenas estoy retomando el habito xD

m0skit0:
Si quieres que pase de la primera opción a la última y viceversa, si te he entendido bien, usa el operador % (módulo o resto).  ;)

Geo:
La lógica de un menú así es más o menos sencilla:
- Borras la pantalla
- Imprimes las opciones del menú, resaltando la seleccionada.
- Lees el teclado, ajustas la nueva opción del menú.
- Inicias de nuevo.

El borrado de pantalla, no es necesario si utilizas alguna función que te permita ubicar el cursor en una posición específica dentro de la pantalla (estilo gotoxy de los compiladores de Borland), así simplemente deberías actualizar las opciones correspondientes.

Mencionas que usas Dev-C++ pero no dices qué funciones utilizas para lectura del teclado, ¿estás trabajando con la implementación de conio para MinGW o con las funciones de consola de la API Win32?

Para que el menú sea "circular":

* inicializa opcion
* ciclo:

* leer teclado
* si se pulsó arriba, opcion = opcion + 1
* si se pulsó abajo, opcion = opcion - 1
* ajustar valores de la variable opcion (menú "circular"):
  (si es menor que 1, opcion = MAX_OPCIONES; si es mayor que MAX_OPCIONES, opcion = 1)
Suerte.

vpm:
Estoy usando la implementación de conio para MinGW, pero de todos modos las observaciones que has hecho me ayudaran mucho, gracias.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa