Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*1º quesito: O NTI acha que o Siga está muito lento e pede aos alunos de Computação Eletrônica para reescrever o programa.
- O módulo que está sob sua responsabilidade de desenvolvimento realiza as tarefas seguintes:
- - Ler as notas do aluno;
- - Definir a situação (Aprovado/Reprovado por média, etc).
- Para realizar esta tarefa, vamos representar um aluno com uma estrutura TAluno contendo:
- - Número do aluno (inteiro);
- - Notas do aluno (vetor de 5 elementos float, em ordem: 3 avaliações, a prova de 2a chamada e a prova final);
- - Média do aluno (float);
- - Situação do aluno (representado por um valor inteiro).
- * Situação 0 ? caso nProvasPerdidas >= 2 e o valor da Média deve ser atribuído= -1;
- * Situação 1 ? caso mediaSemestre < 3 (Reprovado por média) e Média = mediaSemestre;
- * Situação 2 ? caso mediaSemestre >= 7 (Aprovado por média) e Média = mediaSemestre;
- * Situação 3 ? caso mediaGlob <5 (Reprovado na final) e Média = mediaGlob;
- * Situação 4 ? caso mediaGlob >=5 (Aprovado na final) e Média = mediaGlob.
- (A mediaGlob a média entre mediaSemestre – média entre as 3 avaliações – e a nota da prova final).
- a) Escreva uma função TAluno cadastraNotas() que solicite do professor o número e as notas de um aluno, e que retorna o
- TAluno correspondente. Caso um aluno não tenha feito uma prova, a nota dessa prova deve ser -1.
- b) Escreva uma função void calculaIndicadores(TAluno a, int* nProvasPerdidas, float* mediaSemestre) que calcula a
- quantidade de provas perdidas do TAluno e sua média entre as 3 primeira provas + 2a chamada, atualizando assim as variáveis nProvasPerdidas e
- mediaSemestre.
- 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,
- realizar de forma repetitiva:
- a. Chame a função cadastrarNotas;
- b. Chame a função calcularIndicadores;
- c. Com estes dados, atualize a situação e a média do aluno.
- Obs.: Não precisa validar as entradas do professor: ele nunca erra!*/
- #include<stdio.h>
- #include <conio.h>
- #include<string.h>
- typedef struct {
- int numeroA, situacao;
- float V[5], media;
- }TAluno;
- TAluno cadastranotas ()
- {
- TAluno a;
- printf ("Digite o numero do aluno:");
- scanf ("%d", &a.numeroA);
- printf ("\n Prova não realizada (nota = -1)");
- printf ("\n Digite a nota do EE1:");
- scanf ("%f", &a.V[0]);
- printf("\n Digite a nota do EE2:");
- scanf ("%f", &a.V[1]);
- printf ("\n Digite a nota do EE3:");
- scanf ("%f", &a.V[2]);
- printf ("\n Digite a nota da 2 chamada:");
- scanf ("%f", &a.V[3]);
- printf (" \nDigite a nota da Final:");
- scanf ("%f", &a.V[4]);
- return a;
- }
- void calculaIndicadores(TAluno a, int nProvasPerdidas, float *mediaSemestre)
- {nProvasPerdidas =0;
- if (a.V[0]== -1)
- {nProvasPerdidas++;}
- if (a.V[1]== -1)
- { nProvasPerdidas++;}
- if (a.V[2]== -1)
- {nProvasPerdidas++;}
- printf ("\n O numero de provas perdidas e' %d",nProvasPerdidas);
- if (nProvasPerdidas==0)
- {
- *mediaSemestre = (a.V[0]+a.V[1]+a.V[2])/3;
- printf ("\n A média do semestre é: %f", *mediaSemestre);}
- else if (nProvasPerdidas ==1 && a.V[0] ==-1)
- { *mediaSemestre = (a.V[3]+a.V[1]+a.V[2])/3;
- printf ("\n A média do semestre é: %f", *mediaSemestre);}
- else if (nProvasPerdidas ==1 && a.V[1] ==-1)
- {*mediaSemestre = (a.V[0]+a.V[3]+a.V[2])/3; printf ("\n A média do semestre é: %f", *mediaSemestre);}
- else if (nProvasPerdidas ==1 && a.V[2] ==-1)
- {*mediaSemestre = (a.V[0]+a.V[1]+a.V[3])/3;
- printf ("\n A média do semestre é: %f", *mediaSemestre);}
- if ( nProvasPerdidas >= 2)
- *mediaSemestre=-1;
- if (*mediaSemestre < 3)
- printf ("\n Reprovado por media");
- }
- main ()
- { TAluno x;
- int n, i, provasperdidas;
- float mediaS;
- printf ("\n Digite o numero de alunos:");
- scanf ("%d", &n);
- for (i=0; i<n; i++)
- {
- printf ("\n \n \n \n");
- x = cadastranotas();
- calculaIndicadores (x, provasperdidas, &mediaS);
- }
- getch ();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement