FranciscoSoccol

Lista 07 - Exercicio 01

Aug 5th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX_ALUNOS 30
  4. #define TAM_NOME 50
  5.  
  6. struct TipoAluno {
  7.     char nome[TAM_NOME];
  8.     float media;
  9.     int faltas;
  10. };
  11. // protótipos das funções
  12. float solicitaNota();
  13. int solicitaFaltas();
  14. float calculaMedia(float nota1, float nota2, float pontos, int faltas);
  15. float bonusMedia(int faltas);
  16. void exibeAluno(struct TipoAluno alunos[], int i);
  17.  
  18. // programa principal com as chamadas das funções criadas
  19. int main() {
  20.     struct TipoAluno alunos[MAX_ALUNOS];
  21.     float nota1, nota2, pontos;
  22.     int i, faltas;
  23.     for(i=0; i < MAX_ALUNOS; i++)
  24.         {
  25.             printf("\nEntre com o nome do aluno: ");
  26.             fflush(stdin);
  27.             gets(alunos[i].nome);
  28.             printf("Entre com a primeira nota (0 a 10): ");
  29.             nota1 = solicitaNota();
  30.             printf("Entre com a segunda nota (0 a 10): ");
  31.             nota2 = solicitaNota();
  32.             printf("Entre com os pontos (0 a 10): ");
  33.             pontos = solicitaNota();
  34.             faltas=solicitaFaltas();
  35.             alunos[i].faltas=faltas;
  36.             alunos[i].media = calculaMedia(nota1, nota2, pontos, faltas);
  37.         }
  38.     printf("Exibiçao de todos os alunos:\n");
  39.     for(i=0;i<MAX_ALUNOS;i++)
  40.         exibeAluno(alunos, i);
  41.     return 0;
  42. }
  43.  
  44. //solicitando a nota
  45. float solicitaNota()
  46. {
  47.     float nota;
  48.     scanf("%f",&nota);
  49.     if(nota>=0 && nota<=10)
  50.         return nota;
  51.         else
  52.             return printf("Erro de nota!\n\n");
  53. }
  54.  
  55. //solicitando as faltas
  56. int solicitaFaltas()
  57. {
  58.     int faltas;
  59.     printf("Digite as faltas: ");
  60.     scanf("%d", &faltas);
  61.     return faltas;
  62. }
  63.  
  64. //calculando a media
  65. float calculaMedia(float nota1, float nota2, float pontos, int faltas)
  66. {
  67.     float media;
  68.     //calculando a media
  69.     if((nota1>=0 && nota1<=10) && (nota2>=0 && nota2<=10))//verifica se as notas sao validas
  70.         media=(nota1+nota2)/2+pontos+bonusMedia(faltas);
  71.         else
  72.             media=0;
  73.     return media;
  74. }
  75.  
  76. //bonus media
  77. float bonusMedia(int faltas)
  78. {
  79.     float aux=0.5, aux2=0;
  80.     if(faltas==0)//verificando
  81.         return aux;
  82.         else
  83.             return aux2;
  84. }
  85.  
  86. //exibe alunos
  87. void exibeAluno(struct TipoAluno alunos[], int i)
  88. {
  89.     printf("Nome: %s\n",alunos[i].nome);
  90.     printf("Media: %.2f\n",alunos[i].media);
  91.     printf("Faltas: %d\n\n",alunos[i].faltas);
  92. }
Advertisement
Add Comment
Please, Sign In to add comment