Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Resolução

package com.github.lucasdevrj.avaliacaodefilmes;

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

public class Titulo {

    private String nome;
    private List<Integer> avaliacoes = new ArrayList<>();
    private double mediaDasAvaliacoes = 0.0;

    public Titulo(String nome) {
        this.nome = nome;
    }

    public String getNome() {
        return nome;
    }

    private double getMediaDasAvaliacoes() {
        for (int i = 0; i < avaliacoes.size(); i++) {
            mediaDasAvaliacoes += avaliacoes.get(i);
        }
        mediaDasAvaliacoes = mediaDasAvaliacoes / avaliacoes.size();
        return mediaDasAvaliacoes;
    }

    public void avalia(int nota) {
        if (nota >= 1 && nota <= 5) {
            avaliacoes.add(nota);
            System.out.printf("O título \"%s\" foi avaliado com sucesso.\n", getNome());
        } else {
            System.out.println("Digite uma nota entre 1 a 5.");
        }
    }

    public void exibeMediaDasAvaliacoes() {
        System.out.println("Título: " + getNome());
        System.out.printf("Média das avaliações: %.2f\n", getMediaDasAvaliacoes());
    }
}
/**
 * Você está desenvolvendo um sistema para uma plataforma de streaming que deseja oferecer
 * recomendações mais precisas aos usuários. Para isso, é importante coletar avaliações
 * confiáveis e calcular médias que reflitam a qualidade real dos filmes.
 *
 * Crie uma classe que:
 *
 * Armazene o título do filme e suas avaliações. As avaliações são armazenadas em uma lista
 * Permita adicionar novas avaliações (apenas entre 1 e 5)
 * Calcule e exiba a média das avaliações com precisão decimal
 * Exemplo de entrada:
 *
 * Filme matrix = new Filme("Matrix");
 * matrix.adicionarAvaliacao(5);
 * matrix.adicionarAvaliacao(4);
 * matrix.adicionarAvaliacao(5);
 * matrix.adicionarAvaliacao(3);
 * matrix.adicionarAvaliacao(4);
 *
 * Saída esperada:
 *
 * Média de avaliações para Matrix: 4,20
 */

package com.github.lucasdevrj.avaliacaodefilmes;

public class Principal {
    public static void main(String[] args) {
        Titulo titulo1 = new Titulo("O Advogado do Diabo");
        titulo1.avalia(3);
        titulo1.avalia(4);
        titulo1.avalia(2);
        titulo1.exibeMediaDasAvaliacoes();

        Titulo titulo2 = new Titulo("A Outra História Americana");
        titulo2.avalia(5);
        titulo2.avalia(3);
        titulo2.avalia(1);
        titulo2.avalia(5);
        titulo2.exibeMediaDasAvaliacoes();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Beleza?