Aqui esta una propuesta basica para resolver el Proyecto 2
/**
* @(#)empleado.java
*
* Imprime el recibo de pago de un empleado, de acuerdo a los datos introducidos:
* auxiliar de Horas Trabajadas en un mes y el Pago por Hora correspondiente.
* Se toma en cuenta las deducciones correspondientes al Seguro Social, Ley de Politica Habitacional, y
* Paro Forzoso. De igual manera el pago de horas extras, pago de un bono adicional del 30% al empleado
* que tenga mas de 20 horas extras, y otro bono adicional del 10 % para el empleado que labora sus horas correspondientes,
* sin ninguna inasistencia, y el pago por hora sea menor a BsF. 20.
*
* * @author DOMINGO CLEMENTE
* @version 1.00 2010/5/20
*/
import java.io.*;
import java.text.NumberFormat;
public class empleado{
String nombre; // Nombres y Apellidos del Empleado.
int horastrabajadas; // auxiliar de horas trabajadas en el mes.
double pagohora; // Pago por hora trabajada.
double sueldobasico; // Monto del sueldo basico del empleado.
double horasextras; //Monto a pagar por las horas extras laboradas
double bono1; // Establece los montos del bono (30 % del salario basico) correspondiente a aquellos empleados que laboren mas de 20 horas extras.
double bono2; // Establece el monto del bono (10 % del salario basico) correspondiente por asistencia completa y un pago por hora menor a BsF 20.
double sso; // Deduccion correspondiente al Seguro Social por un monto del 4 % del sueldo basico hasta un maximo de Bs 5.000.
double lph; // Deduccion correspondiente a la Ley de Politica Habitacional por un monto del 2 % del sueldo basico hasta un maximo de Bs 5.000.
double paro; // Deduccion correspondiente al Paro Forzoso por un monto del 0.5% del sueldo basico hasta un maximo de Bs 5.000.
public empleado(){
nombre=" ";
horastrabajadas=0;
pagohora=0;
sueldobasico=0;
horasextras=0;
bono1=0;
bono2=0;
sso=0;
lph=0;
paro=0;
}
//Calcula el sueldo basico que recibira el empleado de acuerdo a las horas trabajadas.
double sueldo (){
if (horastrabajadas<160){
sueldobasico=horastrabajadas*pagohora;
}
else{
sueldobasico=160*pagohora;
}
return sueldobasico;
}
//Calcula el monto del pago de las horas extras.
double he (){
if (horastrabajadas>160){
horasextras=(horastrabajadas-160)*2*pagohora;
}
else{
horasextras=0;
}
return horasextras;
}
//Calcula el monto de los bonos sean del tipo 1 o del 2.
double bono (int i){
if (i==1){
if (horastrabajadas>180){
bono1=160*pagohora*0.3;
}
else{
bono1=0;
}
return bono1;
}
else {
if ((horastrabajadas>=160) && (pagohora<20)) {
bono2=160*pagohora*0.1;
}
else{
bono2=0;
}
return bono2;
}
}
//Calcula las deducciones de acuerdo a cada caso.
double d(int i) {
if (sueldobasico>5000){
sso=5000*0.04;
lph=5000*0.02;
paro=5000*0.005;
}
else{
sso=sueldobasico*0.04;
lph=sueldobasico*0.02;
paro=sueldobasico*0.005;
}
switch (i){
case 1:
return sso;
case 2:
return lph;
case 3:
return paro;
default:
return 0.0;
}
}
//Llamada al metodo main.
public static void main (String[] args) throws IOException {
String opcion;
BufferedReader in;
in=new BufferedReader(new InputStreamReader(System.in));
empleado e= new empleado();
NumberFormat nf = NumberFormat.getCurrencyInstance();
do {
System.out.println("\n\n\n");
System.out.println(" ***** Menu de Nomina *****\n");
System.out.println(" 1: Calcular Pago.");
System.out.println(" 2: Condiciones.");
System.out.println(" 3: Salir.\n");
System.out.print(" Seleccione una Opcion: ");
opcion=in.readLine();
if (opcion.equals("1")) {
System.out.print("\n\n Indique el nombre del empleado: ");
e.nombre=in.readLine();
System.out.print(" Indique las horas trabajadas: ");
e.horastrabajadas=Integer.parseInt(in.readLine());
System.out.print(" Indique el pago por hora: ");
e.pagohora=Double.parseDouble(in.readLine());
System.out.println("\n\n\n");
System.out.println(" ************ RECIBO DE PAGO ************\n\n");
System.out.println(" NOMBRE: " + e.nombre);
System.out.println(" HORAS TRABAJADAS: " + e.horastrabajadas);
System.out.println(" PAGO POR HORA: " + nf.format(e.pagohora));
System.out.println("\n\n ************ ASIGNACIONES *************\n");
System.out.println(" SUELDO BASICO: " + nf.format(e.sueldo()));
if (e.horastrabajadas>160) {
System.out.println(" HORAS EXTRAS (" + (e.horastrabajadas-160) + "): " + nf.format(e.he()));
}
if (e.horastrabajadas>180) {
System.out.println(" BONO CANTIDAD HORAS EXTRAS: " + nf.format(e.bono(1)));
}
if ((e.horastrabajadas>=160) && (e.pagohora<20)){
System.out.println(" BONO ASISTENCIA: " + nf.format(e.bono(2)));
}
System.out.println("\n =============\n");
System.out.println(" TOTAL ASIGNACIONES: " + nf.format(e.sueldobasico+e.horasextras+e.bono1+e.bono2));
System.out.println("\n\n ************ DEDUCCIONES *************\n");
System.out.println(" SSO: " + nf.format(e.d(1)));
System.out.println(" LPH: " + nf.format(e.d(2)));
System.out.println(" PARO FORZOSO: " + nf.format(e.d(3)));
System.out.println("\n =============\n");
System.out.println(" TOTAL DEDUCCIONES: " + nf.format(e.sso+e.lph+e.paro));
System.out.println("\n =============\n");
System.out.println(" SUELDO NETO: " + nf.format((e.sueldobasico+e.horasextras+e.bono1+e.bono2)-(e.sso+e.lph+e.paro)));
}
if (opcion.equals("2")) {
System.out.println("\n\n ********** CONDICIONES PARA EL CALCULO DEL PAGO DEL SALARIO **********");
System.out.println("\n\n 1. El salario es cancelado mensualmente.");
System.out.println(" 2. Las horas de trabajo minimas son 160 por mes, y el pago se calcula por hora laborada.");
System.out.println(" 3. Las horas extras son canceladas a partir de la hora 161, siempre y cuando el empleado no tuvo inasistencias en el mes.");
System.out.println(" 4. Si posee inasistencias, las horas extras no se contabilizan sino como horas sencillas hasta completar las 160 horas minimas.");
System.out.println(" 5. El empleado que labor mas de 20 horas extras al mes, recibira un bono equivalente al 30% del salario basico.");
System.out.println(" 6. Aquellos empleados que laboren sus 160 horas como minimo al mes, y el pago por hora sea menor a Bs. 20,");
System.out.println(" recibira un bono equivalente al 10% del salario basico como incentivo.");
}
} while (!opcion.equals("3"));
}
}
lunes, 24 de mayo de 2010
Suscribirse a:
Entradas (Atom)