Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Item de escolha 11.
- Neste item é executada a opção 11 : categoria em que o estado mais arrecada
- */
- #include <stdio.h>
- extern float Imposto(int ano, int cil); //chamada de função exterior a este item
- void Escolha11()
- {
- //variáveis necessárias a esta função
- char matricula[10], marca[15], modelo[25];
- int ano, dono, cod, cilindrada, i=0, ii=0;
- float imposto[6]={0, 0, 0, 0, 0, 0}, max=0; //array de 6 valores, por serem 6 categorias
- //variáveis de ficheiros e abertura destes
- FILE *carros; FILE *historico;
- carros = fopen("Carros.txt", "a+");
- historico = fopen("Histórico.txt", "a+");
- while(!feof(carros))//pesquisa linha por linha do ficheiro
- {
- //atribuição de valores às variáveis
- fscanf(carros, "%s %s %s %d %d %d %d", matricula, marca, modelo, &ano, &dono, &cod, &cilindrada);
- //pesquisa em que categoria está o carro desta linha e aumentar o valor do imposto nessa categoria
- if(cilindrada<1000)
- imposto[0]+=Imposto(ano, cilindrada);
- if(cilindrada>1000 && cilindrada<=1300)
- imposto[1]+=Imposto(ano, cilindrada);
- if(cilindrada>1300 && cilindrada<=1750)
- imposto[2]+=Imposto(ano, cilindrada);
- if(cilindrada>1750 && cilindrada<=2600)
- imposto[3]+=Imposto(ano, cilindrada);
- if(cilindrada>2600 && cilindrada<=3500)
- imposto[4]+=Imposto(ano, cilindrada);
- if(cilindrada>3500)
- imposto[5]+=Imposto(ano, cilindrada);
- }
- //pesquisa no array para ver qual o valor mais alto
- max=imposto[0];
- for(i=1; i<6; i++)
- if(imposto[i]>max)
- {
- max=imposto[i];
- ii=i;
- }
- switch(ii) //switch de ii, para apresentar o resultado consoante a categoria em que este está
- {
- case 0: printf("A categoria que o Estado mais arrecada e ate 1000 cilindrada com %0.2f Euros\n", max);
- break;
- case 1: printf("A categoria que o Estado mais arrecada e entre 1001 e 1300 cilindrada com %0.2f Euros\n", max);
- break;
- case 2: printf("A categoria que o Estado mais arrecada e entre 1301 e 1750 cilindrada com %0.2f Euros\n", max);
- break;
- case 3: printf("A categoria que o Estado mais arrecada e entre 1751 e 2600 cilindrada com %0.2f Euros\n", max);
- break;
- case 4: printf("A categoria que o Estado mais arrecada e entre 2601 e 3500 cilindrada com %0.2f Euros\n", max);
- break;
- case 5: printf("A categoria que o Estado mais arrecada e mais de 3500 cilindrada com %0.2f Euros\n", max);
- break;
- }
- //fim da dunção
- printf("\n=========================================================\n\n");
- //escritura no ficheiro histórico e fechar ficheiros
- fprintf(historico, "Pesquisa pela categoria em que o Estado mais arrecada (%s as %s)\n", __DATE__, __TIME__);
- fclose(carros);
- fclose(historico);
- }
Advertisement
Add Comment
Please, Sign In to add comment