lunes, 26 de septiembre de 2011

PLANILLA DE EMPLEADOS

C L A S E  C E M P L E A D O

public class cEmpleado {
    private int codigo;
    private String nombres;
    private int horas;
    private Double pago_hora;

    public Double calcular_sueldo(){
        return(horas*pago_hora);
    }

    public int getCodigo() {return codigo;}
    public void setCodigo(int codigo) {this.codigo = codigo;}
    public int getHoras() {return horas;}
    public void setHoras(int horas) {this.horas = horas;}
    public String getNombres() {return nombres;}
    public void setNombres(String nombres) {this.nombres = nombres;}
    public Double getPago_hora() {return pago_hora;}
    public void setPago_hora(Double pago_hora) {this.pago_hora = pago_hora;}
}
C L A S E  C P L A N I L L A

public class cPlanilla {
  //atributos
    private cEmpleado objEmpleado[];
    private int contador;
    //constructor
    public cPlanilla(int n) {
        objEmpleado=new cEmpleado[n];
        //
        objEmpleado[0]=new cEmpleado();
        objEmpleado[0].setCodigo(6);
        objEmpleado[0].setNombres("JUAN");
        objEmpleado[0].setHoras(4);
        objEmpleado[0].setPago_hora(5.4);

        objEmpleado[1]=new cEmpleado();
        objEmpleado[1].setCodigo(3);
        objEmpleado[1].setNombres("LUIS");
        objEmpleado[1].setHoras(4);
        objEmpleado[1].setPago_hora(4.3);

        objEmpleado[2]=new cEmpleado();
        objEmpleado[2].setCodigo(7);
        objEmpleado[2].setNombres("YURI");
        objEmpleado[2].setHoras(5);
        objEmpleado[2].setPago_hora(5.0);

        objEmpleado[3]=new cEmpleado();
        objEmpleado[3].setCodigo(1);
        objEmpleado[3].setNombres("ALEC");
        objEmpleado[3].setHoras(5);
        objEmpleado[3].setPago_hora(5.6);
        //
        contador=4;
    }
    //operaciones
    public void agregar_empleado(int codigo,String nombres,int horas,Double pago_hora){
        int flag=0;
        for(int i=0;i<contador;i++){
            if(codigo==objEmpleado[i].getCodigo()){
                flag=1;
            }
        }
        if(flag==0){
            if(contador<objEmpleado.length){
                objEmpleado[contador]=new cEmpleado();
                objEmpleado[contador].setCodigo(codigo);
                objEmpleado[contador].setNombres(nombres);
                objEmpleado[contador].setHoras(horas);
                objEmpleado[contador].setPago_hora(pago_hora);
                contador++;
            }
            else{
                System.out.println("NO SE PUEDE AGREGAR EMPLEADO...VECTOR LLENO!!!");
            }
        }
        else{
            System.out.println("EL CODIGO INGRESADO ES REPETIDO...!!!");
        }

    }
    public String listar_empleados(){
        String lista="LISTA DE EMPLEADOS\n";
        for(int i=0;i<contador;i++){
            lista+=(i+1)+".-"+"\t"+objEmpleado[i].getCodigo()+"\t"+objEmpleado[i].getNombres()+"\t"+objEmpleado[i].calcular_sueldo()+"\n";
        }
        return lista;
    }

    public void buscar_empleado(int codigo)
    {
        int posicion=-1;
        for(int i=0;i<contador;i++){
        if(codigo==objEmpleado[i].getCodigo())
                posicion=i;
        }
        if(posicion!=-1){
            System.out.println("EL EMPLEADO DE CODIGO: "+codigo+" ES "+ objEmpleado[posicion].getNombres());
        }
        else{
            System.out.println("EL EMPLEADO DE CODIGO: "+codigo+" NO EXISTE");
        }
    }

    public void buscar_empleado(String nombres){
        int posicion=-1;
        for(int i=0;i<contador;i++){
            if(nombres.equals(objEmpleado[i].getNombres()))
                posicion=i;
        }
        if(posicion!=-1){
            System.out.println("EL EMPLEADO DE NOMBRE: "+nombres+" TIENE EL CODIGO "+objEmpleado[posicion].getCodigo());
        }
        else{
            System.out.println("EL EMPLEADO DE NOMBRE: "+nombres+" NO EXISTE");
        }
    }

    public void ordenar_codigo(){
        for (int i=0; i<contador-1; i++){
            for (int j=i+1;j<contador; j++){
                if(objEmpleado[i].getCodigo() > objEmpleado[j].getCodigo()){
                    cEmpleado temp=objEmpleado[i];
                    objEmpleado[i]=objEmpleado[j];
                    objEmpleado[j]=temp;
                }
            }
        }
    }

    public void ordenar_nombres(){
        for (int i=0; i<contador-1; i++){
            for (int j=i+1; j<contador; j++){
                if(objEmpleado[i].getNombres().compareTo(objEmpleado[j].getNombres())>1){
                    cEmpleado temp=objEmpleado[i];
                    objEmpleado[i]=objEmpleado[j];
                    objEmpleado[j]=temp;
                }
            }
        }
    }

    public void modificar_pago(int codigo, double pago){
        int index;
        index=encontrar_empleado(codigo);
        if (index==-1){
            System.out.println("EL EMPLEADO DE CODIGO: "+codigo+" NO EXISTE");
        }
        else{
            objEmpleado[index].setPago_hora(pago);
        }
    }

