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.

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

Kaleb Pignaton

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).

Marcos Saffran

Marcos Saffran
Responder

Mais Posts

27/09/2017

Kaleb Pignaton

muito obrigado, consegui resolver.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar