Ultima modifica da un moderatore:
Salve, ho scritto e compilato il programma(che riassumerò sotto), funziona tutto tranne la parte che svuota l'array.
Esercizio:
devo definire il metodo della classe operaio per inserire le ore lavorative e il metodo per definire lo stipendio, inoltre questo metodo deve svuotare la lista per inserire altre ore il mese successivo.
Problema:
il codice funziona, mi inserisce venti giorni lavorativi e stampa tutto compreso lo stipendio, però se aggiungo dopo i primi venti giorni non mi da nè errore e non calcola il prossimo stipendio,
come posso fare per far in modo che dopo i venti inserimenti l'array si svuota e mi calcola gli inserimenti successivi?
se non sono stato chiaro ditemelo così vi allego la traccia completa
Esercizio:
devo definire il metodo della classe operaio per inserire le ore lavorative e il metodo per definire lo stipendio, inoltre questo metodo deve svuotare la lista per inserire altre ore il mese successivo.
Problema:
il codice funziona, mi inserisce venti giorni lavorativi e stampa tutto compreso lo stipendio, però se aggiungo dopo i primi venti giorni non mi da nè errore e non calcola il prossimo stipendio,
come posso fare per far in modo che dopo i venti inserimenti l'array si svuota e mi calcola gli inserimenti successivi?
se non sono stato chiaro ditemelo così vi allego la traccia completa
Java:
public class main {
public static void main(String[] args) throws Exception {
Operaio operaio1=new Operaio("ivo","avido" ,62,5,6);
operaio1.inserisciOre(10);
operaio1.inserisciOre(10);
operaio1.inserisciOre(10);
operaio1.inserisciOre(12);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(5);
operaio1.inserisciOre(10);
operaio1.inserisciOre(10);
operaio1.inserisciOre(10);
operaio1.inserisciOre(10);
operaio1.inserisciOre(10);
System.out.println(operaio1);
}
}
import java.util.Arrays;
public class Operaio extends Persona{
private double retribuzioneStandard;
private double retribuzioneStraordinari;
private int[] listaOre=new int[20];
private double counterRetribuzioneStandard=0;
private double counterRetribuzioneStraordinari=0;
private int index=0;
public Operaio(String c,String n,int e,double retribuzioneStandard, double retribuzioneStraordinari) throws Exception {
super(c,n,e);
if(retribuzioneStandard<retribuzioneStraordinari) {
this.retribuzioneStandard=retribuzioneStandard;
this.retribuzioneStraordinari=retribuzioneStraordinari;
}else {
throw new Exception("inserire retribuzione standard inferiore");
}
}
public void inserisciOre(int n) {
if(index<20 && n<=12) {
listaOre[index]=n;
index++;
if(n<=8) {
counterRetribuzioneStandard+=n*retribuzioneStandard;
}else {
counterRetribuzioneStandard+=8*retribuzioneStandard;
counterRetribuzioneStraordinari+=(n-8)*retribuzioneStraordinari;
}
}
}
public double calcoloMensile() {
this.svuotalista();
return counterRetribuzioneStandard+counterRetribuzioneStraordinari ;
}
public void svuotalista() {
for(int i=0;i<20;i++) {
listaOre[i]=0;
}
}
@Override
public String toString() {
String str="operaio: "+getCognome()+" "+getNome()+" "+"anni: "+getEta()+"\n";
str+="lista ore: "+Arrays.toString(listaOre)+"\n";
// for(int i=0;i<index;i++) {
// str+=listaOre[i]+"\n";
// }
str+="\n"+"mensile: "+calcoloMensile();
return str;
}
}
public abstract class Persona {
private String cognome;
private String nome;
private int eta;
public Persona(String c, String n, int e) throws Exception {
if (c.length()>1 && n.length()>1 && e>=0) {
cognome = c;
nome = n;
eta = e;
} else {
throw new Exception("Persona non creata");
}
}
public String getCognome() {
return cognome;
}
public String getNome() {
return nome;
}
public int getEta() {
return eta;
}
}