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();
}
}

Beleza?