Exercício do Deitel

1 resposta
Paulo_Mour

Srs, boa noite, preciso da ajuda de vcs. Fiz o exercício 4,20 do Deitel mas quero que a cada iteração ele peça para o usuário digitar o nome do usuário, só que ele não faz. Alguém poderia me ajudar ? Grande abraço. segue abaixo o exercício:

/* 4.20 - Desenvolva um aplicativo Java que determine o salário bruto de cada um dos três empregados. A empresa paga
* "hora normal" pelas primeiras 40 horas trabalhadas por cada funcionário e 50% a mais para todas as horas trabalha
* das além de 40 horas. Você recebe uma lista dos empregados da empresa, o número de horas trabalhadas por empregado
* na última semana e o salário-hora de cada empregado. Se programa deve aceitar a entrada dessas informações para
* cada empregado e então determinar e exibir o salário bruto do empregado. Utilize a classe Scanner para inserir os
* dados.
*/

import java.util.Scanner;

/**
 * @author paulo
 */
public class Funcionario
{

    Scanner entrada = new Scanner(System.in);

    

    private String nomeFunc1;
    private double horaTrab = 0;
    private double salHora = 0;

    

    public Funcionario(String nome1, String nome2, String nome3, double horat, double salh)
    {
        nomeFunc1 = nome1;
        horaTrab = horat;
        salHora = salh;
    }


    public void setNomeFunc1(String nome1)
    {
        nomeFunc1 = nome1;
    }

    public String getNomeFunc1()
    {
        return nomeFunc1;
    }

    public void setHoraTrab(double horat)
    {
        horaTrab = horat;
    }

    public double getHoraTrab()
    {

         return horaTrab;
    }

    public void setSalHora(double salh)
    {
        salHora = salh;
    }

    public double getSalHora()
    {
        return salHora;
    }

    public double getTotal()
    {
        double total = 0;

         if(horaTrab > 40)

            salHora = salHora * 1.50;
        
        total = horaTrab * salHora;

        return total;
    }

    public void getDemonstrativo()
    {

        System.out.printf("Digite o nome do funcionário: ",nomeFunc1);
        nomeFunc1 = entrada.nextLine();

        System.out.printf("Digite as horas trabalhadas do funcionario: \n",horaTrab);
        horaTrab = entrada.nextDouble();

        System.out.printf("Digite o salário hora do funcionário: \n",salHora);
        salHora = entrada.nextDouble();

        System.out.printf("Total a receber: R$ %.2f\n\n", getTotal());

        while(horaTrab != -1)
        {
        
        System.out.printf("Digite o nome de outro funcionário: ");
        nomeFunc1 = entrada.nextLine();

        System.out.printf("\nDigite as horas trabalhadas do funcionario: \n",horaTrab);
        horaTrab = entrada.nextDouble();

        System.out.printf("Digite o salário hora do funcionário: \n",salHora);
        salHora = entrada.nextDouble();

        System.out.printf("Total a receber: R$ %.2f\n\n", getTotal());
        //double total = entrada.nextDouble();

        }

     }

}
/**
 *
 * @author paulo
 */
public class FuncionarioTest
{
    
    public static void main(String args [])
    {
        Funcionario func1 = new Funcionario("","","",0.0,0.0);
       
        func1.getDemonstrativo();
       
    }
}

1 Resposta

castiel

Tinha do while do getDemonstrativo da classe Funcionario, e coloca um while na classe main:

public class FuncionarioTest  
 {  
       
     public static void main(String args [])  
     {  
         Scanner entrada = new Scanner(System.in);
         String x = "S";
         while (x.equals("S")) {
         Funcionario func1 = new Funcionario("","","",0.0,0.0);
         func1.getDemonstrativo();
         System.out.println("Mais um funcionário?(S/N)");  
         x = entrada.nextLine();
         }          
    }  
}
Criado 11 de janeiro de 2010
Ultima resposta 11 de jan. de 2010
Respostas 1
Participantes 2