Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.55 KB | None | 0 0
  1. /*
  2. 6. Desenvolva um programa para permitir o cadastro de 500 veículos.
  3. Cada veículo deve ser representado por uma estrutura formada por:
  4. um marca (máximo de 30 caracteres);
  5. um modelo (máximo de 40 caracteres);
  6. o ano de fabricação e um conjunto de dados técnicos;
  7.  
  8. O conjunto de dados técnicos, que também deve ser representado por uma estrutura, é composto de:
  9. potência em CV;
  10. cilindradas e número de válvulas.  
  11.  
  12. Elabore uma função para calcular a performance estrutural do veículo através da seguinte fórmula:
  13. dobro da potência somado com o valor das cilindradas, e dividido pela quantidade de válvulas.
  14. Se a quantidade de válvulas for maior ou igual a 16, multiplique a potência por 3 ao invés de 2.
  15.  
  16. Exiba todas as informações cadastradas, incluindo a performance estrutural.
  17.  
  18. Calcule e exiba a quantidade de veículos cuja performance estrutural é inferior a 150.
  19.  
  20. Exiba a maior performance estrutural entre os 500 veículos digitados.
  21.  
  22. Obs.:
  23. sempre que possível reaproveite o código através da modularização;
  24. escreva o protótipo da função que calcula a performance estrutural;
  25. use somente variáveis locais para resolver este problema.  
  26. */
  27.  
  28. #include<stdio.h>
  29. #include<stdlib.h>
  30. #define MAX 2
  31.  
  32. struct DadosTecnicos{
  33.        float potencia;
  34.        float cilindradas;
  35.        int valvulas;
  36. };
  37. struct Agenda{
  38.        char marca[31];
  39.        char modelo[41];
  40.        int fabricacao;
  41.        struct DadosTecnicos Auto;
  42. };
  43.  
  44. float calculaPerformance(float pot, float cil, int val);
  45. void finalizaPrograma(void);
  46.  
  47. int main(){
  48.     int i, cont=0;
  49.     float performance[MAX], maior=0;
  50.     struct Agenda carro[MAX];
  51.     //entrada de dados    
  52.     for(i=0;i<MAX;i++){
  53.        printf("Cadastro %d\n", i+1);
  54.        printf("\tDigite a marca: ");
  55.        gets(carro[i].marca);
  56.        printf("\tDigite o modelo: ");
  57.        gets(carro[i].modelo);
  58.        printf("\tDigite o ano de fabricacao: ");
  59.        scanf("%d", &carro[i].fabricacao);
  60.        
  61.        printf("\tDigite a potencia (CV): ");
  62.        scanf("%f", &carro[i].Auto.potencia);
  63.        printf("\tDigite as cilindradas: ");
  64.        scanf ("%f", &carro[i].Auto.cilindradas);
  65.        printf("\tDigite o numero de valvulas: ");
  66.        scanf ("%d", &carro[i].Auto.valvulas);
  67.        
  68.        performance[i] = calculaPerformance(carro[i].Auto.potencia, carro[i].Auto.cilindradas, carro[i].Auto.valvulas);
  69.        fflush(stdin);
  70.        
  71.        if(performance[i]<150)
  72.           cont++;
  73.          
  74.        if(performance[i]>maior)
  75.           maior = performance[i];
  76.          
  77.        printf("\n");
  78.     }
  79.     printf("\n\nSAIDA DE DADOS\n\n");
  80.     //saida de dados
  81.     for(i=0;i<MAX;i++){
  82.        printf("Cadastro %d\n", i+1);
  83.        printf("\tMarca: %s\n", carro[i].marca);
  84.        printf("\tModelo: %s\n",carro[i].modelo);
  85.        printf("\tAno de fabricacao: %d\n", carro[i].fabricacao);
  86.        
  87.        printf("\tPotencia (CV): %.2f\n", carro[i].Auto.potencia);
  88.        printf("\tCilindradas: %.2f\n", carro[i].Auto.cilindradas);
  89.        printf("\tNumero de valvulas: %d\n", carro[i].Auto.valvulas);
  90.        printf("\tPeformance = %.2f\n", performance[i]);
  91.        printf("\n");
  92.      
  93.     }
  94.    
  95.     printf("A maior performance : %.2f\n", maior);
  96.     printf("Performance inferior a 150: %d", cont);
  97.    
  98.     finalizaPrograma();
  99. }
  100.  
  101. float calculaPerformance(float pot, float cil, int val){
  102.       float performance;
  103.       if (val>=16){
  104.          performance = (pot*3+cil)/val;
  105.          return performance;
  106.       }
  107.       else{
  108.          performance = (pot*2+cil)/val;
  109.          return performance;
  110.       }
  111. }
  112.  
  113. void finalizaPrograma(void){
  114.      printf("\n\n\n");
  115.      system("pause");
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement