Trabalho de LPOO (grupo de 5 pessoas, para o dia 16/04)

Para este trabalho você deve fazer o sistema de cadastro de um histórico.

Neste sistema deve ser possível que um usuário final:

OBS: a função de listar pode ser a mesma do relatório.

As funções podem ser demonstradas dentro de uma classe Teste com um main (Veja um exemplo de classe Teste no final da página). Caso você não faça a interface com o usuário final você ganhará os pontos referentes à cada função mas não ganhará os pontos referentes à interface com o usuário final.

Você pode fazer uma interface com o usuário final através do terminal e/ou usando a biblioteca "Swing" (2pt).

OBS: É altamente recomendável que você faça o trabalho nesta ordem e garanta os pontos das partes que você fez. Para cada item feito atualize o Teste para coontemplar este item.

Entidades

Materia

A Materia é uma entidade que tem

Notas

Cada Materia possui 4 notas:

Regras de aprovação e média

Aprovação

Para que um aluno seja aprova ele deve ter média final maior ou igual a 5.0.

Média Final

Para calcular a "média final" devemos calcular duas médias:

OBS: este cálculo da média não representa a mesma regra que a Unip usa.

Exemplo de classe Teste

public class Teste {

	public static void main(String[] args) {

		CadastroAbstract cadastro = new Cadastro();

		cadastro.addRendimento(new Rendimento(new Materia("APOO", 2020),  new Notas(7, 8, 0, 0)));
		cadastro.addRendimento(new Rendimento(new Materia("BPOO", 2020),  new Notas(2, 2, 6, 10)));
		cadastro.addRendimento(new Rendimento(new Materia("CPOO", 2021),  new Notas(2, 8, 8, 0)));
		cadastro.addRendimento(new Rendimento(new Materia("DPOO", 2021),  new Notas(0, 1, 2, 3)));

		cadastro.fazRelatorio();

		cadastro.imprimeMateriasDoAno(2019);
		cadastro.imprimeMateriasDoAno(2020);
		cadastro.imprimeMateriasDoAno(2021);

		cadastro.imprimeMateriasStatus(true);
		cadastro.imprimeMateriasStatus(false);

	}

}

Esta classe abstrata serve apenas para servir de suporte ao exemplo de Teste, você não precisa usar.

public abstract class CadastroAbstract {

	public abstract void addRendimento(Rendimento rendimento);

	public abstract void fazRelatorio();

	public abstract void imprimeMateriasDoAno(int ano);

	public abstract void imprimeMateriasStatus(boolean isAprovado);

}