Metodos desconta e bonificaDiasDoSalario

0 respostas
rodrigo_salla

Bom dia a todos prezados amigos e Boas Festas!!!

Tenho a classe Funcionário abaixo com dois métodos:

public double descontarDiasDoSalario(double dias) e
public double bonificarDiasDoSalario(double dias)

Não consigo acertar o seguinte… no main, crio um funcionário com salário de 1000, teoricamente aplicando o método de desconto - 5 dias ? ele faz o calculo certo, e o de bonifica também, porém quando aplico em seguida os dois métodos, o salário não volta para 1000, tem diferença de +/- 28 centavos, teoricamente era pra ser igual!!! essa é minha dúvida, não sei por que?

Segue abaixo a classe Programa também…

Muito obrigado!!!
Rodrigo

public class Funcionario 
{
	private String nome;
	private String departamento;
	private double salario;
	private Data dataAdmissao;
	private String rg;
	private boolean estaNaEmpresa;
	
	public Funcionario(String nome, String departamento, double salario, Data dataAdmissao, String rg, boolean estaNaEmpresa)
	{
		this.setNome(nome);
		this.setDepartamento(departamento);
		this.setSalario(salario);
		this.setDataAdmissao(dataAdmissao);
		this.setRg(rg);
		this.estaNaEmpresa = estaNaEmpresa;		
	}
	
	public String getNome()
	{
		return this.nome;
	}
	
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	
	public String getDepartamento()
	{
		return this.departamento;
	}
	
	public void setDepartamento(String departamento)
	{
		this.departamento = departamento;
	}
	
	public double getSalario()
	{
		return this.salario;
	}
	
	public void setSalario(double salario)
	{
		this.salario = salario;
	}
	
	public Data getDataAdmissao()
	{
		return this.dataAdmissao;
	}
	
	public void setDataAdmissao(Data dataAdmissao)
	{
		this.dataAdmissao = dataAdmissao;
	}
	
	public String getRG()
	{
		return this.rg;
	}
	
	public void setRg(String rg)
	{
		this.rg = rg;
	}
	
	public boolean getEstaNaEmpresa()
	{
		if(this.estaNaEmpresa == true)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public double aumentarSalario(double percentual)
	{
		return this.salario *= 1 + percentual / 100;
	}
	
	public double descontarDiasDoSalario(double dias)
	{		
		double salarioDia = this.salario / 30;
		salarioDia *= (30 - dias);
		this.salario = salarioDia;
		return this.salario;
	}
	
	public double bonificarDiasDoSalario(double dias)
	{
		double salarioDia = this.salario / 30;
		salarioDia *= (30 + dias); 
		this.salario = salarioDia; 
		return this.salario;
	}
	
	public void demite()
	{
		if(this.estaNaEmpresa == true || this.estaNaEmpresa == false)
		{
			this.estaNaEmpresa = false;
			System.err.println("Funcionario demitido!!!");
		}
	}
	
	public void imprimeFuncionarioNaTela()
	{
		StringBuffer sb = new StringBuffer();
		sb.append("Nome do funcionario: " + this.getNome() + "\n");
		sb.append("Departamento       : " + this.getDepartamento() + "\n");
		sb.append("Salario            : " + this.getSalario() + "\n");
		sb.append("Data de admissao   : " + this.getDataAdmissao().getDia()+ "/" + this.getDataAdmissao().getMes() + "/" + this.getDataAdmissao().getAno() + "\n");
		sb.append("Rg                 : " + this.getRG() + "\n");
		sb.append("Esta na empresa    : " + this.getEstaNaEmpresa() + "\n");
		
		System.out.println(sb.toString());
	}
	
}
public class Programa 
{
	public static void main(String[] args) 
	{
		//Conta rodrigo = new Conta(1, new Cliente("Rodrigo", "Rua trinta, 710", "cpf30"), 1000.0, 2000.0);
		//Conta neiva = new Conta(1, new Cliente("Neiva", "Rua vinte e tres, 1965", "cpf41"), 1000.0, 2000.0);
				
		//rodrigo.cliente.getCpf();
		//rodrigo.transferirDinheiroParaConta(1001, neiva);
				
		//System.out.println("Saldo Rodrigo: " + rodrigo.cliente.getCpf());
		//System.out.println("Saldo Neiva  : " + neiva.getSaldoDaConta());
		
		Funcionario func = new Funcionario("Rodrigo", "Cadastro", 1000.0, new Data(07,04,1976), "RG 710", true);
		func.descontarDiasDoSalario(5);
		func.bonificarDiasDoSalario(5);
		
		func.imprimeFuncionarioNaTela();
		//Funcionario func1 = new Funcionario("Rodrigo", "Cadastro", 1000.0, new Data(02,02,1997), "RG 710", true);
		//Funcionario func2 = new Funcionario("Rodrigo", "Cadastro", 1000.0, new Data(02,02,1997), "RG 710", true);
		
	//func.demite();
		/*System.out.println(func.getNome());
		System.out.println(func.getDepartamento());
		System.out.println(func.getSalario());
		System.out.println(func.getDataAdmissao());
		System.out.println(func.getRG());
		System.out.println(func.getEstaNaEmpresa());
		*/
	/*	System.out.println(func.getSalario());
		func.descontarDiasDoSalario(0.5);
		func.bonificarDiasDoSalario(0.5);
		System.out.println(func.getSalario());
*/
		//func.demite();
		//func.imprimeFuncionarioNaTela();
		
		/*if(func == func1)
		{
			System.out.println("SAO IGUAIS!!!");
		}
		else
		{
			System.err.println("SAO DIFERENTES!!!");
		}*/
		
		//nao entendi nada.
		/*Funcionario[] todos = new Funcionario[10];
		todos[0] = func;
		todos[1] = func1;
		
		Empresa e = new Empresa("Empresarodrigo", "cnpj10", todos);
		//e.adicionaFuncionariosNaEmpresa(func2);
		
		e.imprimiEmpresaComFuncionarios();*/
		
	
	}

}
Criado 29 de dezembro de 2006
Respostas 0
Participantes 1