Problema em criar Metodo Desconto em Java[RESOLVIDO]

15 respostas Resolvido
java
R

Fala pessoal blz? Estou exercitando em JavaScript, e criei um sistema de fabrica onde consigo calcular quantos a pessoa irá pagar ao comprar uma quantidade x de camisas pequenas, grandes, medias cada uma com seu respectivo preço… E agora estou tentando colocar diferentes tipos de pagamento, A vista, No cartão, cada um com um preço diferente, seja com desconto ou juros… Só que quando imprimo está saindo Desconto: 0 , queria que saisse o valor total da compra - 10% de desconto… Quem puder me ajudar agradeço

Fabrica.java:

public class Fabrica {
int camisasPequenas = 10;
int camisasMedias = 12;
int camisasGrandes = 15;

public Integer calcularCamisetas(int a, int b, int c){
	Integer valorTotal = (camisasPequenas * a + camisasMedias * b + camisasGrandes * c);
	return valorTotal;
} 
public Integer calcularDesconto(int a, int b, int c){
	Integer valorDesconto = ((2*camisasPequenas * a + 2*camisasMedias + 2*camisasGrandes * c)/100);
	return valorDesconto;
	
}
}

ProgramaPrincipal:

import java.util.Scanner;

public class ProgramaPrincipal {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Fabrica cc = new Fabrica();

System.out.println("Seja bem vindo a loja do Romeu");
System.out.println("Quantas camisas pequenas?");
Integer qtdCamisasPequenas = scan.nextInt();
System.out.println("Quantas camisas medias?");
Integer qtdCamisasMedias = scan.nextInt();
System.out.println("Quantas camisas grandes?");
Integer qtdCamisasGrandes = scan.nextInt();

Integer valorTotal = cc.calcularCamisetas(qtdCamisasPequenas, qtdCamisasMedias, qtdCamisasGrandes);
Integer valorDesconto = cc.calcularDesconto(qtdCamisasGrandes, qtdCamisasMedias, qtdCamisasGrandes);
System.out.println("O valor que você pagará nas camisas é de:\nR$" + valorTotal + ",00");
System.out.println("O valor com desconto será de:" + valorDesconto);
}
}

15 Respostas

L

A linguagem é Java e não JavaScript, são linguagens diferentes…

Enfim, seu método calcularDesconto deve retornar um double e não um Integer, por isso você está recebendo 0 devido a divisão por 100

public double calcularDesconto(int a, int b, int c) {
    double valorDesconto = ...
    return valorDesconto;
}

Além disso, cuidado com a ordem dos cálculos, por exemplo…

...2*camisasPequenas * a...

Tenha em mente que será calculado assim pelo Java

...(2*camisasPequenas) * a...

Dependendo da intenção, os valores serão diferentes…

R

Opa obrigado você poderia me dar um exmeplo do jeito que monto a formula?De todos os jeitos que estou configurando está dando erro

L

Bom a primeira coisa a se fazer é entender melhor o que você quer?

Esses atributos…

int camisasPequenas = 10;
int camisasMedias = 12;
int camisasGrandes = 15;

São os valores de cada camisa ou o desconto que você pretende dar?

R

São valores de cada camisa, o desconto que eu quero dar é de 10% encima do valor de cada camisa

L

E outra que não entendi é o porque do 2 * … em cada camisa no método calcularDesconto?

Aliás, é calcularDesconto ou calcularTotalDescontado?

Perecebeu como os nomes ajudam e muito a gente enteder o que se passa?

R

Então este metodo de calcularDesconto eu dei uma viajada, por que pensei o seguinte calcular o valor total das camisas gerada no calcularCamisas - o valor do desconto…
Ex: Valor total das camisas: 50
Desconto: 5
Valor descontado: 45

L

Mas então podemos ignorá-lo, já que você decidiu um desconto “travado” de 10% certo?

R

exato, pode sim , o desconto é fixo em 10%

L
Solucao aceita
public class Fabrica {
    private double vlrCP = 10.0;
    private double vlrCM = 15.0;
    private double vlrCG = 20.0;
    private double descFixo = 0.10; //10%

    public double calcularCamisas(int qtdCP, int qtdCM, int qtdCG) {
        double total = (vlrCP * qtdCP) + (vlrCM * qtdCM) + (vlrCG * qtdCG);
        return total;
    }

    public double calcularDesconto(int qtdCP, int qtdCM, int qtdCG) {
        double total = calcularCamisas(qtdCP, qtdCM, qtdCG);
        return total - (total * descFixo);
    }
}

Veja se dá uma clareada… perceba como os nomes das variáveis ajudam entender o que se passa… assim como o tipo, tudo sendo double, se houver algum centavo, não se perde no cálculo…

R

Sim maravilha, ajudou bastante ,ja no programaPrincipal eu preciso fazer alguma modificação? Pelo fato do sistema gerar 2 informações…
1: Preço total das camisas
2: Preço total das camisas com desconto

L

Então pô, te perguntei se o calcularDesconto poderia ignorar e você disse que sim :joy:

Vou te passar os dois métodos então… vou editar lá em cima ok?

R

Então nao entendi sua pergunta kkkkk me desculpa, são duas informações geradas kkk

L

Quando te perguntei se poderia ignorá-lo, era se você não ia mais usá-lo, mas enfim, ajustei lá, veja como ficou…

No programa principal, você precisa mudar os tipos das variáveis, onde houve Integer, trocar para double…

R

Lost muito obrigado cara!!! Você é muito foda, valeu mesmo

L

Rapaz, cuidado os palavrões, a moderação pega pesado aqui… boa sorte…

Criado 11 de março de 2017
Ultima resposta 11 de mar. de 2017
Respostas 15
Participantes 2