Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Respostas dos exercício 5 e 6

Boa tarde!

Não entendi as questões 5 e 6, consequentemente não consegui resolver. Gostaria se fosse possível, de receber as respostas com o código completo dos exercícios, assim como estão postados na "opinião do instrutor" as respostas dos exercícios 1 ao 4. Desde já agradeço à atenção.

4 respostas
solução!

Boa tarde Harlen,

Conforme meu entendimento, respondi assim:

package br.meusite.Desafio.CalculaPrecoFinal; public interface Calculavel { double calcularPrecoFinal(); }

package br.meusite.Desafio.CalculaPrecoFinal;

public interface Vendavel { double calcularPrecoTotal (int quantidade); void aplicarDesconto(double percentualDesconto); }

package br.meusite.Desafio.CalculaPrecoFinal;

public class Produto implements Vendavel { private String nome; private double precoUnitario;

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public double getPrecoUnitario() {
    return precoUnitario;
}

public void setPrecoUnitario(double precoUnitario) {
    this.precoUnitario = precoUnitario;
}

@Override
public double calcularPrecoTotal(int quantidade) {
    return precoUnitario * quantidade;
}

@Override
public void aplicarDesconto(double percentualDesconto) {
    precoUnitario -= precoUnitario * (percentualDesconto);

}

public void exibirInfoProduto() {
    System.out.println("Nome do produto: " + nome);
    System.out.println("Preço unitário: " + precoUnitario);
}

}

package br.meusite.Desafio.CalculaPrecoFinal;

public class Livro extends Produto implements Calculavel { private String autor;

public String getAutor() {
    return autor;
}

public void setAutor(String autor) {
    this.autor = autor;
}

@Override
public double calcularPrecoFinal() {
    return getPrecoUnitario() * 0.9;
}

public void exibirDadosLivro(){
    System.out.println("Autor(es): " + autor);
    System.out.println("Preço final: " + calcularPrecoFinal());
}

}

package br.meusite.Desafio.CalculaPrecoFinal;

public class ProdutoFisico extends Produto implements Calculavel {

@Override
public double calcularPrecoFinal() {
    return getPrecoUnitario() * 1.05;
}

public void exibirPrecoFinal() {
    System.out.println("Preço final: " + calcularPrecoFinal());
}

}

package br.meusite.Desafio.CalculaPrecoFinal;

public class Servico implements Vendavel { private String descricao; private double precoHora;

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public double getPrecoHora() {
    return precoHora;
}

public void setPrecoHora(double precoHora) {
    this.precoHora = precoHora;
}

@Override
public double calcularPrecoTotal(int quantidade) {
    return precoHora * quantidade;
}

@Override
public void aplicarDesconto(double percentualDesconto) {
    precoHora -= precoHora * (percentualDesconto / 100.0);

}

public void exibirInfoServico() {
    System.out.println("Descrição do serviço: " + descricao);
    System.out.println("Valor hora/serviço: " + precoHora);
}

}

public class Main { public static void main(String[] args) {

    System.out.println("********* Exibe venda de produtos *********");

    System.out.println("<-------- Venda produto físico --------> ");
    ProdutoFisico produto = new ProdutoFisico();
    produto.setNome("Leite");
    produto.setPrecoUnitario(4.19);
    produto.exibirInfoProduto();
    produto.exibirPrecoFinal();
    System.out.println();

    System.out.println("<-------- Venda de livro --------> ");
    Livro livro = new Livro();
    livro.setNome("Padrões de Projeto");
    livro.setPrecoUnitario(80);
    livro.setAutor("Eric Freeman / Elisabeth Freeman");
    livro.exibirInfoProduto();
    livro.exibirDadosLivro();
    System.out.println();

    System.out.println("********* Exibe serviços prestados *********");
    Servico servico = new Servico();
    servico.setDescricao("Formatação notebook");
    servico.setPrecoHora(75.00);
    servico.aplicarDesconto(10);
    servico.exibirInfoServico();
    System.out.println();
}

}

Espero ter ajudado você!

Obrigado amigo!

5 - Crie uma interface Calculavel com um método double calcularPrecoFinal(). Implemente essa interface nas classes Livro e ProdutoFisico, cada uma retornando o preço final considerando descontos ou taxas adicionais.

