Kimossab

Função 9 - Carro Mais Recente De Uma Marca

Dec 17th, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.13 KB | None | 0 0
  1. /*
  2.     Item de escolha 9.
  3.     Neste item é executada a opção 9 : Pesquisa pelo carro mais recente de determinada marca
  4. */
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8. void MarcaPorAno(char marc[]) //função secundária do item, pesquisa da marca
  9. {
  10.     //variáveis necessárais para a função
  11.     char matricula[10], marca[15], modelo[25], matr[10], mod[25];
  12.     int ano, dono, cod, cilindrada, i=0, n=0, ano2, dono2, cod2, cil2;
  13.  
  14.     //variáveis de ficheiros e abertura destes
  15.     FILE *carros; FILE *historico;
  16.     carros = fopen("Carros.txt", "a+");
  17.     historico = fopen("Histórico.txt", "a+");
  18.  
  19.     while(!feof(carros))//pesquisa linha por linha até ao fim do ficheiro
  20.     {
  21.         //atribuição de valores às variáveis
  22.         fscanf(carros, "%s %s %s %d %d %d %d", matricula, marca, modelo, &ano, &dono, &cod, &cilindrada);  
  23.         if(stricmp(marc, marca) == 0) //comparar se a marca dada pelo utilizador é igual à marca do carro desta linha
  24.             if(ano > n) //se o ano desta linha é maior que o ano do ultimo carro encontrado
  25.             {
  26.                 //atribuição destes valores a variáveis auxiliares
  27.                 n=ano;
  28.                 strcpy(matr, matricula);
  29.                 strcpy(mod, modelo);
  30.                 ano2=ano;
  31.                 dono2=dono;
  32.                 cod2=cod;
  33.                 cil2=cilindrada;
  34.             }
  35.     }
  36.  
  37.     //se n diferente de 0, ou seja pelo menos um carro foi encontrado
  38.     if(n)
  39.     {
  40.         //mostragem de resultados
  41.         printf("O carro mais recente da marca %s e:\n", marc);
  42.         printf("%s\t%s\t%s\t%d\t%d\t%d\t%d", matr, marc, mod, ano2, dono2, cod2, cil2);
  43.         printf("\n=========================================================\n\n");
  44.     }
  45.     else
  46.     {
  47.         printf("\nNao encontrado carros com marca %s.", marc);
  48.         printf("\n=========================================================\n\n");
  49.     }
  50.  
  51.     //escritura no ficheiro histórico a função executada e fechar ficheiros
  52.     fprintf(historico, "Procura pelo carro mais recente da marca %s (%s as %s)\n", marc, __DATE__, __TIME__);
  53.     fclose(carros);
  54.     fclose(historico);
  55. }
  56.  
  57. void Escolha9()//função principal do item
  58. {
  59.     //variável para pedir valores
  60.     char marca[10];
  61.  
  62.     //pedir valores
  63.     printf("Insira a marca pela qual quer pesquisar o carro mais recente: ");
  64.     scanf("%s", marca);
  65.     MarcaPorAno(marca);
  66. }
Advertisement
Add Comment
Please, Sign In to add comment