From 77d32c3326d4d84e5401cf48f3f53e3e059b5036 Mon Sep 17 00:00:00 2001 From: orange Date: Sat, 28 Jan 2017 11:18:55 +0100 Subject: [PATCH] filtri e eccezioni --- src/Temi d'esame/Progetto/Capoprogetto.java | 10 +++- .../Progetto/ImportoNegativo.java | 5 ++ src/Temi d'esame/Progetto/Prog-2013-05-06.pdf | Bin 0 -> 44288 bytes src/Temi d'esame/Progetto/Progetto.java | 18 ++++++- src/Temi d'esame/Progetto/Segreteria.java | 45 ++++++++++++++++++ src/Temi d'esame/Progetto/Test.java | 22 +++++++++ src/Temi d'esame/Progetto/capi.dat | 16 +++++++ src/Temi d'esame/Progetto/progetti.dat | 30 ++++++++++++ 8 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 src/Temi d'esame/Progetto/ImportoNegativo.java create mode 100644 src/Temi d'esame/Progetto/Prog-2013-05-06.pdf create mode 100644 src/Temi d'esame/Progetto/Test.java create mode 100644 src/Temi d'esame/Progetto/capi.dat create mode 100644 src/Temi d'esame/Progetto/progetti.dat diff --git a/src/Temi d'esame/Progetto/Capoprogetto.java b/src/Temi d'esame/Progetto/Capoprogetto.java index 561b622..0171524 100644 --- a/src/Temi d'esame/Progetto/Capoprogetto.java +++ b/src/Temi d'esame/Progetto/Capoprogetto.java @@ -1,6 +1,7 @@ import java.util.ArrayList; import java.util.Scanner; import java.util.Date; +import java.io.PrintStream; import java.text.SimpleDateFormat; import java.text.ParseException; @@ -13,7 +14,7 @@ public class Capoprogetto { this.cognome = cognome; this.data = data; this.progetti = null; - + progetti = new ArrayList(); } public String getMatricola() { @@ -28,7 +29,7 @@ public class Capoprogetto { return cognome; } - public ArrayList getProgetto() { + public ArrayList getProgetti() { return progetti; } @@ -44,6 +45,11 @@ public class Capoprogetto { progetti.add(p); } + public void printProgetti(PrintStream ps){ + for(Progetto p: progetti) + ps.println(" + "+p.toString()); + } + public static Capoprogetto read(Scanner sc){ String matricola, nome, cognome; Date data=null; diff --git a/src/Temi d'esame/Progetto/ImportoNegativo.java b/src/Temi d'esame/Progetto/ImportoNegativo.java new file mode 100644 index 0000000..0a4278a --- /dev/null +++ b/src/Temi d'esame/Progetto/ImportoNegativo.java @@ -0,0 +1,5 @@ +public class ImportoNegativo extends RuntimeException{ + public ImportoNegativo(String msg){ + super(msg); + } +} \ No newline at end of file diff --git a/src/Temi d'esame/Progetto/Prog-2013-05-06.pdf b/src/Temi d'esame/Progetto/Prog-2013-05-06.pdf new file mode 100644 index 0000000000000000000000000000000000000000..121994fc237754da340780125ae66dcdbde171d7 GIT binary patch literal 44288 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

V#kPVh7qU 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 L%*@g%GC2Pa0}3E` literal 0 HcmV?d00001 diff --git a/src/Temi d'esame/Progetto/Progetto.java b/src/Temi d'esame/Progetto/Progetto.java index 9c86eb8..749584d 100644 --- a/src/Temi d'esame/Progetto/Progetto.java +++ b/src/Temi d'esame/Progetto/Progetto.java @@ -60,7 +60,7 @@ public class Progetto { public static Progetto read(Scanner sc){ String id, matricola; Date inizio=null, fine=null; - double importo=10000; + double importo=1000; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); if(!sc.hasNextLine()) return null; @@ -84,7 +84,21 @@ public class Progetto { fine=new Date(0); } if(!sc.hasNextLine()) return null; - importo = Double.parseDouble(sc.nextLine()); + try{ + importo = Double.parseDouble(sc.nextLine()); + if(importo<0) + throw new ImportoNegativo("L'importo del progetto: "+id+" è negativo."); + } + catch(NumberFormatException e){ + System.err.println("Impossibile leggere correttamente l'importo del progetto: "+id); + System.err.println("Importo impostato a 1000"); + } + catch(ImportoNegativo in){ + System.err.println(in.getMessage()); + System.err.println("Importo inpostato a positivo."); + importo*=-1; + } + return new Progetto(id, matricola, inizio, fine, importo); diff --git a/src/Temi d'esame/Progetto/Segreteria.java b/src/Temi d'esame/Progetto/Segreteria.java index 9bce202..295d143 100644 --- a/src/Temi d'esame/Progetto/Segreteria.java +++ b/src/Temi d'esame/Progetto/Segreteria.java @@ -1,6 +1,7 @@ import java.util.ArrayList; import java.util.Scanner; import java.util.Iterator; +import java.io.PrintStream; public class Segreteria{ @@ -20,6 +21,7 @@ public class Segreteria{ cp=searchCapoprogetto(p.getMatricola()); cp.addProgetto(p); p.setCapoprogetto(cp); + progetti.add(p); } catch(ProgettoNonTrovato e){ System.err.println(e.getMessage()); @@ -28,6 +30,11 @@ public class Segreteria{ } } + private Segreteria(ArrayList progetti, ArrayList capoprogetti){ + this.progetti=progetti; + this.capoprogetti=capoprogetti; + } + private Capoprogetto searchCapoprogetto(String matricola){ Iterator iter = capoprogetti.iterator(); Capoprogetto cp=null; @@ -43,6 +50,44 @@ public class Segreteria{ throw new ProgettoNonTrovato("Il capoprogetto: "+matricola+" non è stato trovato"); } + public Segreteria filtroImportoMaggiore(double importo){ + ArrayList progettiFilter=new ArrayList(); + ArrayList capoprogettiFilter=new ArrayList(); + for(Progetto p: progetti) + if(p.getImporto()>importo){ + progettiFilter.add(p); + capoprogettiFilter.add(p.getCapoprogetto()); + } + return new Segreteria(progettiFilter, capoprogettiFilter); + } + + public Segreteria filtroNomeCapo(String nome){ + ArrayList progettiFilter=new ArrayList(); + ArrayList capoprogettiFilter=new ArrayList(); + for(Capoprogetto cp: capoprogetti) + if(cp.getNome().equals(nome)){ + progettiFilter.addAll(cp.getProgetti()); + capoprogettiFilter.add(cp); + } + return new Segreteria(progettiFilter, capoprogettiFilter); + } + + public void printReportCapi(PrintStream ps){ + for(Capoprogetto cp: capoprogetti){ + ps.println(cp.toString()); + cp.printProgetti(ps); + ps.println("*****"); + } + } + + public void printReportProgetti(PrintStream ps){ + for(Progetto p: progetti){ + ps.println(p.toString()); + ps.println(" + "+p.getCapoprogetto().toString()); + ps.println("*****"); + } + } + private ArrayList progetti; private ArrayList capoprogetti; } \ No newline at end of file diff --git a/src/Temi d'esame/Progetto/Test.java b/src/Temi d'esame/Progetto/Test.java new file mode 100644 index 0000000..5294899 --- /dev/null +++ b/src/Temi d'esame/Progetto/Test.java @@ -0,0 +1,22 @@ +import java.util.Scanner; +import java.io.File; +import java.io.FileNotFoundException; + +public class Test{ + public static void main(String [] args){ + Scanner scCP=null, scP=null; + try{ + scCP=new Scanner(new File("capi.dat")); + scP=new Scanner(new File("progetti.dat")); + } + catch(FileNotFoundException e){ + System.err.println("Uno dei due file non esiste"); + System.exit(0); + } + Segreteria sg1 = new Segreteria(scP, scCP); + sg1=sg1.filtroNomeCapo("Nome1"); + sg1.printReportCapi(System.out); + System.out.println("-------------------"); + sg1.printReportProgetti(System.out); + } +} \ No newline at end of file diff --git a/src/Temi d'esame/Progetto/capi.dat b/src/Temi d'esame/Progetto/capi.dat new file mode 100644 index 0000000..6569909 --- /dev/null +++ b/src/Temi d'esame/Progetto/capi.dat @@ -0,0 +1,16 @@ +MT01 +Pinco +Panco +12/08/1990 +MT02 +Nome +Cognome +03/09/1286 +MT03 +Paperone +De Paperoni +24/11/1943 +MT04 +Nome1 +Cognome1 +08/12/1961 \ No newline at end of file diff --git a/src/Temi d'esame/Progetto/progetti.dat b/src/Temi d'esame/Progetto/progetti.dat new file mode 100644 index 0000000..7013646 --- /dev/null +++ b/src/Temi d'esame/Progetto/progetti.dat @@ -0,0 +1,30 @@ +PG01 +MT03 +20/03/2015 +02/11/2016 +20000 +PG02 +MT01 +04/08/2014 +09/12/2016 +30000 +PG03 +MT03 +23/09/2012 +24/11/2012 +800hj +PG04 +MT02 +23/01/2000 +24/15/2006 +100000 +PG05 +MT04 +04/09/2013 +18/07/2014 +-20000 +PG06 +MT04 +23/09/2015 +06/07/2016 +10000