1
resposta

[Projeto] RegistroDeNotas

package br.com.nadson.desafiosc8.modelo;

import java.util.ArrayList;
import java.util.List;

public class Diciplina {
    private String diciplina;
    private List<Double> notasValidas = new ArrayList<>();
    private List<Double> notasInvalidas = new ArrayList<>();

    public Diciplina(String diciplina) {
        this.diciplina = diciplina;
    }

    public String getDiciplina() {
        return diciplina;
    }

    public List<Double> getNotasValidas() {
        return notasValidas;
    }

    public List<Double> getNotasInvalidas() {
    
        return notasInvalidas;
    }

    public void adicionarNota(double nota) {
        if (nota >= 0 && nota <= 10) {
            notasValidas.add(nota);
        } else {
            System.out.println("Nota inválida: " + nota);
            notasInvalidas.add(nota);
        }
    }
    
    public double calcularMedia() {
        if (notasValidas.isEmpty()) {
            return 0;
        }
        double soma = 0;
        for (double nota : notasValidas) {
            soma += nota;	
        }
        return soma / notasValidas.size();
    }
    
    public void exibirRelatorio() {
        System.out.println("Disciplina: " + diciplina);
        System.out.println("Notas Válidas: " + notasValidas);
        System.out.println("Notas Inválidas: " + notasInvalidas);
        System.out.printf("Média das Notas Válidas: %.2f%n", calcularMedia());
    }
}
package br.com.nadson.desafiosc8.principal;

import br.com.nadson.desafiosc8.modelo.Diciplina;

public class RegistroDeNotas {
    public static void main(String[] args) {
        Diciplina diciplina1=new Diciplina("Matemática");
        diciplina1.adicionarNota(8.5);
        diciplina1.adicionarNota(11.0);
        diciplina1.adicionarNota(7.0);
        diciplina1.adicionarNota(-2.0);
        diciplina1.exibirRelatorio();
        System.out.println("---------------");
        Diciplina diciplina2=new Diciplina("História");	
        diciplina2.adicionarNota(9.0);
        diciplina2.adicionarNota(6.5);
        diciplina2.adicionarNota(10.0);
        diciplina2.adicionarNota(12.0);
        diciplina2.exibirRelatorio();
        
        
    }

}
1 resposta

Olá, Nadson! Tudo bem?

Parabéns pela implementação!

Você aplicou muito bem os conceitos de encapsulamento, protegendo os atributos com private e criando métodos específicos para adicionar as notas e gerar o relatório. A lógica de validação (if (nota >= 0 && nota <= 10)) para separar as listas de notas válidas e inválidas ficou excelente e funcional.

Continue firme nos estudos de Java!

Bons estudos!

Sucesso

Imagem da comunidade