diff --git a/src/FigureGeometriche/Manager.java b/src/FigureGeometriche/Manager.java index f3c8b92..257a20e 100644 --- a/src/FigureGeometriche/Manager.java +++ b/src/FigureGeometriche/Manager.java @@ -6,7 +6,7 @@ public class Manager{ public Manager(Scanner sc) throws Exception{ figure = new ArrayList(); FiguraGeometrica fg=read(sc); - while(fg!=null){ + while(fg!=null){//Alla prima lettura nulla interrompe l'intero processo di lettura figure.add(fg); fg=read(sc); } @@ -21,7 +21,7 @@ public class Manager{ fg=FiguraRegolare.read(sc); else if(tipo.equals("Rettangolo")) fg=Rettangolo.read(sc); - else + else //Qualsiasi cosa diversa da rettangolo e regolare viene letta come cerchio fg=Cerchio.read(sc); return fg; diff --git a/src/FigureGeometriche/Manager.java~ b/src/FigureGeometriche/Manager.java~ new file mode 100644 index 0000000..bf1df50 --- /dev/null +++ b/src/FigureGeometriche/Manager.java~ @@ -0,0 +1,72 @@ +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Scanner; + +public class Manager{ + public Manager(Scanner sc) throws Exception{ + figure = new ArrayList(); + FiguraGeometrica fg=read(sc); + while(fg!=null){ + figure.add(fg); + fg=read(sc); + } + } + + private static FiguraGeometrica read(Scanner sc) throws Exception{ + FiguraGeometrica fg; + String tipo; + if(!sc.hasNext()) return null; + tipo=sc.next(); + if(tipo.equals("Regolare")) + fg=FiguraRegolare.read(sc); + else if(tipo.equals("Rettangolo")) + fg=Rettangolo.read(sc); + else //Qualsiasi cosa diversa da rettangolo e regolare viene letta come cerchio + fg=Cerchio.read(sc); + + return fg; + } + + public FiguraGeometrica getMax(String tipo){ + Confrontatore conf = null; + if(tipo.equals("perimetro")) conf = new ConfrontoPerimetro(); + if(tipo.equals("area")) conf = new ConfrontoArea(); + + FiguraGeometrica max = figure.get(0); + + for (int i = 1; i < figure.size(); i++) + if (!conf.confronto(max, figure.get(i))) + max = figure.get(i); + + return max; + } + + public FiguraGeometrica getMin(String tipo){ + Confrontatore conf = null; + if(tipo.equals("perimetro")) conf = new ConfrontoPerimetro(); + if(tipo.equals("area")) conf = new ConfrontoArea(); + + FiguraGeometrica max = figure.get(0); + + for (int i = 1; i < figure.size(); i++) + if (conf.confronto(max, figure.get(i))) + max = figure.get(i); + + return max; + } + + public void print(PrintStream ps){ + for(FiguraGeometrica fg: figure){ + if(fg instanceof FiguraRegolare) + ps.print("Regolare "); + else if(fg instanceof Rettangolo) + ps.print("Rettangolo "); + else + ps.print("Cerchio "); + fg.print(ps); + + } + } + + private ArrayList figure; +}