Ajuda com Código

Olá pessoal, tudo bem ?
Peguei um exercício em java que faz chamada de métodos em uma classe principal.
Um dos métodos exigidos pede que receba 3 notas e descarte a menor, sendo a media as outras duas notas.
Porém não está calculando a média corretamente.
Ex. Insiro as notas 8 3 8 e ele me da a média 12.

Classe aluno.java

package ProjetoLIVRO1;

/**
*

  • @author jose_
    */
    public class Aluno
    {
    long matricula;
    String nome, disciplina,mensagem; //Declaração de variaveis
    int numeroAulas, numeroFaltas;
    double notaAv1,notaAv2,notaAv3,media,limiteFaltas;

    public Aluno () //Método desparametrizad
    {

    }
    //Métodos set e get
    public void setMatricula(long matricula) {
    this.matricula = matricula;
    }

    public long getMatricula() {
    return matricula;
    }

    public void setNome(String nome) {
    this.nome = nome;
    }

    public String getNome() {
    return nome;
    }

    public void setDisciplina(String disciplina) {
    this.disciplina = disciplina;
    }

    public String getDisciplina() {
    return disciplina;
    }

    public void setNumeroAulas(int numeroAulas) {
    this.numeroAulas = numeroAulas;
    }

    public int getNumeroAulas() {
    return numeroAulas;
    }

    public void setNumeroFaltas(int numeroFaltas) {
    this.numeroFaltas = numeroFaltas;
    }

    public int getNumeroFaltas() {
    return numeroFaltas;
    }

    public void setNotaAv1(double notaAv1) {
    this.notaAv1 = notaAv1;
    }

    public double getNotaAv1() {
    return notaAv1;

    }
    public void setNotaAv2(double notaAv2) {
    this.notaAv2 = notaAv2;
    }

    public double getNotaAv2() {
    return notaAv2;

    }
    public void setNotaAv3(double notaAv3) {
    this.notaAv3 = notaAv3;
    }

    public double getNotaAv3() {
    return notaAv3;

    }

    public double calcularMedia()
    {
    if (notaAv1<notaAv2 && notaAv1<notaAv3)
    {
    media = notaAv2+notaAv3/2;
    }
    else if (notaAv2<notaAv1 && notaAv2<notaAv3)
    {
    media = notaAv1+notaAv3/2;
    }
    else
    {
    media = notaAv1+notaAv2/2;
    }

     return media;    
    

    }

    public double calcularLimiteFaltas()
    {
    limiteFaltas = numeroAulas*25/100;
    return limiteFaltas;
    }
    public String verificarSituacao()
    {

     if(media>=6 && numeroFaltas<=limiteFaltas)
     {
         mensagem ="Aluno APROVADO";
     }
     else
     {
         mensagem ="Aluno REPROVADO";
     }
     return mensagem;
    

    }
    }

classe principal que chama os métodos

teste.java

package ProjetoLIVRO1;
import javax.swing.JOptionPane;

/**
*

  • @author jose_
    */
    public class Teste
    {
    public static void main(String[]args)
    {
    Aluno aluno = new Aluno();

    aluno.setMatricula(Long.parseLong(JOptionPane.showInputDialog(“Digite a matricula:”)));
    aluno.setNome(JOptionPane.showInputDialog(“Digite o nome:”));
    aluno.setDisciplina(JOptionPane.showInputDialog(“Digite a disciplina:”));
    aluno.setNumeroAulas(Integer.parseInt(JOptionPane.showInputDialog(“Digite o número de aulas:”)));
    aluno.setNumeroFaltas(Integer.parseInt(JOptionPane.showInputDialog(“Digite o número de faltas:”)));
    aluno.setNotaAv1(Double.parseDouble(JOptionPane.showInputDialog(“Digite a nota da Av1:”)));
    aluno.setNotaAv2(Double.parseDouble(JOptionPane.showInputDialog(“Digite a nota da Av2:”)));
    aluno.setNotaAv3(Double.parseDouble(JOptionPane.showInputDialog(“Digite a nota da Av3:”)));
    JOptionPane.showMessageDialog(null,“Dados do aluno:\n”
    + “\t - Matricula: “+aluno.getMatricula()+”\n”
    + “\t - Nome: “+aluno.getNome()+”\n”
    + “\t - Disciplina: “+aluno.getDisciplina()+”\n”
    + “\t - Número de aulas: “+aluno.getNumeroAulas()+”\n”
    + “\t - Número de faltas: “+aluno.getNumeroFaltas()+”\n”
    + “\t - Nota AV1: “+aluno.getNotaAv1()+”\n”
    + “\t - Nota AV2: “+aluno.getNotaAv2()+”\n”
    + “\t - Nota AV3: “+aluno.getNotaAv3()+”\n”
    + "\t - Limite de Faltas: "+aluno.calcularLimiteFaltas());
    JOptionPane.showMessageDialog(null, "Sua média é: "+aluno.calcularMedia());
    JOptionPane.showMessageDialog(null,“O Aluno foi “+aluno.verificarSituacao());
    JOptionPane.showMessageDialog(null,”\t\t\t Autor: Bruno Fernandes”);

    }

}

Agradeço a todos pela atenção.

Bom Dia.

Você está fazendo o cálculo da média da seguinte forma:

media = notaAv1+notaAv3/2;

Só que o programa segue as mesmas regras da matemática, portanto ele faz primeiro a divisão e depois a soma. 8 + 8/2 => 8+4=12, para resolver o problema coloque as notas entre parenteses.

media = (notaAv1+notaAv3)/2;

2 curtidas

Obrigado, não acredito que esqueci a ordem de precedência!!
Muito Obrigado mesmo.

Por nada, não esqueça de marcar o tópico como Resolvido :smiley: