Java - Ayuda con aplicacion java (Resultaados Incorrectos)

 
Vista:

Ayuda con aplicacion java (Resultaados Incorrectos)

Publicado por Cesar (2 intervenciones) el 25/02/2013 09:27:25
Buenas que tal?

Mi nombre es Cesar y estoy en mi segundo mes de aprendizaje de este lenguaje y he tenido un pequeño problema con una aplicación del final de unos de los capítulos.

en fin la aplicación esta hecha completamente pero no me esta dando los resultados que quiero, he hecho los cálculos a lápiz y papel y me dan perfectos, pero en el código no, lo que me plantean que hagan es lo siguiente y abajo del planteamiento pego el código.

Desarrolle una aplicación en Java que determine el sueldo bruto para cada uno de tres empleados. La empresa
paga la cuota normal en las primeras 40 horas de trabajo de cada empleado, y paga cuota y media en todas las horas
trabajadas que excedan de 40. Usted recibe una lista de los empleados de la empresa, el número de horas que trabajó
cada empleado la semana pasada y la tarifa por horas de cada empleado. Su programa debe recibir como entrada esta
información para cada empleado, debe determinar y mostrar el sueldo bruto de cada empleado. Utilice la clase Scanner
para introducir los datos.


import java.util.Scanner;



public class SueldoTotal {

private int codigoEmpleado;
private double precioPorHora, totalHoras;

Scanner entrada = new Scanner(System.in);
public void ProcesarDatos() {
int codigo = 0;
int precioH = 0;
int totalH = 0;
while(codigo != -1) {
System.out.print("Introduzca el codigo del empleado o -1 para salir: ");
codigo = entrada.nextInt();
codigoEmpleado = codigo;

if (codigo != -1) {
System.out.print("Introduzca precio por Hora para este empleado: ");
precioH = entrada.nextInt();
precioPorHora = (double) precioH;

System.out.print("Introduzca Total horas trabajadas: ");
totalH = entrada.nextInt();
} // fin if

if (totalH <= 40) {
totalHoras = (double) totalH * precioH;
} // fin if
if (totalH > 40) {
int horasExtras = totalH - 40;
double mediaHC = (double) precioH / 2 * totalH;
double valorHorasExtras = horasExtras *= (double) precioH + mediaHC;
totalHoras = (double) totalHoras + valorHorasExtras;
} //fin else
} //fin while

} //fin metodo ProcesarDatos

public void obtenerDatos () {

if (totalHoras != -0) {
System.out.println();
System.out.print("*****************************************************************************");
System.out.println();
System.out.printf( "Sueldo Bruto:$%.2f\n", totalHoras );
} //fin if
else {
System.out.println();
System.out.println("*****************************************************************************");
System.out.println("No se introdujeron Datos para procesar (saliendo del programa...)");
System.out.println();
} //fin else
} //fin Metodo obtenerDatos
} // fin class


resultados qque obtengo al poner -1 para salir (BUENO)
resultados que obtengo al insertar por debajo de 40 (BUENO)
resultado que obtengo al insertar valor de horas por encima de 40 (INCORRECTO)

Bueno espero haberme explicado bien y me puedan asesorar, me interesaría mas si me dijeran como hacerlo, no que me lo hagan.

Gracias de antemano compañeros...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con aplicacion java (Resultaados Incorrectos)

Publicado por Cesar (2 intervenciones) el 27/02/2013 13:00:56
Ya he resuelto el problema.

era la presedencia en los operadores en el calculo.

lo puse de la siguiente forma y todo de maravilla:

double horasExtras = totalHoras - 40;
double Extras = (precioPorHora + (precioPorHora / 2)) * horasExtras;
sueldoBruto = (Extras+((totalHoras - horasExtras) * precioPorHora)) ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar