sexta-feira, 30 de novembro de 2012

Exemplos de Menus - Linguagem C

Um Menu bem organizado e eficiente, é necessário para um programa mais avançado, onde se necessita de escolha de funcionalidades.
O Menu aqui proposto, é baseado num switch(case); que é perfeito para escolha, quando não se quer fazê-lo usando if e else.
Muito simples, e fácil de usar, este Menu pode fazer partes do seu programa passando por algumas adaptações, por isso, recomendo o uso
àqueles que ainda não dominam estes recursos importantes.

Veja as imagens do programa em execução:








copie, cole e compile o código abaixo:

#include <stdio.h>
#include <conio.h>
#include <time.h>
int main ( );
void Janela6 ( ) {
     int lin, col;
     for ( lin = 2; lin <= 24 ; lin++ )
         for ( col = 3; col <= 78 ; col++ ) {
              gotoxy ( col , lin );
              textbackground ( 6 );
              printf ( " " );
         }
     for ( lin = 5; lin <= 21 ; lin++ )
         for ( col = 6; col <= 75 ; col++ ) {
              gotoxy ( col , lin );
              textbackground ( 16 );
              printf ( " " );
         }
}
void Janela5 ( ) {
     int lin, col;
     for ( lin = 0; lin <= 25 ; lin++ ) {
         for ( col = 0; col <= 80 ; col++ ) {
              gotoxy ( col , lin );
              if ( lin == 2 ) {
                   textbackground ( LIGHTBLUE );
                   printf ( " " );
              }
              if ( col == 1 ) {
                   textbackground ( LIGHTBLUE );
                   printf ( " " );
              }
              if ( lin == 25 ) {
                   textbackground ( LIGHTBLUE );
              }
              if ( col == 80 ) {
                   textbackground ( LIGHTBLUE );
                   printf ( " " );
              }
         }
     }
     textbackground ( BLACK );
}
void Funcexit ( ) {
     time_t hora_atual;
     system ( "cls" );
     Janela5 ( );
     textcolor ( LIGHTRED );
     gotoxy ( 35 , 3 );
     printf ( "PROGRAMA MENU" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 32 , 11 );
     printf ( "OPERAÇÃO FINALIZADA" );
     gotoxy ( 52 , 11 );
     Sleep ( 1800 );
     textcolor ( LIGHTGREEN );
     gotoxy ( 20 , 13 );
     printf ( "MUITO OBRIGADO POR TER USADO ESTE PROGRAMA\n" );
     Sleep ( 1800 );
     time ( &hora_atual );
     textcolor ( LIGHTCYAN );
     gotoxy ( 20 , 15 );
     printf ( "A data e hora atuais são: %s" , ctime ( &hora_atual ) );
     gotoxy ( 71 , 15 );
     Sleep ( 2800 );
     exit ( 0 );
}
int menu2 ( ) {
     int op;
     do {
         system ( "cls" );
         Janela5 ( );
         textcolor ( LIGHTRED );
         gotoxy ( 35 , 3 );
         printf ( "PROGRAMA MENU" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 29 , 5 );
         printf ( "SEJA BEM VINDO AO SUB - MENU 2" );
         textcolor ( LIGHTGREEN );
         gotoxy ( 29 , 7 );
         printf ( "Escolha uma opção abaixo" );
         textcolor ( LIGHTCYAN );
         gotoxy ( 29 , 9 );
         printf ( "1 - EXEMPLO" );
         gotoxy ( 29 , 11 );
         printf ( "2 - SAIR" );
         gotoxy ( 29 , 13 );
         printf ( "3 - VOLTA AO MENU PRINCIPAL" );
         gotoxy ( 29 , 15 );
         textcolor ( YELLOW );
         scanf ( "%d" , &op );
         fflush ( stdin );
         system ( "cls" );
         Janela5 ( );
         switch ( op ) {
              case 1:
                   gotoxy ( 32 , 10 );
                   printf ( "ISTO E SO UM EXEMPLO" );
                   Sleep ( 1800 );
                   break;
              case 2:
                   Funcexit ( );
                   break;
              case 3:
                   return 1;
                   break;
              default:
                   textcolor ( LIGHTRED );
                   gotoxy ( 34 , 20 );
                   printf ( "\aOpção inválida!\n" );
                   Sleep ( 1800 );
                   break;
         }
     } while ( op != 0 );
     return ( 0 );
}
int menu1 ( ) {
     int op;
     do {
         system ( "cls" );
         Janela5 ( );
         textcolor ( LIGHTRED );
         gotoxy ( 35 , 3 );
         printf ( "PROGRAMA MENU" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 29 , 5 );
         printf ( "SEJA BEM VINDO AO SUB - MENU 1" );
         textcolor ( LIGHTGREEN );
         gotoxy ( 29 , 7 );
         printf ( "Escolha uma opção abaixo" );
         textcolor ( LIGHTCYAN );
         gotoxy ( 29 , 9 );
         printf ( "1 - EXEMPLO" );
         gotoxy ( 29 , 11 );
         printf ( "2 - SAIR" );
         gotoxy ( 29 , 13 );
         printf ( "3 - VOLTA AO MENU PRINCIPAL" );
         gotoxy ( 29 , 15 );
         textcolor ( YELLOW );
         scanf ( "%d" , &op );
         fflush ( stdin );
         system ( "cls" );
         Janela5 ( );
         switch ( op ) {
              case 1:
                   gotoxy ( 32 , 10 );
                   printf ( "ISTO E SO UM EXEMPLO" );
                   Sleep ( 1800 );
                   break;
              case 2:
                   Funcexit ( );
                   break;
              case 3:
                   return 1;
                   break;
              default:
                   textcolor ( LIGHTRED );
                   gotoxy ( 34 , 20 );
                   printf ( "\aOpção inválida!\n" );
                   Sleep ( 1800 );
                   break;
         }
     } while ( op != 0 );
     return ( 0 );
}
int main ( ) {
     int op;
     do {
         Janela6 ( );
         system ( "title PROGRAMA MENU" );
         textcolor ( LIGHTRED );
         gotoxy ( 35 , 3 );
         printf ( "PROGRAMA MENU" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 34 , 8 );
         printf ( "MENU PRINCIPAL" );
         textcolor ( LIGHTGREEN );
         gotoxy ( 29 , 10 );
         printf ( "Escolha uma opção abaixo" );
         textcolor ( LIGHTCYAN );
         gotoxy ( 29 , 12 );
         printf ( "1 - Sub - Menu 1" );
         gotoxy ( 29 , 14 );
         printf ( "2 - Sub - Menu 2" );
         gotoxy ( 29 , 16 );
         printf ( "3 - SAIR" );
         gotoxy ( 29 , 18 );
         textcolor ( YELLOW );
         scanf ( "%d" , &op );
         fflush ( stdin );
         switch ( op ) {
              case 1:
                   menu1 ( );
                   break;
              case 2:
                   menu2 ( );
                   break;
              case 3:
                   Janela5 ( );
                   Funcexit ( );
                   break;
              default:
                   textcolor ( LIGHTRED );
                   gotoxy ( 34 , 20 );
                   printf ( "\aOpção inválida!\n" );
                   Sleep ( 1800 );
                   break;
         }
     } while ( op != 0 );
     Funcexit ( );
     return 0;
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.