public interface Calculavel {

    double calcularPrecoFinal();
}
public class Produto {
    String nome;
    double preco;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }
}
public class Livro extends Produto implements Calculavel {
    private String ano;
    private String autor;

    public String getAno() {
        return ano;
    }

    public void setAno(String ano) {
        this.ano = ano;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    @Override
    public double calcularPrecoFinal() {
        return getPreco() * 0.9;
    }

    public void exibirInformacoesLivro() {
        System.out.println("Nome: " + getNome());
        System.out.println("Ano: " + ano);
        System.out.println("Autor(a): " + autor);
        System.out.printf("Preço Final: R$ %.2f ", calcularPrecoFinal());
        System.out.println();
    }
}
public class ProdutoFisico extends Produto implements Calculavel {

    @Override
    public double calcularPrecoFinal() {
        return getPreco() * 1.05;
    }

    public void exibirInformacoesProduto() {
        System.out.println("Nome: " + getNome());
        System.out.printf("Preço Final: R$ %.2f ", calcularPrecoFinal());
        System.out.println();
    }
}
public class Main {
    public static void main(String[] args) {
        System.out.println("-----Venda de Produtos-----");

        System.out.println("Venda de Livros");
        Livro livro = new Livro();
        livro.setNome("Caminho de pedras");
        livro.setAno("2008");
        livro.setAutor("Rachel de Queiroz");
        livro.setPreco(49.90);
        livro.calcularPrecoFinal();
        livro.exibirInformacoesLivro();

        System.out.println("---------------------------");

        System.out.println("Venda de Produtos Físicos");
        ProdutoFisico produto = new ProdutoFisico();
        produto.setNome("Arroz");
        produto.setPreco(6.0);
        produto.calcularPrecoFinal();
        produto.exibirInformacoesProduto();
    }
}

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

6 - Crie uma interface Vendavel com métodos para calcular o preço total de um produto com base na quantidade comprada e aplicar descontos. Implemente essa interface nas classes Produto e Servico, cada uma fornecendo a sua própria lógica de cálculo de preço.

public interface Vendavel {
    double calcularPrecoTotal(int quantidade);

    void aplicarDesconto(double percentualDesconto);
}
public class Produto implements Vendavel {
    private String nome;
    private double precoUnitario;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getPrecoUnitario() {
        return precoUnitario;
    }

    public void setPrecoUnitario(double precoUnitario) {
        this.precoUnitario = precoUnitario;
    }

    @Override
    public double calcularPrecoTotal(int quantidade) {
        return precoUnitario * quantidade;
    }

    @Override
    public void aplicarDesconto(double percentualDesconto) {
        precoUnitario = precoUnitario - precoUnitario * (percentualDesconto / 100.0);
    }

    public void exibirInformacoesProduto() {
        System.out.println("Nome do produto: " + nome);
        System.out.printf("Preço unitário: R$ %.2f ", precoUnitario);
    }
}
public class Servico implements Vendavel {
    private String descricao;
    private double precoHora;

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public double getPrecoHora() {
        return precoHora;
    }

    public void setPrecoHora(double precoHora) {
        this.precoHora = precoHora;
    }

    @Override
    public double calcularPrecoTotal(int quantidade) {
        return precoHora * quantidade;
    }

    @Override
    public void aplicarDesconto(double percentualDesconto) {
        precoHora = precoHora - precoHora * (percentualDesconto / 100.0);
    }

    public void exibirInformacoesServico() {
        System.out.println("Descrição do serviço: " + descricao);
        System.out.printf("Preço hora/serviço: R$ %.2f", precoHora);
    }
}
public class Main {
    public static void main(String[] args) {
        System.out.println("----------VENDAS----------");

        Produto produto = new Produto();
        produto.setNome("Feijão");
        produto.setPrecoUnitario(10.0);
        produto.calcularPrecoTotal(3);
        produto.aplicarDesconto(10);
        produto.exibirInformacoesProduto();
        System.out.println();

        System.out.println();
        System.out.println("----------SERVIÇOS----------");

        Servico servico = new Servico();
        servico.setDescricao("Formatação de computador");
        servico.setPrecoHora(50.00);
        servico.aplicarDesconto(10);
        servico.exibirInformacoesServico();
        System.out.println();
    }
}

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