    public int encontrar_empleado(int codigo)
    {
        int posicion=-1;
        for(int i=0;i<contador;i++){
            if(codigo == objEmpleado[i].getCodigo()){
                posicion=i;
            }
        }
        return posicion;
    }

    public void eliminar_empleado(int codigo){
        int index;
        index=encontrar_empleado(codigo);
        if(index==-1){
            System.out.println("EL EMPLEADO DE CODIGO: "+codigo+" NO EXISTE");
        }
        else{
            for(int i=index;i<contador;i++){
                objEmpleado[i]=objEmpleado[i+1];
            }
            contador--;
        }
    }

    public String mejor_pagado(){
        String lista="EMPLEADO MEJOR PAGADO\n";
        int index=0;
        Double maxpago=0.0;
        for(int i=0;i<contador;i++){
            if(maxpago<objEmpleado[i].calcular_sueldo()){
                index=i;maxpago=objEmpleado[i].calcular_sueldo();
            }
        }
        lista+=objEmpleado[index].getCodigo()+"\t"+objEmpleado[index].getNombres()+"\t"+objEmpleado[index].calcular_sueldo()+"\n";
        return lista;
    }
}


C L A S E  M A I N

import java.util.Scanner;
public class Main {
    static cPlanilla objPlanilla=new cPlanilla(10);

    public static void ingreso_empleado(){
        Scanner br=new Scanner (System.in);
        int codigo,horas;
        String nombres;
        double pago_hora;

        System.out.print("INGRESE UN CODIGO:");
        codigo=br.nextInt();
        System.out.print("INGRESE UN NOMBRE:");
        nombres=br.next();
        System.out.print("INGRESE HORAS TRABAJADAS:");
        horas=br.nextInt();
        System.out.print("INGRESE EL PAGO POR HORA TRABAJADA:");
        pago_hora=br.nextDouble();
       
        objPlanilla.agregar_empleado(codigo, nombres, horas, pago_hora);
    }

    public static void mostrar_empleados(){
        System.out.println(objPlanilla.listar_empleados());
    }

     public static void busca_empleado_codigo(){
         Scanner br=new Scanner (System.in);
         int cod;
         System.out.print("INGRESE CODIGO DEL EMPLEADO A BUSCAR: ");
         cod=br.nextInt();
         objPlanilla.buscar_empleado(cod);
     }

     public static void busca_empleado_nombre(){
         Scanner br=new Scanner (System.in);
         String nomb;
         System.out.print("INGRESE NOMBRE DEL EMPLEADO A BUSCAR: ");
         nomb=br.next();
         objPlanilla.buscar_empleado(nomb);
     }

     public static void ordenar_empleado_codigo() {
        objPlanilla.ordenar_codigo();

    }
    public static void ordenar_empleado_nombre() {
        objPlanilla.ordenar_nombres();
    }

    public static void modificar_pago_horas() {
        int cod;
        Double pag;
        Scanner br=new Scanner (System.in);
        System.out.print("INGRESE CODIGO DEL EMPLEADO: ");
        cod=br.nextInt();
        System.out.print("INGRESE EL PAGO POR HORA: ");
        pag=br.nextDouble();
        objPlanilla.modificar_pago(cod, pag);
    }

    public static void eliminar_empleado() {
        int cod;
        Scanner br=new Scanner (System.in);
        System.out.print("INGRESE CODIGO DEL EMPLEADO: ");
        cod=br.nextInt();
        objPlanilla.eliminar_empleado(cod);
    }

    public static void mostrar_mayor_pago(){
        System.out.println(objPlanilla.mejor_pagado());
    }

    public static void main(String[] args) {
        Scanner br=new Scanner (System.in);
        int opcion;

        do{
            System.out.println("MENU DE OPCIONES:");
            System.out.println("1. INGRESO DE EMPLEADO");
            System.out.println("2. MOSTRAR EMPLEADOS");
            System.out.println("3. BUSCAR EMPLEADO POR CODIGO ");
            System.out.println("4. BUSCAR EMPLEADO POR NOMBRE ");
            System.out.println("5. ORDENAR EMPLEADO POR CODIGO ");
            System.out.println("6. ORDENAR EMPLEADO POR NOMBRES");
            System.out.println("7. MODIFICAR PAGO POR HORA");
            System.out.println("8. ELIMINAR EMPLEADO");
            System.out.println("9. MOSTRAR EMPLEADO CON MAYOR PAGO");
            System.out.println("10. SALIR");


            do{
                System.out.print("INGRESE UNA OPCION [1-10]:");
                opcion=br.nextInt();

            }while(opcion<1||opcion>10);
            switch(opcion){
                case 1:
                    ingreso_empleado();
                    break;
                case 2:
                    mostrar_empleados();
                    break;
                case 3:
                    busca_empleado_codigo();
                    break;
                case 4:
                    busca_empleado_nombre();
                    break;
                case 5:
                    ordenar_empleado_codigo();
                    break;
                case 6:
                    ordenar_empleado_nombre();
                    break;
                case 7:
                    modificar_pago_horas();
                    break;
                case 8:
                    eliminar_empleado();
                    break;
                case 9:
                    mostrar_mayor_pago();
                    break;
                case 10:
                    System.exit(0);
            }
        }while(opcion!=10);
    }
}

2 comentarios: