Socorro, Ajuda, Atividade de Modelagem de Classes, Herança e Interface

Bom dia, estou cursando técnico em informatica no instituto federal e acabei deixando muitas matérias acumular neste ultimo bimestre, incluindo uma atividade de java que não consigo produzir, pedi ajuda a varios colegas mas a maioria não consegue também. Sei que é muito errado da minha parte pedir algo assim mas preciso deste trabalho pronto e não conseguirei fazer com o tempo que me resta, a data de entrega é nesta quinta dia 12 ou até no maximo sexta dia 13.

1 - Poste o enunciado em forma de texto (a imagem está ilegível).
2 - Especifique a sua dificuldade.

não consegue “produzir” ou esta com preguiça? veio pedir pra alguem construir isso do zero…cara se voce não fizer o trabalho não vai conseguir produzir nunca mesmo, do que adianta alguem fazer algo por voce? voce poderia pelo menos ter criado as classes, os metodos e ter feito as relações :expressionless:

atividade2

ENUNCIADO

● Para aplicação:
○ Considerar lucratividade parcial por dia, ou seja, se for 10% ao mês e
passaram-se 32 dias, considerar 10% sobre o mês cheio e mais o
proporcional aos dois dias.
○ Considerar lucratividade sobre o valor aplicado, sempre o valor inicial, sem
considerar o valor ajustado após o lucro.
○ Considerar percentual por tipo de aplicação:
■ Se for CDB: rentabilidade de 6% ao mês;
■ Se for CDI: rentabilidade de 7% ao mês;
■ Se for Tesouro Direto: rentabilidade de 5% ao mês.
● Para poupança:
○ Considerar rentabilidade apenas mês completo (aniversário da poupança), ou
seja, se forem 32 dias, considera apenas 10 % sobre o mês cheio, e descarta
os dois dias excedentes.
○ Lucratividade sobre o valor já ajustado, ou seja, juros sobre juros.
○ Considerar rentabilidade de 4% ao mês.
○ Se for poupança premium, a cada 6 meses completos considera um
acréscimo de 1% no valor atual.
● Instanciar na classe main um cliente, e um investimento em aplicação do tipo
Tesouro Direto e um investimento em poupança premium, ambas no valor de R$
1.000,00 e data de retirada prevista para dia 30-06-2020.
● Lembre-se de adicionar os investimentos à lista de investimentos do cliente.
● Calcule para ambas qual será a rentabilidade atual e prevista, em cada caso.
● A rentabilidade atual calcula o valor atual do investimento considerando a data atual.
● A rentabilidade prevista calcula o valor previsto do investimento considerando a data
de vencimento.

Eu simplesmente não consigo fazer o trabalho no tempo estipulado devido a não saber a materia bem o bastante e tambem tenho outros trabalhos que me impedem de fazer o mesmo a tempo.

Realmente não consigo, fui muito mal na materia, só tive a ideia de pedir ajuda online porque este trabalho é minha unica chance de passar de ano.

Um norte:

1 - Classe Abstrata Investimento

import java.time.LocalDateTime;

public abstract class Investimento {
	private int codigo;
	private double valorAplicacao;
	private LocalDateTime dataAplicacao;
	private LocalDateTime dataVencimento;
	private Cliente cliente;
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setCodigo(int codigo){
		this.codigo = codigo;
	}
	
	public int getCodigo(){
		return codigo;
	}
	
	public void setValorAplicacao(double quantia){
		this.valorAplicacao = quantia;
	}
	
	public double getCodigo(){
		return valorAplicacao;
	}
	
	public void setDataAplicacao(LocalDateTime dataAplicacao){
		this.dataAplicacao = dataAplicacao;
	}
	
	public LocalDateTime getDataAplicacao(){
		return dataAplicacao;
	}
	
	public void setDataVencimento(LocalDateTime dataVencimento){
		this.dataVencimento = dataVencimento;
	}
	
	public LocalDateTime getDataVencimento(){
		return dataVencimento;
	}
	
	public void setCliente(Cliente cliente){
		this.cliente = cliente;
	}
	
	public Cliente getCliente(){
		return cliente;
	}
}

2 - Classe Poupança

public class Poupanca extends Investimento implements Rentavel{
	private boolean isPremium;
	
	/*
	* Métodos de Rentabilidade de Poupança
	*/
	
	public double calcularRentabilidadeAtual(){
		
	}
	
	public double calcularRentabilidadePrevista(){
		
	}
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setIsPremium(boolean isPremium){
		this.isPremium = isPremium;
	}
	
	public boolean isPremium(){
		return isPremium;
	}
}

3 - Classe Aplicação

public class Aplicacao extends Investimento implements Rentavel{
	private TipoAplicacao tipoAplicacao;
	
	/*
	* Métodos de Rentabilidade de Aplicação
	*/
	
	public double calcularRentabilidadeAtual(){
		
	}
	
	public double calcularRentabilidadePrevista(){
		
	}
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setTipoAplicacao(TipoAplicacao tipoAplicacao){
		this.tipoAplicacao = tipoAplicacao;
	}
	
	public TipoAplicacao getTipoAplicacao(){
		return tipoAplicacao;
	}
}

4 - Enumeração Tipo de Aplicação

public Enum TipoAplicacao {
	CDB = (1, "Certificado de Depósito Bancário"),
	TESOURO_DIRETO(2, "Título Públicos Federais"),
	CDI(3, "Certificado de Depósito Interbancário");
	
	private int codigoAplicacao;
	private String descricao;
	
	public TipoAplicacao(int codigo, String descricao){
		this.codigoAplicacao = codigo;
		this.descricao = descricao;
	}
	
	/*
	* Métodos acessores
	*/
	
	public int getCodigoAplicacao(){
		return codigoAplicacao;
	}
	
	public String getDescricao(){
		return descricao;
	}
}

5 - Interface Rentável

public interface Rentavel {
	public double calcularRentabilidadeAtual();
	public double calcularRentabilidadePrevista();
}

6 - Classe Cliente

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

public class Cliente {
	private int codigo;
	private String nome;
	private String cpf;
	private List<Investimento> investimentos = new ArrayList<>();
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setCodigo(int codigo){
		this.codigo = codigo;
	}
	
	public int getCodigo(){
		return codigo;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public int getNome(){
		return nome;
	}
	
	public void setCPF(String cpf){
		this.cpf = cpf;
	}
	
	public int getCPF(){
		return cpf;
	}
	
	public void setInvestimento(Investimento investimento){
		this.investimentos.add(investimento);
	}
	
	public List<Investimento> getInvestimento(){
		return investimentos;
	}
}

O resto você implementa.

2 curtidas

Muito obrigado.