Advertisement
LuandaBernardo

11/12 SIGA

Dec 11th, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.21 KB | None | 0 0
  1. /*1º quesito: O NTI acha que o Siga está muito lento e pede aos alunos de Computação Eletrônica para reescrever o programa.
  2. O módulo que está sob sua responsabilidade de desenvolvimento realiza as tarefas seguintes:
  3. - Ler as notas do aluno;
  4. - Definir a situação (Aprovado/Reprovado por média, etc).
  5.  
  6. Para realizar esta tarefa, vamos representar um aluno com uma estrutura TAluno contendo:
  7. - Número do aluno (inteiro);
  8. - Notas do aluno (vetor de 5 elementos float, em ordem: 3 avaliações, a prova de 2a chamada e a prova final);
  9. - Média do aluno (float);
  10. - Situação do aluno (representado por um valor inteiro).
  11.    * Situação 0 ? caso nProvasPerdidas >= 2 e o valor da Média deve ser atribuído= -1;
  12.    * Situação 1 ? caso mediaSemestre < 3 (Reprovado por média) e Média = mediaSemestre;
  13.    * Situação 2 ? caso mediaSemestre >= 7 (Aprovado por média) e Média = mediaSemestre;
  14.    * Situação 3 ? caso mediaGlob <5 (Reprovado na final) e Média = mediaGlob;
  15.    * Situação 4 ? caso mediaGlob >=5 (Aprovado na final) e Média = mediaGlob.
  16. (A mediaGlob a média entre mediaSemestre – média entre as 3 avaliações – e a nota da prova final).
  17.  
  18. a)  Escreva uma função TAluno cadastraNotas() que solicite do professor o número e as notas de um aluno, e que retorna o
  19. TAluno correspondente. Caso um aluno não tenha feito uma prova, a nota dessa prova deve ser -1.
  20. b)  Escreva uma função void calculaIndicadores(TAluno a, int* nProvasPerdidas, float* mediaSemestre) que calcula a
  21.  quantidade de provas perdidas do TAluno e sua média entre as 3 primeira provas + 2a chamada, atualizando assim as variáveis nProvasPerdidas e
  22.   mediaSemestre.
  23. c)  Escreva no programa principal de forma que solicite ao professor que vai usar a ferramenta a quantidade de alunos N e, para cada aluno,
  24.  realizar de forma repetitiva:
  25. a.  Chame a função cadastrarNotas;
  26. b.  Chame a função calcularIndicadores;
  27. c.  Com estes dados, atualize a situação e a média do aluno.
  28. Obs.: Não precisa validar as entradas do professor: ele nunca erra!*/
  29.  
  30. #include<stdio.h>
  31. #include <conio.h>
  32. #include<string.h>
  33. typedef struct {
  34.         int numeroA, situacao;
  35.         float V[5], media;
  36.         }TAluno;
  37.  
  38. TAluno  cadastranotas ()
  39.       {
  40.         TAluno a;
  41.         printf ("Digite o numero do aluno:");
  42.         scanf ("%d", &a.numeroA);
  43.         printf ("\n Prova não realizada (nota  = -1)");
  44.         printf ("\n Digite a nota do EE1:");
  45.         scanf ("%f", &a.V[0]);
  46.         printf("\n Digite a nota do EE2:");
  47.         scanf ("%f", &a.V[1]);
  48.         printf ("\n Digite a nota do EE3:");
  49.         scanf ("%f", &a.V[2]);
  50.        printf  ("\n Digite a nota da 2 chamada:");
  51.         scanf ("%f", &a.V[3]);
  52.       printf  (" \nDigite a nota da Final:");
  53.         scanf ("%f", &a.V[4]);
  54.         return a;
  55.          }
  56. void calculaIndicadores(TAluno a, int nProvasPerdidas, float *mediaSemestre)
  57. {nProvasPerdidas =0;
  58.  
  59.  
  60.  if  (a.V[0]== -1)
  61.  {nProvasPerdidas++;}
  62.   if  (a.V[1]== -1)
  63.  { nProvasPerdidas++;}
  64.    if  (a.V[2]== -1)
  65.   {nProvasPerdidas++;}
  66.  printf ("\n O numero de provas perdidas e' %d",nProvasPerdidas);
  67.  
  68.  
  69.  
  70.  if (nProvasPerdidas==0)
  71.  {
  72.  *mediaSemestre = (a.V[0]+a.V[1]+a.V[2])/3;
  73.  printf ("\n A média do semestre é: %f", *mediaSemestre);}
  74.  
  75.  else if (nProvasPerdidas ==1 && a.V[0] ==-1)
  76. { *mediaSemestre = (a.V[3]+a.V[1]+a.V[2])/3;
  77.   printf ("\n A média do semestre é: %f", *mediaSemestre);}
  78.  
  79.  else if (nProvasPerdidas ==1 && a.V[1] ==-1)
  80.  {*mediaSemestre = (a.V[0]+a.V[3]+a.V[2])/3; printf ("\n A média do semestre é: %f", *mediaSemestre);}
  81.  
  82.  else if (nProvasPerdidas ==1 && a.V[2] ==-1)
  83.  {*mediaSemestre = (a.V[0]+a.V[1]+a.V[3])/3;
  84.   printf ("\n A média do semestre é: %f", *mediaSemestre);}
  85.  
  86.   if  ( nProvasPerdidas >= 2)
  87.   *mediaSemestre=-1;
  88.  
  89.  if (*mediaSemestre < 3)
  90.  printf ("\n Reprovado por media");
  91.  
  92.  
  93.  }
  94. main ()
  95. { TAluno x;
  96.      int n, i, provasperdidas;
  97.      float mediaS;
  98.      printf ("\n Digite o numero de alunos:");
  99.      scanf ("%d", &n);
  100.  
  101.      for (i=0; i<n; i++)
  102.      {
  103.          printf ("\n \n \n \n");
  104.        x =  cadastranotas();
  105.          calculaIndicadores (x, provasperdidas, &mediaS);
  106.    
  107.          }
  108.      
  109.      
  110.      
  111.      getch ();
  112.      return 0;
  113.      }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement