FranciscoSoccol

Lista 07 - Exercicio 02

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