abstract
This commit is contained in:
parent
f5d4e736c1
commit
6233b5086a
@ -4,29 +4,19 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public class Azienda{
|
public class Azienda{
|
||||||
|
|
||||||
public Azienda(Scanner scDipendenti, Scanner scPresenze) throws Exception{
|
public Azienda(Scanner scDipendenti) throws Exception{
|
||||||
ArrayList<Presenze> presenze = new ArrayList<Presenze>();
|
|
||||||
dipendenti = new ArrayList<Dipendente>();
|
dipendenti = new ArrayList<Dipendente>();
|
||||||
|
|
||||||
Presenze pres=Presenze.read(scPresenze);
|
|
||||||
while(pres!=null){
|
|
||||||
presenze.add(pres);
|
|
||||||
pres=Presenze.read(scPresenze);
|
|
||||||
}
|
|
||||||
|
|
||||||
Dipendente dip=read(scDipendenti);
|
Dipendente dip=read(scDipendenti);
|
||||||
while(dip!=null){
|
while(dip!=null){
|
||||||
for(Presenze p: presenze)
|
|
||||||
if(dip.getCodiceFiscale().equals(p.getCodiceFiscale())){
|
|
||||||
dip.setOreLavoro(p.getOreLavoro());
|
|
||||||
break;//non è molto ortodosso
|
|
||||||
}
|
|
||||||
|
|
||||||
dipendenti.add(dip);
|
dipendenti.add(dip);
|
||||||
dip=read(scDipendenti);
|
dip=read(scDipendenti);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Azienda(ArrayList<Dipendente> dipendenti){
|
||||||
|
this.dipendenti=dipendenti;
|
||||||
|
}
|
||||||
|
|
||||||
private Dipendente read(Scanner sc) throws Exception{
|
private Dipendente read(Scanner sc) throws Exception{
|
||||||
String id;
|
String id;
|
||||||
|
|
||||||
@ -34,13 +24,65 @@ public class Azienda{
|
|||||||
id=sc.next();
|
id=sc.next();
|
||||||
if(id.equals("OP"))
|
if(id.equals("OP"))
|
||||||
return Operaio.read(sc);
|
return Operaio.read(sc);
|
||||||
else
|
else if(id.equals("DIR"))
|
||||||
return Dirigente.read(sc);
|
return Dirigente.read(sc);
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void calcolaPrint(Scanner scPresenze, PrintStream ps) throws Exception{
|
||||||
|
Dipendente dip;
|
||||||
|
Presenze pres = Presenze.read(scPresenze);
|
||||||
|
|
||||||
|
while(pres!=null){
|
||||||
|
dip=ricercaDipendentePerCodice(pres.getCodiceFiscale());
|
||||||
|
if(dip!=null){
|
||||||
|
double paga=dip.calcoloPaga(pres.getOreLavoro());
|
||||||
|
dip.print(ps);
|
||||||
|
ps.println("paga mensile: "+paga);
|
||||||
|
}
|
||||||
|
pres=Presenze.read(scPresenze);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dipendente ricercaDipendentePerCodice(String codiceFiscale){
|
||||||
|
boolean trovato=false;
|
||||||
|
int i=0;
|
||||||
|
while(i<dipendenti.size() && !trovato){
|
||||||
|
if(dipendenti.get(i).getCodiceFiscale().equals(codiceFiscale)){
|
||||||
|
trovato=true;
|
||||||
|
}else
|
||||||
|
i++;
|
||||||
|
|
||||||
|
}
|
||||||
|
if(trovato)
|
||||||
|
return dipendenti.get(i);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Azienda filtroCnome(String cnome){
|
||||||
|
ArrayList<Dipendente> dipendentiFilter = new ArrayList<Dipendente>();
|
||||||
|
|
||||||
|
for(Dipendente dip: this.dipendenti)
|
||||||
|
if(dip.getCnome().equals(cnome))
|
||||||
|
dipendentiFilter.add(dip);
|
||||||
|
|
||||||
|
return new Azienda(dipendentiFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Azienda filtroOP(){
|
||||||
|
ArrayList<Dipendente> dipendentiFilter = new ArrayList<Dipendente>();
|
||||||
|
|
||||||
|
for(Dipendente dip: this.dipendenti)
|
||||||
|
if(dip instanceof Operaio)
|
||||||
|
dipendentiFilter.add(dip);
|
||||||
|
|
||||||
|
return new Azienda(dipendentiFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void print(PrintStream ps){
|
public void print(PrintStream ps){
|
||||||
for(Dipendente dip: dipendenti)
|
for(Dipendente dip: dipendenti)
|
||||||
ps.println(dip.getCodiceFiscale()+" "+dip.getNome()+" "+dip.getCnome()+" "+dip.calcoloPaga());
|
dip.print(ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayList<Dipendente> dipendenti;
|
private ArrayList<Dipendente> dipendenti;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
|
|
||||||
public class Dipendente{
|
public abstract class Dipendente{
|
||||||
|
|
||||||
public Dipendente(String codiceFiscale, String nome, String cnome, double paga){
|
public Dipendente(String codiceFiscale, String nome, String cnome, double paga){
|
||||||
|
|
||||||
@ -9,13 +9,9 @@ public class Dipendente{
|
|||||||
this.nome=nome;
|
this.nome=nome;
|
||||||
this.cnome=cnome;
|
this.cnome=cnome;
|
||||||
this.paga=paga;
|
this.paga=paga;
|
||||||
this.oreLavoro=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double calcoloPaga(){
|
|
||||||
return oreLavoro*getPaga();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract double calcoloPaga(int oreLavoro);
|
||||||
//METODI GET
|
//METODI GET
|
||||||
|
|
||||||
public String getCodiceFiscale(){
|
public String getCodiceFiscale(){
|
||||||
@ -34,13 +30,6 @@ public class Dipendente{
|
|||||||
return paga;
|
return paga;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getOreLavoro(){
|
|
||||||
return oreLavoro;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOreLavoro(int ore){
|
|
||||||
oreLavoro=ore;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -50,13 +39,8 @@ public class Dipendente{
|
|||||||
return codiceFiscale+" "+nome+" "+cnome+" "+paga;
|
return codiceFiscale+" "+nome+" "+cnome+" "+paga;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void print(PrintStream ps){
|
public abstract void print(PrintStream ps);
|
||||||
ps.println(codiceFiscale);
|
/*
|
||||||
ps.println(nome);
|
|
||||||
ps.println(cnome);
|
|
||||||
ps.println(paga);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Dipendente read(Scanner sc) throws Exception{
|
public static Dipendente read(Scanner sc) throws Exception{
|
||||||
String codiceFiscale, nome, cnome;
|
String codiceFiscale, nome, cnome;
|
||||||
double paga;
|
double paga;
|
||||||
@ -71,13 +55,12 @@ public class Dipendente{
|
|||||||
paga=sc.nextDouble();
|
paga=sc.nextDouble();
|
||||||
|
|
||||||
return new Dipendente(codiceFiscale, nome, cnome, paga);
|
return new Dipendente(codiceFiscale, nome, cnome, paga);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
private String codiceFiscale;
|
protected String codiceFiscale;
|
||||||
private String nome;
|
protected String nome;
|
||||||
private String cnome;
|
protected String cnome;
|
||||||
private double paga;
|
protected double paga;
|
||||||
private int oreLavoro;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,11 @@ public class Dirigente extends Dipendente{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void print(PrintStream ps){
|
public void print(PrintStream ps){
|
||||||
super.print(ps);
|
ps.print(getCodiceFiscale()+" ");
|
||||||
ps.println(areaResponsabilità);
|
ps.print(getNome()+" ");
|
||||||
|
ps.print(getCnome()+" ");
|
||||||
|
ps.print(areaResponsabilità+" ");
|
||||||
|
ps.println(getPaga());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dirigente read(Scanner sc) throws Exception{
|
public static Dirigente read(Scanner sc) throws Exception{
|
||||||
@ -30,5 +33,13 @@ public class Dirigente extends Dipendente{
|
|||||||
return new Dirigente(codiceFiscale, nome, cnome, paga, areaResponsabilità);
|
return new Dirigente(codiceFiscale, nome, cnome, paga, areaResponsabilità);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getAreaResponsabilità(){
|
||||||
|
return areaResponsabilità;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double calcoloPaga(int oreLavoro){
|
||||||
|
return oreLavoro*getPaga();
|
||||||
|
}
|
||||||
|
|
||||||
private String areaResponsabilità;
|
private String areaResponsabilità;
|
||||||
}
|
}
|
@ -10,21 +10,23 @@ public class Operaio extends Dipendente{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void print(PrintStream ps){
|
public void print(PrintStream ps){
|
||||||
super.print(ps);
|
ps.print(getCodiceFiscale()+" ");
|
||||||
ps.println(funzione);
|
ps.print(getNome()+" ");
|
||||||
ps.println(livello);
|
ps.print(getCnome()+" ");
|
||||||
|
ps.print(funzione+" ");
|
||||||
|
ps.print(livello+" ");
|
||||||
|
ps.println(getPaga());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return super.toString()+" "+funzione+" "+livello;
|
return super.toString()+" "+funzione+" "+livello;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double calcoloPaga(){
|
public double calcoloPaga(int oreLavoro){
|
||||||
int oreLavoro=super.getOreLavoro();
|
|
||||||
if(oreLavoro>165)
|
if(oreLavoro>165)
|
||||||
return ((oreLavoro-165)*0.3+165)*super.getPaga();
|
return ((oreLavoro-165)*0.3+165)*super.getPaga();
|
||||||
else
|
else
|
||||||
return super.calcoloPaga();
|
return oreLavoro*getPaga();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Operaio read(Scanner sc) throws Exception{
|
public static Operaio read(Scanner sc) throws Exception{
|
||||||
@ -47,6 +49,14 @@ public class Operaio extends Dipendente{
|
|||||||
return new Operaio(codiceFiscale, nome, cnome, paga, funzione, livello);
|
return new Operaio(codiceFiscale, nome, cnome, paga, funzione, livello);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getLivello(){
|
||||||
|
return livello;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFunzione(){
|
||||||
|
return funzione;
|
||||||
|
}
|
||||||
|
|
||||||
private String livello;
|
private String livello;
|
||||||
private String funzione;
|
private String funzione;
|
||||||
}
|
}
|
@ -5,7 +5,11 @@ public class Test{
|
|||||||
public static void main(String [] args) throws Exception{
|
public static void main(String [] args) throws Exception{
|
||||||
Scanner scDipendenti = new Scanner(new File("dipendenti.dat"));
|
Scanner scDipendenti = new Scanner(new File("dipendenti.dat"));
|
||||||
Scanner scOreLavoro = new Scanner(new File("presenze.dat"));
|
Scanner scOreLavoro = new Scanner(new File("presenze.dat"));
|
||||||
Azienda azienda = new Azienda(scDipendenti, scOreLavoro);
|
Azienda azienda = new Azienda(scDipendenti);
|
||||||
azienda.print(System.out);
|
azienda.calcolaPrint(scOreLavoro, System.out);
|
||||||
|
System.out.println("******");
|
||||||
|
scOreLavoro = new Scanner(new File("presenze.dat"));
|
||||||
|
Azienda az1= azienda.filtroOP();
|
||||||
|
az1.calcolaPrint(scOreLavoro, System.out);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user