Um dos menus mais eficiente que já vi por ai.E tudo muito simples fácil de ser compreendido,se baseia em posições

estabelecidas em um vetor de char com ponteiro.Modo de seleção por enter não falha,tem também o comando for que percorre a lista e permite que

printf imprima,e então vem switch case e ifs.





Código fornecido para mim,por Samuel Lima.[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]



Código:

#include

#include

#include

#include

#include

time_t hora_atual;

void Funcexit(){

void Janela5();

Janela5();

gotoxy(32,11);

printf("OPERACAO FINALIZADA");

gotoxy(2,23);// MOVE O CURSOR

Sleep(1800);

gotoxy(20,13);

printf("Voce e um chupador de piru \n");

time(&hora_atual);

gotoxy(20,15);

printf("A data e hora atuais são: %s", ctime(&hora_atual));

Sleep(1800);

exit(0);

gotoxy(3,24);// MOVE O CURSOR

}

void Janela6(){

int lin,col,timer,load;

col=0;

for(lin=2;lin<=24;lin++)

for(col=3;col<=78;col++)

{

gotoxy(col,lin);textbackground(6);printf(" ");

}

col=0;

for(lin=5;lin<=21;lin++)

for(col=6;col<=75;col++)

{

gotoxy(col,lin);textbackground(16);printf(" ");

}

}

void Janela5(){

int i=0;

textcolor(12);

for(i=2;i<25;i++) {

gotoxy(1,i); //linha da direita

printf("\xba");

}

for(i=2;i<25;i++) {

gotoxy(80,i);

printf("\xba");//linha da esquerda

}

int index = 0, contador;

char letras[5] = "\xcd";

gotoxy(1,1);

for (contador=0; contador < 80; contador++)

{

printf("%c",letras[index]);//Linha de cima

}

gotoxy(1,24);

for (contador=0; contador < 80; contador++)

{

printf("%c",letras[index]);//Linha de baixo

}

gotoxy(1,1);

printf("\xc9");

gotoxy(80,1);

printf("\xbb");

gotoxy(80,24);

printf("\xbc");

gotoxy(1,24);

printf("\xc8");

}

#define MaxNo_Menu 4 // Define quantos menu terá seu programa

int main(void) {

void MenuPrimcipal();

MenuPrimcipal();

}

void MenuPrimcipal(){

system("title MENU INTELIGENTE");

system("cls");

void aaaa();

void bbbb();

void cccc();

void Funcexit();

Janela6();

textcolor(LIGHTRED);gotoxy(33,3); printf("MENU INTELIGENTE");

textcolor(YELLOW);gotoxy(22,7);printf("PROGRAMA DESENVOLVIDO POR:");

textcolor(LIGHTCYAN);gotoxy(49,7);printf("TheNerd");

textcolor(LIGHTGREEN);gotoxy(30,9);printf("Thenerd@hotmail.com");

textcolor(LIGHTBLUE);gotoxy(29,11); printf("ESCOLHA UMA OPCAO ABAIXO");

char *menu_list[MaxNo_Menu] = { "AAAA",

"BBBB",

"CCCC",

"SAIR" };

int i,

xpos = 10,

ypos[MaxNo_Menu] = { 13, 15, 17, 19}; // lista do menu com o número da linha

for (i=0; i< MaxNo_Menu; ++i)

{

gotoxy(xpos, ypos[i] );

textattr(12);

printf("%s",menu_list[i] );

}

i=0;

while(1)

{

gotoxy(xpos, ypos[i]);

textattr(16 );

printf("%s",menu_list[i] );

switch( _getch() )

{

case 72: if(i>0) {

gotoxy(xpos,ypos[i] );

textattr(14);

printf("%s", menu_list[i] );

--i;

}

break;

case 80: if(i< MaxNo_Menu-1 )

{

gotoxy(xpos,ypos[i] );

textattr(14);

printf("%s", menu_list[i] );

++i;

}

break;

case 13:

if(i==0) { system("cls"); aaaa();}

if(i==1) { system("cls"); bbbb();}

if(i==2) { system("cls"); cccc();}

if(i==3) { system("cls"); Funcexit();} break;

}

}

}

void aaaa(){

void Janela5();

Janela5();

textcolor(LIGHTRED);gotoxy(33,12);printf("TheNerd");

Sleep(1800);MenuPrimcipal();

}

void bbbb(){

void Janela5();

Janela5();

textcolor(LIGHTRED);gotoxy(33,12);printf("Nerdzinhu e gay e do diabo");

Sleep(1800);MenuPrimcipal();

}

void cccc(){

void Janela5();

Janela5();

textcolor(LIGHTRED);gotoxy(33,12);printf("Thenerd");

Sleep(1800);MenuPrimcipal();

}ABRAÇOS