Demo entry 1487249

Optimització

   

Submitted by anonymous on Apr 20, 2015 at 14:06
Language: Java. Code size: 5.0 kB.

//---->SWEDETema8<----
//-Sense canvis.

//---->enum TipusTreballador<----

public enum TipusTreballador {
    DIR, SUBDIR, EMPLEAT
}

//reanomenat per millor comprensió.
public enum TipusTreballador {
    DIRECTOR, SUBDIRECTOR, EMPLEAT
}

//---->CostPersonal<----

static Double CostDelPersonal(Treballador t[]) {
        Double cf = 0.0;
        Treballador t1;
        for (int i = 0; i < t.length; i++) {
            t1 = t[i];
            if (t1.getTipusTreballador() == TipusTreballador.DIRECTOR || t1.getTipusTreballador() == TipusTreballador.SUBDIRECTOR) {
                cf += t1.getNomina();
            } else {
                cf += t1.getNomina() + (t1.getHoresExtra() * 20);
            }
        }
        return cf;
    }

//Eliminat l'array t1 perque es innecesari, ja que dispossam diractament de l'array.
//Canviat el for per la versió millorada.

public class CostPersonal {

    static Double CostDelPersonal(Treballador t[]) {
        Double cf = 0.0;
        for (Treballador treballador : t) {
            if (treballador.getTipusTreballador() == TipusTreballador.DIRECTOR || treballador.getTipusTreballador() == TipusTreballador.SUBDIRECTOR) {
                cf += treballador.getNomina();
            } else {
                cf += treballador.getNomina() + (treballador.getHoresExtra() * 20);
            }
        }
        return cf;
    }
}

//Reanomenades les variables y arrays per millorar la comprensió.

public class CostPersonal {

    static Double CostDelPersonal(Treballador[] llistaTreballadors) {
        Double costTreballador = 0.0;
        for (Treballador treballador : llistaTreballadors) {
            if (treballador.getTipusTreballador() == TipusTreballador.DIRECTOR || treballador.getTipusTreballador() == TipusTreballador.SUBDIRECTOR) {
                costTreballador += treballador.getNomina();
            } else {
                costTreballador += treballador.getNomina() + (treballador.getHoresExtra() * 20);
            }
        }
        return costTreballador;
    }
}

//---->Treballador<----

public class Treballador {
    private TipusTreballador tipTre;
    private Double nom;
    private Integer he;

    public TipusTreballador getTipusTreballador() {
        return tipTre;
    }

    public Double getNomina() {
        return nom;
    }

    public Integer getHoresExtra() {
        return he;
    }

    public Treballador(TipusTreballador tipusTreballador, Double nomina, Integer horesExtra) {
        this.tipTre = tipusTreballador;
        this.nom = nomina;
        this.he = horesExtra;
    }
    
    
}

//Reanomenades les variables per millor comprensió.
//Canviat a final els atributs que no poden ser modificats.

public class Treballador {
    private final TipusTreballador càrrec;
    private final Double nom;
    private final Integer horesExtres;

    public TipusTreballador getTipusTreballador() {
        return càrrec;
    }

    public Double getNomina() {
        return nom;
    }

    public Integer getHoresExtra() {
        return horesExtres;
    }

    public Treballador(TipusTreballador tipusTreballador, Double nomina, Integer horesExtra) {
        this.càrrec = tipusTreballador;
        this.nom = nomina;
        this.horesExtres = horesExtra;
    }
}

//He afegit el cost final del treballador dins de treballador, així domes ha de fer el calcul una vegada per empleat.
//He canviat l'if amb el tipus de treballador perque façi menys comprobacións, utilitzi els tipus més comuns i siguí més facil de lletgir.

public class Treballador {
    private final TipusTreballador càrrec;
    private final Double nomina;
    private final Integer horesExtres;
    private final Double costTreballador;

    public TipusTreballador getTipusTreballador() {
        return càrrec;
    }

    public Double getNomina() {
        return nomina;
    }

    public Integer getHoresExtra() {
        return horesExtres;
    }

    public Double getCostTreballador() {
        return costTreballador;
    }
    
    public Treballador(TipusTreballador tipusTreballador, Double nomina, Integer horesExtra) {
        this.càrrec = tipusTreballador;
        this.nomina = nomina;
        this.horesExtres = horesExtra;
        if (tipusTreballador == TipusTreballador.EMPLEAT) {
            costTreballador = nomina + (horesExtres * 20);
        } else {
            costTreballador = nomina;
        }
    }
}

//Finalment, ara que el cost del treballador está dins del treballador, he canviat el funcionament de CostPersonal

public class CostPersonal {

    static Double CostDelPersonal(Treballador[] llistaTreballadors) {
        Double costTotal = 0.0;
        for (Treballador treballador : llistaTreballadors) {
            costTotal += treballador.getCostTreballador();
        }
        return costTotal;
    }
}

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).