O MENU mais eficiente que eu já vi em linguagem C padrão. Ainda não tinha postado este menu por aqui
más acho que tá na hora, é tudo muito simples e nem vou comentar porque todos entenderão logo
como tudo funciona, pois se baseia em posições estabelecidas em um vetor de char com ponteiro.
Temos o comando for que percorre esta lista e permite que printf a imprima, e então vem o switche case e ifs.
o modo de seleção pela tecla enter não falha más tudo pode ser modificado e melhorado
por um programador iniciante avançado. Se você faz menus melhores que estes porque não compartilha
conosco? Eu gosto de compartilhar conhecimentos e acho isto muito positivo, pena que nem todos
pensam assim. Como meu tempo tá muito curto vou postar assim, más provavelmente depois dou umas ajustadas.
Veja algumas imagens abaixo:
Veja abaixo um vídeo com o funcionamento do programa:
Copie e cole e compile o código abaixo:
más acho que tá na hora, é tudo muito simples e nem vou comentar porque todos entenderão logo
como tudo funciona, pois se baseia em posições estabelecidas em um vetor de char com ponteiro.
Temos o comando for que percorre esta lista e permite que printf a imprima, e então vem o switche case e ifs.
o modo de seleção pela tecla enter não falha más tudo pode ser modificado e melhorado
por um programador iniciante avançado. Se você faz menus melhores que estes porque não compartilha
conosco? Eu gosto de compartilhar conhecimentos e acho isto muito positivo, pena que nem todos
pensam assim. Como meu tempo tá muito curto vou postar assim, más provavelmente depois dou umas ajustadas.
Veja abaixo um vídeo com o funcionamento do programa:
Copie e cole e compile o código abaixo:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
void MenuPrimcipal();
void Janela5(){
int lin, col;
col = 0;
for ( lin = 2; lin <= 24; lin++ )
for ( col = 2; col <= 78; col++ ){
gotoxy(col,lin);textbackground(WHITE);printf(" ");
}
}
void aaaa(){
Janela5();
textcolor(LIGHTRED);gotoxy(33,10);printf("VOCE CLICOU
EM AAAA");
textcolor(BLACK);gotoxy(33,12);printf("ISTO E SO UM
TESTE");
Sleep(3800);MenuPrimcipal();
}
void bbbb(){
Janela5();
textcolor(LIGHTRED);gotoxy(33,10);printf("VOCE CLICOU
EM BBBB");
textcolor(BLACK);gotoxy(33,12);printf("ISTO E SO UM
TESTE");
Sleep(3800);MenuPrimcipal();
}
void cccc(){
Janela5();
textcolor(LIGHTRED);gotoxy(33,10);printf("VOCE CLICOU
EM CCCC");
textcolor(BLACK);gotoxy(33,12);printf("ISTO E SO UM TESTE");
Sleep(3800);MenuPrimcipal();
}
void HoraData(){
textbackground(BLACK);
gotoxy(6,22);textcolor(WHITE);
printf("Data:");
system("date/t");
gotoxy(6,23);
printf("Horas: ");
system("time/t ");
}
void Funcexit(){
void Janela5();
Janela5();HoraData();
gotoxy(32,11);
printf("OPERACAO FINALIZADA");
gotoxy(2,23);
Sleep(1800);
gotoxy(20,13);
printf("MUITO OBRIGADO POR TER USADO
ESTE PROGRAMA\n");
Sleep(4800);exit(0);
gotoxy(3,24);
}
void Janela6(){
int lin, col;
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(" ");
}HoraData();
}
#define MaxNo_Menu 4
void MenuPrimcipal(){
system("title MENU INTELIGENTE");HoraData();
system("cls");
Janela6();
textcolor(LIGHTRED);gotoxy(33,3); printf("MENU
INTELIGENTE");
textcolor(YELLOW);gotoxy(22,7);printf("PROGRAMA
DESENVOLVIDO POR:");
textcolor(LIGHTCYAN);gotoxy(49,7);printf("Samuel Lima");
textcolor(LIGHTGREEN);gotoxy(30,9);printf("sa_sp10@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;
}
}
}
int main( void ){
MenuPrimcipal();
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.