sexta-feira, 30 de novembro de 2012

Struct na prática - Linguagem C

Mostrando na prática como usar struct, é um programa simples que visa tirar dúvidas
de como criar struct em c. Evidentemente complica um pouco quando começamos a usar
ponteiros ou struct dentro de struct.Observe o uso do gets ao invés do scanf, isso
foi escolhido porque quando damos um espaço na palavra digitada o scanf não reconhece
mais o que vem pela frente.o if usado nos obriga a digitar o que mostra na opção, se
digitarmos errado, o else entra em ação e um sinal sonoro é emitido no alto falante do pc,e
mostra uma mensagem de erro; Depois de quase 2 segundos o comando while entra em ação
repetindo a operação e pedindo se deseja Cadastrar outro cliente. Usei e abusei como sempre das funções
gotoxy e textcolor da conio2.h porque sei que isto agrada a todos iniciantes.
Enfim, tai mais um código feito e indicado a iniciantes desta fascinante linguagem.

copie cole e compile o código abaixo em sua IDE favorita, eu usei o Visual Studio 2010
que é top de linha em programação.

#include <stdio.h>
#include <stdlib.h>
#include <conio2.h>

struct endereco {
     char nome [ 30 ];
     char rua [ 50 ];
     int numero;
     char bairro [ 20 ];
     char cidade [ 30 ];
     char sigla_estado [ 3 ];
     long int CEP;
};
int main ( ) {
     system ( "title STRUCT NA PRATICA" );
     int i = 0;
     struct endereco local [ 2 ];
     char opc;
     do{
         textbackground ( BLACK );
         textcolor ( LIGHTRED );
         system ( "cls" );
         gotoxy ( 30, 2 );
         printf ( "STRUCT NA PRATICA" );
         gotoxy ( 46, 4 );
         printf ( "     " );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 6 );
         printf ( "Digite seu nome: " );
         textcolor ( LIGHTRED );
         gets ( local [ i ].nome );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 8 );
         printf ( "Digite o nome da sua rua: " );
         textcolor ( LIGHTRED );
         gets ( local [ i ].rua );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 10 );
         printf ( "Digite o nome do seu Bairro: " );
         textcolor ( LIGHTRED );
         gets ( local [ i ].bairro );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 12 );
         printf ( "Digite o nome da sua Cidade:  " );
         textcolor ( LIGHTRED );
         gets ( local [ i ].cidade );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 14 );
         printf ( "Digite a sigla do seu Estado: " );
         textcolor ( LIGHTRED );
         gets ( local [ i ].sigla_estado );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 16 );
         printf ( "Digite o CEP da sua rua: " );
         textcolor ( LIGHTRED );
         scanf ( "%li", &local [ i ].CEP );
         textcolor ( LIGHTRED );
         system ( "cls" );
         gotoxy ( 30, 2 );
         printf ( "STRUCT NA PRATICA" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 6 );
         printf ( "Meu nome e:" );
         textcolor ( LIGHTRED );
         gotoxy ( 32, 6 );
         printf ( "%s", local [ i ].nome );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 8 );
         printf ( "Minha rua se chama:" );
         textcolor ( LIGHTRED );
         gotoxy ( 41, 8 );
         printf ( "%s", local [ i ].rua );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 10 );
         printf ( "Meu bairro se chama:" );
         textcolor ( LIGHTRED );
         gotoxy ( 41, 10 );
         printf ( "%s", local [ i ].bairro );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 12 );
         printf ( "Minha cidade se chama:" );
         textcolor ( LIGHTRED );
         gotoxy ( 44, 12 );
         printf ( "%s", local [ i ].cidade );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 14 );
         printf ( "A sigla do meu estado e:" );
         textcolor ( LIGHTRED );
         gotoxy ( 45, 14 );
         printf ( "%s", local [ i ].sigla_estado );
         textcolor ( LIGHTBLUE );
         gotoxy ( 20, 16 );
         printf ( "O CEP do meu bairro e:" );
         textcolor ( LIGHTRED );
         gotoxy ( 45, 16 );
         printf ( "%ld", local [ i ].CEP );
         textcolor ( YELLOW );
         gotoxy ( 20, 18 );
         printf ( "Deseja Cadastrar outros clientes?" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 54, 18 );
         printf ( "[S / N]  " );
         textcolor ( LIGHTRED );
         opc = getche ( );
         fflush ( stdin );

         if ( opc == 'N' ) {
              textcolor ( LIGHTCYAN );
              gotoxy ( 26, 22 );
              printf ( "MUITO OBRIGADO" );
              Sleep ( 1800 );
              exit ( 0 );
         }
         if ( opc == 'S' ) {
              continue;
         }
         else {
              textcolor ( LIGHTCYAN );
              gotoxy ( 26, 20 );
              printf ( "\aOPCAO ERRADA" );
              Sleep ( 1800 );
              system ( "cls" );
         }


     }while ( 1 );
     getche ( );
}

Nenhum comentário:

Postar um comentário

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