Autor Tema: Java diseñar programa métodos que calcule el salario de los trabajadores  (Leído 22962 veces)

santibarquero98

  • Visitante
Buenas, se supone que tengo que diseñar un programa mostrando métodos que calcule el salario de los trabajadores por horas, etc. Hay que introducir las horas por teclado, el problema viene cuando invoco el método pedirHoras();, y es que no se porque, se repite 3 veces, teniendo que introducirlo 3 veces. Es lo único que falla...estoy algo verde con los métodos porque los acabamos de empezar y no se ha explicado muy bien en clase...¿alguién podría ayudarme?

Código: [Seleccionar]
/**
 * actividad5.java
 * @author SJBC - 9 Nov 2016
 *
 */

import java.util.Scanner; //Importacion de la libreria para introducir datos por teclado
public class actividad5 {

public static void main(String[] args) {
pedirHoras();
int resultado = calcularSalario();
System.out.print(resultado);

} //Cierre de main

//Metodo que pide las horas
public static int pedirHoras(){
Scanner teclado = new Scanner(System.in);
System.out.print("Introduce las horas que ha trabajado: ");
int horas = teclado.nextInt();
return horas;
} //CIERRE DEL METODO pedirHoras

//Metodo que calcula las horas
public static int calcularSalario(){
int resultado = 0, horasExtra = 0; //La variable resultado guardara el valor final
// La variable horasExtra guardara las horas extra
final int horasNormales = 35; //Esta constante guarda las horasNormales, esta variable se
//usara solo en el caso de que hayan horas extra.
if (pedirHoras() <= 35){ //Si se han realizado las horas normales o menos...
resultado = pedirHoras() * 15; //El resultado es esa operacion
} else{ //Si no...habran horas extras, por lo que...
horasExtra = (pedirHoras() - 35) * 22; //Se calculan las horas extra y su precio
resultado = horasNormales * 15 + horasExtra; //Se calcula el resultado directamente
}
return resultado;
} //CIERRE DEL METODO calcularSalario

public static void mostrarResultado(){

}

} //Cierre de clase
« Última modificación: 20 de Noviembre 2016, 20:25 por Ogramar »

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:¿Por qué se repite el método varias veces? JAVA
« Respuesta #1 en: 10 de Noviembre 2016, 20:28 »
Mira un poco con la modificación que le hice a tu código y hace comparación con el tuyo.
Código: [Seleccionar]
package actividad5;

import java.util.Scanner; //Importacion de la libreria para introducir datos por teclado

public class Actividad5 {

    public static void main(String[] args) {
        //pedirHoras();
        calcularSalario();
    }
//Metodo que pide las horas

    public static int pedirHoras() {
        Scanner teclado = new Scanner(System.in);
        System.out.print("Introduce las horas que ha trabajado: ");
        int horas = teclado.nextInt();
        return horas;
    } //CIERRE DEL METODO pedirHoras

    //Metodo que calcula las horas
    public static void calcularSalario() {
        int resultado = 0, horasExtra = 0; //La variable resultado guardara el valor final
        // La variable horasExtra guardara las horas extra
        final int horasNormales = 35; //Esta constante guarda las horasNormales, esta variable se
        int hora = pedirHoras();
        //usara solo en el caso de que hayan horas extra.
        if (hora <= 35) { //Si se han realizado las horas normales o menos...
            resultado = hora * 15; //El resultado es esa operacion
            System.out.println(resultado);
        } else { //Si no...habran horas extras, por lo que...
            horasExtra = (hora - 35) * 22; //Se calculan las horas extra y su precio
            resultado = horasNormales * 15 + horasExtra; //Se calcula el resultado directamente
            System.out.println(resultado);
        }
        //return resultado;
    } //CIERRE DEL METODO calcularSalario

    public static void mostrarResultado() {

    }
}
El error que encontré que vos le llamaba en mucha parte a pedirHora(); solo es necesario llamarlo una vez y después su valor guardar en una variable el segundo le puse como void noma ya que no va a devolver mas ningún valor.
Yo hice como vos hace otra vez aunque lo correcto seria crear una clase que se encargue de hacer todo los calculo y llamarlo nomas desde el main como un objeto.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".