Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****************************************************************************
- * Autor: Elcius Ferreira Barbosa Júnior *
- * Data: 04/10/2014 *
- * LP1 (2014.2): Trabalho extra. *
- * Instruções: Este programa foi executado e compilado no Windows 7 sendo *
- * a IDE usada na criação o Code::Blocks,que possui o compilador*
- * MinGW. *
- * *
- ****************************************************************************/
- /* Inclusão das bibliotecas utilizadas. */
- #include <stdio.h>
- #include <stdlib.h>
- /* Definição de algumas constantes simbólicas. */
- #define TIME 25000
- #define TIME2 15000
- /* Início da função principal. */
- int main()
- {
- int opcao,i,j,q,g,comp,aux=1,aux2=0; // Declaração das variáveis inteiras do programa.
- float valormenor,ano; // Declaração das variáveis reais do programa.
- system("color 4f"); // Alteração da cor do prompt.
- /* Declaração da estrutura de cadastro. */
- typedef struct {
- char marca[10]; // Elemento da estrutura referente às marcas dos carros.
- int ano; // Elemento da estrutura referente aos anos dos carros.
- char cor[10]; // Elemento da estrutura referente às cores dos carros.
- float preco; // Elemento da estrutura referente ao preço dos carros.
- }cadastro; // Nome dado à estrutura.
- cadastro cad[10]; // Declaração do array cujo tipo é definido pela estrutura criada.
- /* Apresentação do programa e do seu objetivo ao usuário. */
- printf ("|------------------------------------------------------------------------------|");
- printf ("|ESTE PROGRAMA PROPORCIONA O CADASTRO DE 10 CARROS E A CONSULTA DOS MESMOS.PARA|"); f
- printf ("|UTILIZA-LO, SIGA O MENU ABAIXO: |");
- printf ("|------------------------------------------------------------------------------|");
- /* Temporização. */
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- /* Apresentação do menu com as opções disponíveis ao usuário. */
- menu:
- printf ("\n*************************************MENU***************************************\n");
- printf ("\n DIGITE O NUMERO DA OPCAO DESEJADA.\n");
- printf ("\n OPCAO 1 > CADASTRAR CARROS.");
- printf ("\n OPCAO 2 > DIGITE UM VALOR E CONSULTE OS CARROS DE VALOR MENOR OU IGUAL.");
- printf ("\n OPCAO 3 > DIGITE UM ANO E CONSULTE OS CARROS DE ANO MAIOR OU IGUAL.");
- printf ("\n OPCAO 4 > ENCERRAR O PROGRAMA.\n");
- printf ("\n********************************************************************************\n");
- /* Temporização. */
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- printf ("\n DIGITE O NUMERO DA SUA OPCAO AQUI: "); // Solicitação de uma opção ao usuário.
- scanf ("%d", &opcao); // Leitura da opção introduzida pelo usuário referente às opções do menu.
- system("cls"); // Limpeza da tela
- if (opcao < 1 || opcao > 4) { // Eliminação de opções não disponíveis no menu.
- /* Temporização. */
- for ( i=0 ; i<=TIME2 ; ++i)
- for ( j=0 ; j<=TIME2 ; ++j) {}
- printf ("\n OPCAO INVALIDA!\n");
- /* Temporização. */
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2 ; ++g) {}
- goto menu; } // Retorno ao menu para introdução de uma opção válida.
- /* Switch case referente às opções do menu. */
- switch (opcao) {
- /* Case 1 referente à opção de cadastro. */
- case 1:
- cadastro:
- for ( i=0 ; i<10 ; ++i) { // Laço para o preenchimento de 10 carros.
- printf ("\n DIGITE A MARCA DO CARRO: "); // Solicitação das marcas dos carros.
- scanf ("%s", &cad[i].marca); // Leitura das marcas.
- printf ("\n DIGITE O ANO DO CARRO: "); // Solicitação dos anos dos carros.
- scanf ("%d", &cad[i].ano); // Leitura dos anos.
- printf ("\n DIGITE A COR DO CARRO: "); // Solicitação das cores dos carros.
- scanf ("%s", &cad[i].cor); // Leitura das cores.
- printf ("\n DIGITE O PRECO DO CARRO: "); // Solicitação dos preços dos carros.
- scanf ("%f", &cad[i].preco); // Leitura dos preços..
- printf ("\n********************************************************************************\n");
- /* Temporização. */
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2 ; ++g) {}
- }
- system("cls"); // Limpeza da tela
- for (i=0 ; i<10 ; i++) { // Laço para impressão em tela dos dados dos 10 carros cadastrados.
- printf ("\n********************************************************************************\n");
- printf ("\n\tDADOS CADASTRADOS\n");
- /* Temporização. */
- for ( q=0 ; q<=TIME ; ++q)
- for ( g=0 ; g<=TIME ; ++g) {}
- printf ("\n %d", aux + i); // Numeração dos carros cadastrados.
- printf ("\n\tMARCA DO CARRO: %s\n", cad[i].marca); // Impressão das marcas dos carros.
- printf ("\n\tANO DO CARRO: %i\n", cad[i].ano); // Impressão dos anos dos carros.
- printf ("\n\tCOR DO CARRO: %s\n", cad[i].cor); // Impressão das cores dos carros.
- printf ("\n\tPRECO DO CARRO: %0.1f\n", cad[i].preco); // Impressão dos preços dos carros.
- printf ("\n********************************************************************************\n");
- }
- aux2=1; // Variável usada para confirmar ao programa que a opção 1 do menu já foi acessada e o cadastramento realizado.
- /* Temporização. */
- for ( q=0 ; q<=TIME ; ++q)
- for ( g=0 ; g<=TIME ; ++g) {}
- goto menu; // Direcionamento ao menu para a possibilidade de escolha das outras opções.
- break;
- /*Case referente à opção de consulta a partir de um valor introduzido pelo usuário. */
- case 2:
- /* If usado para informar ao usuário que para acessar a opção 2 é necessário primeiro realizar o cadastro dos carros. */
- if (aux2==0) { // Se a variável aux2 ainda obtiver o valor zero, o usuário é direcionado ao cadastro.
- printf ("|----------------------------------------------------------------------------|");
- printf ("\n|PARA ACESSAR ESSA OPCAO EH NECESSARIO QUE A OPCAO 1 DO MENU SEJA SELECIONADA|");
- printf ("\n|PRIMEIRO,OU SEJA, EH NECESSARIO QUE OS CARROS JA ESTEJAM CADASTRADOS. COMO |");
- printf ("\n|AINDA NAO FORAM CADASTRADOS VOCE SERA REDIRECIONADO(A) PARA O CADASTRAMENTO.|");
- printf ("\n|E EM SEGUIDA PODERA ACESSAR A OPCAO 2 NORMALMENTE! |\n");
- printf ("|----------------------------------------------------------------------------|");
- /* Temporização. */
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- printf ("\n DIRECIONANDO PARA O CADASTRO");
- /* Temporização. */
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".\n");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- goto cadastro; // Direcionamento.
- }
- /* If que garante que o usuário já cadastrou os carros na opção 1 do menu. */
- if ( aux2 ==1 ) { // Se a variável possui o valor de um, temos a certeza de que os carros já foram cadastrados.
- printf("\n DIGITE O VALOR PARA A CONSULTA: "); // Solicitação do valor para a consulta.
- scanf ("%f", &valormenor); // Leitura do valor inserido.
- printf ("\n CONSULTANDO");
- /* Temporização. */
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".\n");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- /* Laço usado para imprimir em tela os carros que possuem valor menor do que o valor inserido na opção 2. */
- for ( i=0 ; i<10; ++i) {
- if ( valormenor >= cad[i].preco ) {
- printf ("\n> %s %i %s %0.1f\n", cad[i].marca,cad[i].ano, cad[i].cor,cad[i].preco); } }
- /* Conjunto que garante ao usuário que não há carros com preço menor do que o valor inserido na opção 2. */
- if ( valormenor < cad[0].preco ) {
- if ( valormenor < cad[1].preco ) {
- if ( valormenor < cad[2].preco ){
- if ( valormenor < cad[3].preco ){
- if ( valormenor < cad[4].preco ){
- if ( valormenor < cad[5].preco ){
- if ( valormenor < cad[6].preco ) {
- if ( valormenor < cad[7].preco ){
- if ( valormenor < cad[8].preco ){
- if ( valormenor < cad[9].preco ){
- printf ("\n > NENHUM CARRO DISPONIVEL.\n");} } } } } } } } } }
- /* Temporização. */
- for ( q=0 ; q<=TIME ; ++q)
- for ( g=0 ; g<=TIME ; ++g) {}
- goto menu; } // Retorno ao menu para a possibilidade de escolha de uma nova opção do mesmo.
- break;
- /* Case referente à opção de consulta a partir do ano inserido pelo usuário. */
- case 3:
- /* If usado para informar ao usuário que para acessar a opção 3 é necessário primeiro realizar o cadastro dos carros. */
- if (aux2==0) { // Se a variável aux2 ainda obtiver o valor zero, o usuário é direcionado ao cadastro.
- printf ("|----------------------------------------------------------------------------|");
- printf ("\n|PARA ACESSAR ESSA OPCAO EH NECESSARIO QUE A OPCAO 1 DO MENU SEJA SELECIONADA|");
- printf ("\n|PRIMEIRO,OU SEJA, EH NECESSARIO QUE OS CARROS JA ESTEJAM CADASTRADOS. COMO |");
- printf ("\n|AINDA NAO FORAM CADASTRADOS VOCE SERA REDIRECIONADO(A) PARA O CADASTRAMENTO.|");
- printf ("\n|E EM SEGUIDA PODERA ACESSAR A OPCAO 3 NORMALMENTE! |\n");
- printf ("|----------------------------------------------------------------------------|");
- /* Temporização. */
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- for ( i=0 ; i<=TIME ; ++i)
- for ( j=0 ; j<=TIME ; ++j) {}
- printf ("\n");
- printf ("\n DIRECIONANDO PARA O CADASTRO");
- /* Temporização. */
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".\n");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- goto cadastro; // Direcionamento.
- }
- /* If que garante que o usuário já cadastrou os carros na opção 1 do menu. */
- if ( aux2 ==1 ) { // Se a variável possui o valor de um, temos a certeza de que os carros já foram cadastrados.
- printf("\n DIGITE O ANO PARA A CONSULTA: "); // Solicitação do ano para a consulta.
- scanf ("%f", &ano); // Leitura do ano inserido.
- printf ("\n CONSULTANDO");
- /* Temporização. */
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".\n");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- /* Laço usado para imprimir em tela os carros que possuem anor maior do que o ano inserido na opção 2. */
- for ( i=0 ; i<10; ++i) {
- if (ano <= cad[i].ano ) {
- printf ("\n> %s %i %s %0.1f\n", cad[i].marca,cad[i].ano, cad[i].cor,cad[i].preco);
- }
- }
- /* Conjunto que garante ao usuário que não há carros com ano maior do que o ano inserido na opção 3. */
- if ( ano > cad[0].ano ) {
- if ( ano > cad[1].ano ) {
- if ( ano > cad[2].ano ){
- if ( ano > cad[3].ano ){
- if ( ano > cad[4].ano ){
- if ( ano > cad[5].ano ){
- if ( ano > cad[6].ano ) {
- if ( ano > cad[7].ano ){
- if ( ano > cad[8].ano ){
- if ( ano > cad[9].ano ){
- printf ("\n > NENHUM CARRO DISPONIVEL.\n");} } } } } } } } } }
- /* Temporização. */
- for ( q=0 ; q<=TIME ; ++q)
- for ( g=0 ; g<=TIME ; ++g) {}
- goto menu; } // Retorno ao menu para a possibilidade de escolha de uma nova opção do mesmo.
- break;
- /* Case referente à opção de encerramento do programa. */
- case 4:
- /* Temporização. */
- for ( q=0 ; q<=TIME ; ++q)
- for ( g=0 ; g<=TIME ; ++g) {}
- printf ("\n O PROGRAMA SERA ENCERRADO");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".");
- for ( q=0 ; q<=TIME2 ; ++q)
- for ( g=0 ; g<=TIME2; ++g) {}
- printf (".\n");
- for ( q=0 ; q<=TIME ; ++q)
- for ( g=0 ; g<=TIME; ++g) {}
- goto fim; // Direcionamento para o fim da função principal.
- break;
- }
- /* Fim da função principal. */
- fim:
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement