Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

grs666

Métodos

Recommended Posts

Olá pessoal, estou como um problema...

Tenho que imprimir o Nome do funcionario, numero de horas que ele trabalhou, valor da hora trabalhada, salario incial e auxilio alimentação...

 

ele só imprime o nome e o numero de horas... o restante da 0.

help pliz. (:

valeu!

 

package ExercicioSala;

import java.util.Scanner;
public class Funcionarios{
	String nome;
	int horast;
	String turno;
	String cate;
	int valorh;
	int salarioi;
	int auxilio;

public void Ler(){
	System.out.println("Nome do Funcionário: ");
	nome=new Scanner(System.in).next();
	System.out.println("Horas que o funcionario trabalha por mês: ");
	horast=new Scanner(System.in).nextInt();
	System.out.println("Turno do funcionario: ");
	turno=new Scanner(System.in).next();
	System.out.println("Categoria do funcionario: ");
	cate=new Scanner(System.in).next();
	}
public void Calculo(){
	if(cate.equals("g") && turno.equals("n"))
		valorh=510*(18/100);
	if(cate.equals("g") && turno.equals("m") || turno.equals("v"))
		valorh=510*(15/100);
	if(cate.equals("o") && turno.equals("n"))
		valorh=510*(13/100);
	if(cate.equals("o") && turno.equals("m") || turno.equals("v"))
		valorh=510*(10/100);
	}
public void AuxilioALimentar(){
	salarioi=valorh*horast;
	if(salarioi<=350)
		auxilio=salarioi*(20/100);
	if(salarioi>350 && salarioi<700)
		auxilio=salarioi*(15/100);
	if(salarioi>=700)
		auxilio=salarioi*(5/100);
}
public void Imprimir(){
	System.out.println("NOME DO FUNCIONARIO: "+nome);
	System.out.println("NUMERO DE HORAS TRABALHADAS: "+horast);
	System.out.println("VALOR DA HORA: "+valorh);
	System.out.println("SALARIO INICIAL: "+salarioi);
	System.out.println("AUXILIO ALIMENTAÇÃO: "+auxilio);
}

}

MAIN

package ExercicioSala;

public class Empresa {
	public static void main(String[]args){
		Funcionarios f1=new Funcionarios();
		f1.Ler();
		f1.Calculo();
		f1.AuxilioALimentar();
		f1.Imprimir();
	}
}

ae galera conssegui mostar os valores aqui, mudei eles para Float e faltava colocar o "f" na frente dos valores.

Agora é que são élas... O valor da hora acho que esta certo, agora o SALARIO INICIAL e o AUXILIO ALIMENTAÇÃO estao errados, o valor do resultado é grande para um salario hehe... (estou usando o primeiro exemplo Turno=n e Categoria=g)

acho que é o calculo...

 

se alguem puder me ajudar nessa parte do calculo eu agradeço

(:

vlw

 

Bom galera o negócio é o seguinte, acho que muita gente não intendeu o que quero fazer...

vou postar aqui para ficar mais facil:

 

Uma empresa possui 20 funcionários, sobre quais as seguintes informações:nome

número de horas trabalhadas no mês, turno (m=matutino n=noturno...), categoria (o=operário, g=gerente) e valor da hora

trabalhada.Faça um programa que leia as informações acima, não permitindo turno e categoria inexistentes.O

programa deve calcular o valor da hora trabalhada da seguinte forma:

 

Categoria____Turno____Valor da Hora

Gerente______Noturno___18%

Gerente______M ou V____15%

Operário_____Noturno___13%

Operário_____M ou V____10%

 

O programa deve calcular o salário inicial, com base no valor da hora e o numero de horas trabalhadas.Todos

recebem um auxilio alimentação, de acordo com seu salário inicial:

 

Salário inicial_________Auxilio Alimentação

<=350___________________20%

>350 e <700_____________15%

>=700___________________5%

 

O programa deve mostrar nome, numero de horas trabalhadas, valor da hora, salário inicial, auxilio alimentação

e salário final (inicial +alimentação) de todos os funcionários. Ele deverá apresentar o seguinte menu:

 

1-Cadastrar funcionário

2-Mostrar folha pagamento

3-sair

 

vou postar o que conssegui fazer, o programa armazena só o ultimo funcionario digitado e mostra só o ultimo tambem

estou com duvida onde colocar o for...

valeu, é isso ai...

 


import java.util.Scanner;
public class Funcionarios{
    String nome;
    int horast;
    String turno;
    String cate;
    float valorh;
    float salarioi;
    float auxilio;
    float salariof;

public void Ler(){
    System.out.println("Nome do Funcionário: ");
    nome=new Scanner(System.in).next();
    System.out.println("Horas que o funcionario trabalha por mês: ");
    horast=new Scanner(System.in).nextInt();
    System.out.println("Turno (m)-matutino (v)-vespertino (n)-noturno: ");
    turno=new Scanner(System.in).next();
    if(turno.equals("m") || turno.equals("v") || turno.equals("n"))
    {
    System.out.println("Categoria (g)-gerente (o)-operario: ");
    cate=new Scanner(System.in).next();
    if(cate.equals("g") || cate.equals("o"))
    System.out.println("");
    else
    System.out.println("categoria não válido!");
    }
    else
	System.out.println("Turno não válido!");
}
public void Calculo(){
    if(cate.equals("g") && turno.equals("n"))
        valorh=510f*(18/100f);
    if(cate.equals("g") && turno.equals("m") || turno.equals("v"))
        valorh=510f*(15/100f);
    if(cate.equals("o") && turno.equals("n"))
        valorh=510f*(13/100f);
    if(cate.equals("o") && turno.equals("m") || turno.equals("v"))
        valorh=510f*(10/100f);
    }
public void AuxilioALimentar(){
    salarioi=valorh*horast;
    if(salarioi<=350f)
        auxilio=salarioi*(20/100f);
    if(salarioi>350f && salarioi<700f)
        auxilio=salarioi*(15/100f);
    if(salarioi>=700f)
        auxilio=salarioi*(5/100f);
	salariof=salarioi+auxilio;
}
public void Imprimir(){
    System.out.println("NOME DO FUNCIONARIO: "+nome);
    System.out.println("NUMERO DE HORAS TRABALHADAS: "+horast);
    System.out.println("VALOR DA HORA: "+valorh);
    System.out.println("SALARIO INICIAL: "+salarioi);
    System.out.println("AUXILIO ALIMENTAÇÃO: "+auxilio);
    System.out.println("SALARIO FINAL: "+salariof);
	}

}

MAIN

 


import java.util.Scanner;
public class Empresa {
    public static void main(String[]args){
        Funcionarios f1=new Funcionarios();
        int op=0;
        for(int i=0;i<20;i++){
        if(op==1)
        {
        f1.Ler();
        f1.Calculo();
        f1.AuxilioALimentar();
        }
		System.out.println("\nDigite:\n1.Cadastrar\n2.Mostrar Folha de Pagamento\n3.Sair");
		op=new Scanner(System.in).nextInt();
        if(op==2)
        f1.Imprimir();
        if(op==3){
        System.out.println("Voce saiu do programa!");
        break;
        	}
        }
    }
}

Quem puder ajudar...

(:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugestão: ao invés de instanciar duzentos Scanner, crie só um objeto e faça as leituras.

 

public void Ler(){
Scanner cin = new Scanner(System.in);

System.out.println("Nome do Funcionário: ");
nome=cin.next();
System.out.println("Horas que o funcionario trabalha por mês: ");
horast=cin.nextInt();
System.out.println("Turno (m)-matutino (v)-vespertino (n)-noturno: ");
turno=cin.next();
if(turno.equals("m") || turno.equals("v") || turno.equals("n"))
{
System.out.println("Categoria (g)-gerente (o)-operario: ");
cate=cin.next();
if(cate.equals("g") || cate.equals("o"))
System.out.println("");
else
System.out.println("categoria não válido!");
}
else
System.out.println("Turno não válido!");

}

 

Seu programa só armazena o último funcionário porque você está usando apenas uma referẽncia, e não um array de referências...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.