Calculo de Comissão sobre venda
13/09/2017
0
Olá pessoal, estou com um problema eu um calculo onde tenho que pegar o salario mais a comissão e os dias de faltas que será descontado, sendo que a comissão é de 10% sobre a venda ser for maior que 1000 e menor que 2000 e 15% ser for maior que 2000.Só que o programa está fazendo errado o calculo da 15% sobre venda.
Sou iniciante em Java e já tentei de tudo pra esse código.
essa é a outra parte do código onde imprimi os dados.
Sou iniciante em Java e já tentei de tudo pra esse código.
public class Vendedor { private float venda,novavenda, salario; private String nome; private int faltas; public void setVenda(float venda){ this.venda = venda; } public float getVenda(){ return this.venda; } public void setNovaVenda(float novavenda){ this.novavenda = novavenda; } public float getNovaVenda(){ return this.novavenda; } public void setSalario(float salario){ this.salario = salario; } public float getSalario(){ return this.salario; } public void setNome(String nome){ this.nome = nome; } public String getNome(){ return this.nome; } public void setFaltas(int faltas){ this.faltas = faltas; } public int getFaltas(){ return this.faltas; } public void imprimirDados(){ System.out.println("Nome: " + nome); System.out.println("Venda: " + venda); System.out.println("Salario: " + salario); System.out.println("Faltas: " + faltas); System.out.println("Seu novo Salario: " + calculaSalario()); System.out.println("Sua comissao: " + calculaComissao()); System.out.println(""); } private double calculaComissao(){ if (venda >= 1000 || venda < 2000){ venda* 0.10; } else if (venda >= 2000){ venda * 0.15; }else { System.out.println("Nao teve comissão "); } return venda; } private double calculaSalario(){ double novaFaltas,calculaFaltas, novoSalario; //int mes; //mes = 30; calculaFaltas = salario / 30; novaFaltas = calculaFaltas * faltas; novoSalario = salario + calculaComissao(); return novoSalario; } }
essa é a outra parte do código onde imprimi os dados.
import java.util.Scanner; public class TesteVendedor { public static void main(String[] args) { Vendedor v1 = new Vendedor(); Scanner dados = new Scanner(System.in); //System.out.println("Digite seu nome: "); //00v1.setNome(dados.next()); System.out.println("Digite seu salario: "); v1.setSalario(dados.nextFloat()); System.out.println("Digite quanto voce vendeu: "); v1.setVenda(dados.nextFloat()); System.out.println("Digite seu faltas: "); v1.setFaltas(dados.nextInt()); v1.imprimirDados(); } }
Kaleb Pignaton
Curtir tópico
+ 0
Responder
Post mais votado
14/09/2017
Olá Kaleb, na condição:
if (venda >= 1000 || venda < 2000)
Você está utilizando o OU lógico "||", o que fará que seja executado o código sempre que a venda for >= 1000, nesse caso não será verificado se a venda é menor que 2000, utilize o E lógico "&&" no lugar do "||".
if (venda >= 1000 && venda < 2000).
if (venda >= 1000 || venda < 2000)
Você está utilizando o OU lógico "||", o que fará que seja executado o código sempre que a venda for >= 1000, nesse caso não será verificado se a venda é menor que 2000, utilize o E lógico "&&" no lugar do "||".
if (venda >= 1000 && venda < 2000).
Marcos Saffran
Responder
Mais Posts
Clique aqui para fazer login e interagir na Comunidade :)