GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Preciso de ajuda - to perdida

Alguém pode me ajudar a resolver esse problema? POR FAVOR GENTE

Crie um programa Java para cálculo do salário de um trabalhador para uma empresa fictícia,
conforme os requisitos abaixo:

O programa deve solicitar as seguintes entradas:
• Valor da remuneração por hora (VH)
• Horas semanais trabalhadas (HS)

Obs: O número de horas semanais trabalhadas não deve ser superior a 44horas.
O programa deve calcular:

a. Salário (S)
• Salário Bruto (SB): obtido pela fórmula VH * HS * 4,5
• Salário Líquido (SL): obtido pela fórmula SB – INSS – IRRF

b. Descontos (D)
• INSS: calculado pela fórmula SB*A, conforme tabela abaixo, limitando-se ao teto de
R$ 621,03.

Salário Bruto (SB) Alíquota (A)
Até R$ 1.693,72 8%
De R$ 1.693,73 a R$ 2.822,90 9%
De R$ 2.822,91 até R$ 5.645,80 11%

• IRRF: Calculado pela fórmula (SB*A)-Dd, conforme a tabela a abaixo.
Salário Bruto (SB) Alíquota (A) Dedução (Dd)
Até 1.903,98 - -
De 1.903,99 até 2.826,65 7,5% R$ 142,80
De 2.826,66 até 3.751,05 15% R$ 354,80
De 3.751,06 até 4.664,68 22,5% R$ 636,13
Acima de 4.664,68 27,5% R$ 869,36

O programa deve exibir, após o cálculo, as seguintes informações:
• Valor da remuneração por hora (VH)
• Horas semanais trabalhadas (HS)
• Salário Base (SB)
• Descontos (INSS e IRRF)
• Salário Líquido (SL)

Tópico duplicado

eu perdi o arquivo que eu fiz

Oi fiz um esboço:

real VH; // valor remuneração por hora. ler do usuário
real HS; // horas semanais

real SB; //salário bruto
real SL; //salário líquido

real INSS, IRPF, A, Dd;

SB = VH * HS * 4.5;

//calcular INSS

if (SB <= 1693,72)
	A = 0.08;
else if (SB <= 2822.90)
	A = 0.09;
else
	A = 0.11;

INSS = SB * A;
if (INSS > 621.03)
	INSS = 621.03;

//calcular IRRF

// FALTA ESSA PARTE

//....

SL = SB - INSS - IRRPF;

Isso é java??

como assim?

Você usou Java pra codificar isso?

Sim, pq ta errado?

A lógica está correta, mas isso não roda no Java. Acho que vc tá confundindo com portugol.

double VH; // valor remuneração por hora. ler do usuário
double HS; // horas semanais

double SB; //salário bruto
double SL; //salário líquido

double INSS, IRPF, A, Dd;

SB = VH * HS * 4.5;

if (SB <= 1693.72){ //No java não se usa vírgula pra realizar nenhum tipo de operação
	A = 0.08;
} else if (SB <= 2822.90) {
	A = 0.09;
} else {
	A = 0.11;
}

Para lembrar dos tempos da faculdade…

import java.util.Scanner;
import java.text.NumberFormat;

public class Assalariado {
	/**
	*VH   - Valor de remuneração por hora
	*HS   - Horas semanais (não exceeder 44 horas)
	*S    - Salário
	*SB   - Salário Bruto =  vh * hs * 4,5
	*SL   - Salário Líquido = SB -INSS - IRRF
	*D    - Descontos
	*INSS - Instituto Nacional do Seguro Social =  SB * A
	*Teto - 621,03
	*/
	
	private static final short LOTACAO = 1000;
	private static final double FAIXA1 = 1693.72;
	private static final double FAIXA2 = 2822.90;
	private static final double FAIXA3 = 5645.80;
	private static final double FAIXA_IRRF1 = 1903.38;
	private static final double FAIXA_IRRF2 = 2826.65;
	private static final double FAIXA_IRRF3 = 3751.05;
	private static final double FAIXA_IRRF4 = 4664.68;
	boolean continuarLendo = true;
	short contador = 0;
	double[] vh = new double[LOTACAO];
	double[] hs = new double[LOTACAO];
	double[] aliquotas = {0.08, 0.09, 0.11};
	double[] deducoes = {0.00, 0.075, 0.15, 0.225, 0.275};
	double[] salarioBruto = new double[LOTACAO];
	double[] salarioLiquido = new double[LOTACAO];
	double[] descontosINSS = new double[LOTACAO];
	double[] descontosIRRF = new double[LOTACAO];
	double horaSemanalProvisoria = 0;
	String nome = null;
	String[] funcionarios = new String[LOTACAO];
	Scanner leitor = new Scanner(System.in);
	
