From 3d301fa4d0984a57c28e5c93072e5eca713bdf6f Mon Sep 17 00:00:00 2001 From: Orange Date: Mon, 21 Nov 2016 23:17:02 +0100 Subject: [PATCH] implementazione base --- src/Concessionaria/Auto.java | 68 ++++++++++++++++++++++++++ src/Concessionaria/AutoNuova.java | 44 +++++++++++++++++ src/Concessionaria/AutoUsata.java | 48 ++++++++++++++++++ src/Concessionaria/Concessionaria.java | 34 +++++++++++++ src/Concessionaria/Test.java | 12 +++++ src/Concessionaria/nuove.dat | 18 +++++++ src/Concessionaria/usate.dat | 7 +++ 7 files changed, 231 insertions(+) create mode 100644 src/Concessionaria/Auto.java create mode 100644 src/Concessionaria/AutoNuova.java create mode 100644 src/Concessionaria/AutoUsata.java create mode 100644 src/Concessionaria/Concessionaria.java create mode 100644 src/Concessionaria/Test.java create mode 100644 src/Concessionaria/nuove.dat create mode 100644 src/Concessionaria/usate.dat diff --git a/src/Concessionaria/Auto.java b/src/Concessionaria/Auto.java new file mode 100644 index 0000000..599ecae --- /dev/null +++ b/src/Concessionaria/Auto.java @@ -0,0 +1,68 @@ +import java.util.Scanner; + +public class Auto{ + + public Auto(String costruttore, String modello, String colore, String cilindrata, double prezzo){ + this.costruttore=costruttore; + this.modello=modello; + this.colore=colore; + this.cilindrata=cilindrata; + this.prezzo=prezzo; + } + + public String getCostruttore(){ + return costruttore; + } + + public String getModello(){ + return modello; + } + + public String getColore(){ + return colore; + } + + public String getCilindrata(){ + return cilindrata; + } + + public double getPrezzo(){ + return prezzo; + } + + public void setPrezzo(double newPrezzo){ + this.prezzo=newPrezzo; + } + + public void setColore(String newColore){ + this.colore=newColore; + } + + public static Auto read(Scanner sc) throws Exception{ + String costruttore, modello, colore, cilindrata; + double prezzo; + + if(!sc.hasNext()) return null; + costruttore=sc.next(); + if(!sc.hasNext()) return null; + modello=sc.next(); + if(!sc.hasNext()) return null; + colore=sc.next(); + if(!sc.hasNext()) return null; + cilindrata=sc.next(); + if(!sc.hasNextDouble()) return null; + prezzo=sc.nextInt(); + + return new Auto(costruttore, modello, colore, cilindrata, prezzo); + } + + public String toString(){ + return costruttore+" "+modello; + } + + private String costruttore; + private String modello; + private String colore; + private String cilindrata; + private double prezzo; +} \ No newline at end of file diff --git a/src/Concessionaria/AutoNuova.java b/src/Concessionaria/AutoNuova.java new file mode 100644 index 0000000..b64378e --- /dev/null +++ b/src/Concessionaria/AutoNuova.java @@ -0,0 +1,44 @@ +import java.util.Scanner; + +public class AutoNuova extends Auto{ + + public AutoNuova(String costruttore, String modello, String colore, String cilindrata, double prezzo, int sconto){ + super(costruttore, modello, colore, cilindrata, prezzo); + this.sconto=sconto; + } + + public double getPrezzoFinale(){ + return super.getPrezzo()*(1-sconto/100); + } + + public int getSconto(){ + return sconto; + } + + public void setSconto(int newSconto){ + this.sconto=newSconto; + } + + public static AutoNuova read(Scanner sc) throws Exception{ + String costruttore, modello, colore, cilindrata; + double prezzo; + int sconto; + + if(!sc.hasNext()) return null; + costruttore=sc.next(); + if(!sc.hasNext()) return null; + modello=sc.next(); + if(!sc.hasNext()) return null; + colore=sc.next(); + if(!sc.hasNext()) return null; + cilindrata=sc.next(); + if(!sc.hasNextDouble()) return null; + prezzo=sc.nextDouble(); + if(!sc.hasNextInt()) return null; + sconto=sc.nextInt(); + + return new AutoNuova(costruttore, modello, colore, cilindrata, prezzo, sconto); + } + + private int sconto; +} \ No newline at end of file diff --git a/src/Concessionaria/AutoUsata.java b/src/Concessionaria/AutoUsata.java new file mode 100644 index 0000000..3b04c55 --- /dev/null +++ b/src/Concessionaria/AutoUsata.java @@ -0,0 +1,48 @@ +import java.util.Scanner; + +public class AutoUsata extends Auto{ + + public AutoUsata(String costruttore, String modello, String colore, String cilindrata, double prezzo, int annoImmatricolazione, String codiceProprietario){ + super(costruttore, modello, colore, cilindrata, prezzo); + this.annoImmatricolazione=annoImmatricolazione; + this.codiceProprietario=codiceProprietario; + } + + public int getAnnoImmatricolazione(){ + return annoImmatricolazione; + } + + public String getCodiceProprietario(){ + return codiceProprietario; + } + + public double getPrezzoFinale(){ + return super.getPrezzo(); + } + + public static AutoUsata read(Scanner sc) throws Exception{ + String costruttore, modello, colore, cilindrata, codiceProprietario; + double prezzo; + int annoImmatricolazione; + + if(!sc.hasNext()) return null; + costruttore=sc.next(); + if(!sc.hasNext()) return null; + modello=sc.next(); + if(!sc.hasNext()) return null; + colore=sc.next(); + if(!sc.hasNext()) return null; + cilindrata=sc.next(); + if(!sc.hasNextDouble()) return null; + prezzo=sc.nextDouble(); + if(!sc.hasNextInt()) return null; + annoImmatricolazione=sc.nextInt(); + if(!sc.hasNext()) return null; + codiceProprietario=sc.next(); + + return new AutoUsata(costruttore, modello, colore, cilindrata, prezzo, annoImmatricolazione, codiceProprietario); + } + + private int annoImmatricolazione; + private String codiceProprietario; +} \ No newline at end of file diff --git a/src/Concessionaria/Concessionaria.java b/src/Concessionaria/Concessionaria.java new file mode 100644 index 0000000..f88362d --- /dev/null +++ b/src/Concessionaria/Concessionaria.java @@ -0,0 +1,34 @@ +import java.util.Scanner; +import java.util.ArrayList; +import java.io.PrintStream; + +public class Concessionaria{ + + public Concessionaria(Scanner scNuove, Scanner scUsate) throws Exception{ + auto = new ArrayList(); + + Auto a = AutoNuova.read(scNuove); + while(a!=null){ + auto.add(a); + a=AutoNuova.read(scNuove); + } + + a=AutoUsata.read(scUsate); + while(a!=null){ + auto.add(a); + a=AutoUsata.read(scUsate); + } + } + + public void print(PrintStream ps){ + for(Auto a: auto){ + if(a instanceof AutoNuova) + ps.print("Auto Nuova: "); + else + ps.print("Auto Usata: "); + ps.println(a.toString()); + } + } + + private ArrayList auto; +} \ No newline at end of file diff --git a/src/Concessionaria/Test.java b/src/Concessionaria/Test.java new file mode 100644 index 0000000..c382744 --- /dev/null +++ b/src/Concessionaria/Test.java @@ -0,0 +1,12 @@ +import java.util.Scanner; +import java.io.File; + +public class Test{ + + public static void main(String [] args) throws Exception{ + Scanner scNuove = new Scanner(new File("nuove.dat")); + Scanner scUsate = new Scanner(new File("usate.dat")); + Concessionaria con = new Concessionaria(scNuove, scUsate); + con.print(System.out); + } +} \ No newline at end of file diff --git a/src/Concessionaria/nuove.dat b/src/Concessionaria/nuove.dat new file mode 100644 index 0000000..5cbb693 --- /dev/null +++ b/src/Concessionaria/nuove.dat @@ -0,0 +1,18 @@ +fiat +500x +rosso +500cc +20000 +7 +ford +fiesta +blue +150cc +20400 +10 +ford +mastang +gialla +1000cc +100000 +5 \ No newline at end of file diff --git a/src/Concessionaria/usate.dat b/src/Concessionaria/usate.dat new file mode 100644 index 0000000..79eed8a --- /dev/null +++ b/src/Concessionaria/usate.dat @@ -0,0 +1,7 @@ +fiat +500x +rosso +500cc +15000 +2015 +mgnrfl884ndd \ No newline at end of file