Menus para C++

Si haz programado a nivel basico, seguramente te has encontrado con el tipico menu, en el que se muestra las opciones, y se elige una. Posteo algunas formas de menu alternativas al tipico: "Ingrese la opcion: "

El primer menus es con un puntero hacia la opcion deseada y el segundo es resaltando al opcion
espero que les sirva . Puedes Descargar Menu, o verlo a continuacion



#include<conio.h>
#include<stdio.h>

#define TENT 13
#define TDER 77
#define TIZQ 75
#define TARR 72
#define TABA 80
#define TESC 27

char menu[3][15]={"Opcion 0","Opcion 1","Opcion 2"};

int Menu1(int x, int y, char tabla[][15],int no)
{
int i,pos,tecla;
textcolor(15);
for(i=0;i<no;i++)
{
gotoxy(x,y+i);cprintf("%s", tabla[i]);
}
x=x-2;
pos=0;
textcolor(10);
gotoxy(x,y);cprintf(" ");
do{
tecla=getch();
gotoxy(x,y+pos);cprintf(" ");
if(tecla==TARR)
if(pos==0)
pos=no-1;
else
pos--;
if(tecla==TABA)
if(pos==(no-1))
pos=0;
else
pos++;
gotoxy(x,y+pos);cprintf(" ");
}
while(!(tecla==TENT || tecla==TESC));

return pos;//retorna el numero de opcion de 1 a no
}//fin menu

/*..........FUNCION ELEGIR OPCION: RESALTADO.................*/
int Menu2(int x, int y, char tabla[][15], int N)
{
int i,tecla,C,pos=0;
textbackground(0);
C=4;
textcolor(15);
for(i=0;i<N;i++)
{
gotoxy(x,y+i);cprintf("%s", tabla[i]);
}

textbackground(C);
gotoxy(x,y);cprintf("%s", tabla[pos]);

do{
tecla=getch();
textbackground(0);
gotoxy(x,y+pos);cprintf("%s", tabla[pos]);
if(tecla==TARR)
if(pos==0)
pos=N-1;
else
pos--;
if(tecla==TABA)
if(pos==(N-1))
pos=0;
else
pos++;
textbackground(C);
gotoxy(x,y+pos);cprintf("%s", tabla[pos]);
}while(tecla!=TENT);

return pos;
}

void main()
{
int opc;
clrscr();
opc= Menu1(10,10,menu,3);
gotoxy(10,15);printf("%d: %s",opc,menu[opc]);

opc= Menu2(30,10,menu,3);
gotoxy(30,15);printf("%d: %s",opc,menu[opc]);
getch();
}

No hay comentarios:

Publicar un comentario