	private void lerDados(){
		System.out.println("Informe funcionário = a '-' para finalizar a leitura.");
		
		while(continuarLendo){
			System.out.print("Funcionário: ");
			nome = leitor.nextLine();
			
			if(nome.equals("-")){
				continuarLendo = false;
				return;
			}else
				funcionarios[contador] = nome;
			
			System.out.print("Valor da Hora Trabalhada: ");
			vh[contador] = leitor.nextDouble();
			
			System.out.print("Horas Semanais: ");
			horaSemanalProvisoria =  leitor.nextDouble();
			
			while(horaSemanalProvisoria <= 0 || horaSemanalProvisoria > 44){
				System.out.print("Horas Semanais: ");
				horaSemanalProvisoria =  leitor.nextDouble();
			}
			
			hs[contador] = horaSemanalProvisoria;
			
			System.out.print("\n");
			leitor.nextLine();
			contador++;
		}
		
	}
	
	private void calcularSalarioBruto(){
		for(short i = 0; i < contador; i++){
			salarioBruto[i] = vh[i] * hs[i];
		}
	}
	
	private void calcularDescontoINSS(){
		for(short i = 0; i < contador; i++){
			if(salarioBruto[i] <= FAIXA1)
				descontosINSS[i] = salarioBruto[i] * aliquotas[0];
			
			if(salarioBruto[i] > FAIXA1 && salarioBruto[i] <= FAIXA2)
				descontosINSS[i] = salarioBruto[i] * aliquotas[1];
			
			if(salarioBruto[i] > FAIXA2 && salarioBruto[i] <= FAIXA3)
				descontosINSS[i] = salarioBruto[i] * aliquotas[2];
		}
	}
	
	private void calcularDescontosIRRF(){
		for(short i = 0; i < contador; i++){
			if(salarioBruto[i] <= FAIXA_IRRF1)
				descontosIRRF[i] = descontosINSS[i] - deducoes[0];
			
			if(salarioBruto[i] > FAIXA_IRRF1 && salarioBruto[i] <= FAIXA_IRRF2)
				descontosIRRF[i] = descontosINSS[i] - deducoes[1];
			
			if(salarioBruto[i] > FAIXA_IRRF2 && salarioBruto[i] <= FAIXA_IRRF3)
				descontosIRRF[i] = descontosINSS[i] - deducoes[1];
			
			if(salarioBruto[i] > FAIXA_IRRF3 && salarioBruto[i] <= FAIXA_IRRF4)
				descontosIRRF[i] = descontosINSS[i] - deducoes[1];
		}
	}
	
	private void calcularSalarioLiquido(){
		for(short i = 0; i < contador; i++){
			salarioLiquido[i] = salarioBruto[i] - descontosINSS[i] - descontosIRRF[i];
		}
	}
	
	private void exibirDados(){
		
		calcularSalarioBruto();
		calcularDescontoINSS();
		calcularDescontosIRRF();
		calcularSalarioLiquido();
		NumberFormat nf = NumberFormat.getCurrencyInstance();
		
		short idFuncionario  = 1;
		System.out.println("==================== RESUMO ====================");
		for(short i = 0; i < contador; i++){
			System.out.println("Código: " + idFuncionario++);
			System.out.println("Funcionário: " + funcionarios[i]);
			System.out.println("VH: " + vh[i]);
			System.out.println("HS: " + hs[i]);
			System.out.println("Salário Base: " + salarioBruto[i]);
			System.out.println("Descontos[INSS]: " + nf.format(descontosINSS[i]) 
				+ " [IRRF]: " + nf.format(descontosIRRF[i]));
			System.out.println("Salário Líquido: " + nf.format(salarioLiquido[i]));
			System.out.println("\n");
		}
		System.out.println("================================================");
	}
	
	public static void main(String[] args){
		Assalariado assalariado = new Assalariado();
		assalariado.lerDados();
		assalariado.exibirDados();
	}
}

1 curtida

Estou precisando deste Código, poderia me ajudar, não sei por onde começar.

Basta seguir o exemplo do nosso colega @Jothar_Aleksander

posso confiar? tem que exibir

  • Valor da remuneração por hora (VH)
  • Horas semanais trabalhadas (HS)
  • Salário Base (SB)
  • Descontos (INSS e IRRF)
  • Salário Líquido (SL)

Comece solicitando a remuneração por hora e as horas semanais.

Além do mais este tópico é repetido

1 curtida
//