Estou fazendo uma atividade em java para calcular media de três notas e frequência do aluno, onde um dos critérios são:
A saída do programa será um texto com a frequência e a média final do aluno, seguido de uma mensagem referente a sua situação no curso. Exemplo:
Frequencia: 78%
Media final: 6.5
Se o aluno for reprovado por faltas, a mensagem deve ser:
Aluno reprovado por faltas!
a) aluno aprovado com média superior a 9 (não inclusivo):
Aluno aprovado com louvor!
b) aluno aprovado com média superior a 6 (inclusivo) e inferior a 9 (inclusivo):
Aluno aprovado!
c) aluno reprovado com média superior a 4 (inclusivo) e inferior a 6 (não inclusivo):
Aluno de recuperação!
b) aluno reprovado com média inferior a 4 (não inclusivo):
Aluno reprovado!
se a nota for menor que 4 ele estará de recuperação,
Dados as 3 primeira entradas como p1 = 3, p2 = 6 e p3 = 3 e frequência 0,75:
Frequencia: 75%
Media: 3.9
Aluno reprovado! <<< essa seria a saída esperada, mas o que estou obtendo é: Aluno de recuperação!
Segue o código:
package Atividade;
import java.util.*;
public class MediaCriterioAprovacao {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
float frequencia;
float media, p1, p2, p3;
p1 = sc.nextFloat();
p2 = sc.nextFloat();
p3 = sc.nextFloat();
frequencia = sc.nextFloat();
media = ((p1 * 2) + (p2 * 2) + (p3 * 3)) / 7;
frequencia = frequencia * 100;
System.out.println(media);
if(frequencia >= 75) {
if(Math.ceil(media) > 9) {
System.out.printf("Frequencia: %.0f%%\n",frequencia,"%");
System.out.printf("Media: %.1f\n",media);
System.out.println("Aluno aprovado com louvor!");
} else if(Math.ceil(media) >= 6 && Math.ceil(media) <= 9) {
System.out.printf("Frequencia: %.0f%%\n",frequencia,"%");
System.out.printf("Media: %.1f\n",media);
System.out.println("Aluno aprovado!");
} else if(Math.ceil(media) >= 4 && Math.ceil(media) < 6) {
System.out.printf("Frequencia: %.0f%%\n",frequencia,"%");
System.out.printf("Media: %.1f\n",media);
System.out.println("Aluno de recuperação!");
} else if(media < 4) {
System.out.printf("Frequencia: %.0f%%\n",frequencia,"%");
System.out.printf("Media: %.1f\n",media);
System.out.println("Aluno reprovado!");
}
} else {
System.out.printf("Frequencia: %.0f%%\n",frequencia,"%");
System.out.printf("Media: %.1f\n",media);
System.out.println("Aluno reprovado por faltas!");
}
}
}