From ea9373bad15b5744b376be5cfe102c761a61fbaa Mon Sep 17 00:00:00 2001 From: Orange_Dugongo Date: Thu, 3 Nov 2016 11:21:06 +0100 Subject: [PATCH] Azienda implementazione base --- src/Azienda/Azienda.java | 87 ++++++++++++++++++++++++++++++ src/Azienda/Impiegato.java | 108 +++++++++++++++++++++++++++++++++++++ src/Azienda/Personale.dati | 3 ++ src/Azienda/Sede.java | 72 +++++++++++++++++++++++++ src/Azienda/Sedi.dati | 8 +++ src/Azienda/Test.java | 10 ++++ 6 files changed, 288 insertions(+) create mode 100644 src/Azienda/Azienda.java create mode 100644 src/Azienda/Impiegato.java create mode 100644 src/Azienda/Personale.dati create mode 100644 src/Azienda/Sede.java create mode 100644 src/Azienda/Sedi.dati create mode 100644 src/Azienda/Test.java diff --git a/src/Azienda/Azienda.java b/src/Azienda/Azienda.java new file mode 100644 index 0000000..c0f3253 --- /dev/null +++ b/src/Azienda/Azienda.java @@ -0,0 +1,87 @@ +import java.util.ArrayList; +import java.util.Scanner; +import java.io.PrintStream; +import java.io.File; + +public class Azienda{ + + public Azienda(String srcSedi, String srcImpiegati) throws Exception{ + sedi = new ArrayList(); + ArrayList impiegati = new ArrayList(); + Scanner scSedi = new Scanner(new File(srcSedi)); + Scanner scImpiegati = new Scanner(new File(srcImpiegati)); + + Impiegato i = Impiegato.read(scImpiegati); + while(i!=null){ + impiegati.add(i); + i = Impiegato.read(scImpiegati); + } + + Sede s = Sede.read(scSedi); + while(s!=null){ + for(Impiegato imp: impiegati){ + if(s.getId().equals(imp.getSedeId())) + s.getImpiegati().add(imp); + imp=Impiegato.read(scImpiegati); + } + sedi.add(s); + s=Sede.read(scSedi); + } + } + + private Azienda(ArrayList sedi){ + this.sedi=sedi; + } + + public void print(PrintStream ps){ + ps.println("*****"); + for(Sede s: sedi){ + ps.println("SEDE:"); + s.print(ps); + ps.println(" IMPIEGATI:"); + for(Impiegato i: s.getImpiegati()) + ps.println(" *"+i.toString()); + } + } + + public Azienda filtroSedeId(String id){ + boolean trovato = false; + int j=0; + ArrayList sediFilter = new ArrayList(); + + while(j sediFilter = new ArrayList(); + ArrayList impiegatiFilter; + boolean almenoUno; + + for(Sede s: sedi){ + almenoUno=false; + impiegatiFilter=new ArrayList(); + for(Impiegato i: s.getImpiegati()){ + if(i.getNome().equals(nome)){ + impiegatiFilter.add(i); + almenoUno=true; + } + + } + if(almenoUno) + sediFilter.add(s.copySede(impiegatiFilter)); + + } + return new Azienda(sediFilter); + } + + private ArrayList sedi; +} diff --git a/src/Azienda/Impiegato.java b/src/Azienda/Impiegato.java new file mode 100644 index 0000000..e71ecaa --- /dev/null +++ b/src/Azienda/Impiegato.java @@ -0,0 +1,108 @@ +import java.util.Date; +import java.util.Scanner; +import java.io.PrintStream; +import java.text.SimpleDateFormat; + +public class Impiegato{ + + public Impiegato(String codiceFiscale, String nome, String cnome, String sedeId, String livello, double paga, Date data){ + + this.codiceFiscale=codiceFiscale; + this.nome=nome; + this.cnome=cnome; + this.sedeId=sedeId; + this.livello=livello; + this.paga=paga; + this.data=data; + } + + public String getCodiceFiscale(){ + return codiceFiscale; + } + + public String getNome(){ + return nome; + } + + public String getCnome(){ + return cnome; + } + + public String getSedeId(){ + return sedeId; + } + + public String getLivello(){ + return livello; + } + + public Date getData(){ + return data; + } + + public double getPaga(){ + return paga; + } + + public void setPaga(double newPaga){ + paga=newPaga; + } + + public void setLivello(String newLivello){ + livello=newLivello; + } + + public void setSedeId(String newSedeId){ + sedeId=newSedeId; + } + + public String toString(){ + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + return codiceFiscale+" "+nome+" "+cnome+" "+sdf.format(data)+" "+livello+" "+paga+"€."; + } + + public void print(PrintStream ps){ + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + ps.println(codiceFiscale); + ps.println(nome); + ps.println(cnome); + ps.println(sedeId); + ps.println(livello); + ps.println(paga); + ps.println(sdf.format(data)); + } + + public static Impiegato read(Scanner sc) throws Exception{ + String codiceFiscale, nome, cnome, sedeId, livello; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + Date data; + double paga; + + if(!sc.hasNext()) return null; + codiceFiscale=sc.next(); + if(!sc.hasNext()) return null; + nome=sc.next(); + if(!sc.hasNext()) return null; + cnome=sc.next(); + if(!sc.hasNext()) return null; + sedeId=sc.next(); + if(!sc.hasNext()) return null; + livello=sc.next(); + if(!sc.hasNextDouble()) return null; + paga=sc.nextDouble(); + if(!sc.hasNextLine()) return null; + data = sdf.parse(sc.next()); + + return new Impiegato(codiceFiscale, nome, cnome, sedeId, livello, paga, data); + } + + + private String codiceFiscale; + private String nome; + private String cnome; + private Date data; + private String livello; + private double paga; + private String sedeId; + +} diff --git a/src/Azienda/Personale.dati b/src/Azienda/Personale.dati new file mode 100644 index 0000000..b9028f5 --- /dev/null +++ b/src/Azienda/Personale.dati @@ -0,0 +1,3 @@ +codice1 nome1 cognome1 sedeid1 livello1 89 12/01/1990 +codice2 nome cognome2 sedeid2 livello2 90 13/02/1222 +codice3 nome cognome3 sedeid1 livello3 91 14/01/1234 diff --git a/src/Azienda/Sede.java b/src/Azienda/Sede.java new file mode 100644 index 0000000..522eb62 --- /dev/null +++ b/src/Azienda/Sede.java @@ -0,0 +1,72 @@ +import java.io.PrintStream; +import java.util.Scanner; +import java.util.ArrayList; + +public class Sede{ + + public Sede(String id, String via, String comune, String stato){ + this.id=id; + this.via=via; + this.comune=comune; + this.stato=stato; + impiegati = new ArrayList(); + } + + public String getId(){ + return id; + } + + public String getVia(){ + return via; + } + + public String getComune(){ + return comune; + } + + public String getStato(){ + return stato; + } + + public ArrayList getImpiegati(){ + return impiegati; + } + + public Sede copySede(ArrayList impiegati){ + Sede sede = new Sede(getId(), getVia(), getComune(), getStato()); + sede.impiegati=impiegati; + return sede; + } + + public String toString(){ + return id + " " + via + " " + comune + " " + stato + "."; + } + + public void print(PrintStream ps){ + ps.println(id); + ps.println(via); + ps.println(comune); + ps.println(stato); + } + + public static Sede read(Scanner sc){ + String id, via, comune, stato; + + if(!sc.hasNextLine()) return null; + id=sc.nextLine(); + if(!sc.hasNextLine()) return null; + via=sc.nextLine(); + if(!sc.hasNextLine()) return null; + comune=sc.nextLine(); + if(!sc.hasNextLine()) return null; + stato=sc.nextLine(); + + return new Sede(id, via, comune, stato); + } + + private String id; + private String via; + private String comune; + private String stato; + private ArrayList impiegati; +} diff --git a/src/Azienda/Sedi.dati b/src/Azienda/Sedi.dati new file mode 100644 index 0000000..8765c2d --- /dev/null +++ b/src/Azienda/Sedi.dati @@ -0,0 +1,8 @@ +sedeid1 +via delle streghe +Benevento +ita +sedeid2 +via a caso +Milano +ita diff --git a/src/Azienda/Test.java b/src/Azienda/Test.java new file mode 100644 index 0000000..47768f4 --- /dev/null +++ b/src/Azienda/Test.java @@ -0,0 +1,10 @@ +import java.util.Scanner; + +public class Test{ + public static void main(String [] args) throws Exception{ + Azienda azienda1 = new Azienda("Sedi.dati", "Personale.dati"); + //azienda1.print(System.out); + //azienda1.filtroSedeId("sedeid2").print(System.out); + azienda1.filtroNome("nome").print(System.out); + } +}