From 4f918b14d2ec78fb9ecca62a41eace22c26ae266 Mon Sep 17 00:00:00 2001 From: orange Date: Fri, 27 Jan 2017 16:15:22 +0100 Subject: [PATCH] Progetto --- src/Temi d'esame/Progetto/Capoprogetto.java | 81 +++++++++++++ src/Temi d'esame/Progetto/Progetto.java | 106 ++++++++++++++++++ .../Progetto/ProgettoNonTrovato.java | 9 ++ src/Temi d'esame/Progetto/Segreteria.java | 48 ++++++++ 4 files changed, 244 insertions(+) create mode 100644 src/Temi d'esame/Progetto/Capoprogetto.java create mode 100644 src/Temi d'esame/Progetto/Progetto.java create mode 100644 src/Temi d'esame/Progetto/ProgettoNonTrovato.java create mode 100644 src/Temi d'esame/Progetto/Segreteria.java diff --git a/src/Temi d'esame/Progetto/Capoprogetto.java b/src/Temi d'esame/Progetto/Capoprogetto.java new file mode 100644 index 0000000..561b622 --- /dev/null +++ b/src/Temi d'esame/Progetto/Capoprogetto.java @@ -0,0 +1,81 @@ +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Date; +import java.text.SimpleDateFormat; +import java.text.ParseException; + +public class Capoprogetto { + + public Capoprogetto(String matricola, String nome, String cognome, Date data) { + + this.matricola = matricola; + this.nome = nome; + this.cognome = cognome; + this.data = data; + this.progetti = null; + + } + + public String getMatricola() { + return matricola; + } + + public String getNome() { + return nome; + } + + public String getCognome() { + return cognome; + } + + public ArrayList getProgetto() { + return progetti; + } + + public void setProgetto(ArrayList progetti) { + this.progetti = progetti; + } + + public Date getData() { + return data; + } + + public void addProgetto(Progetto p){ + progetti.add(p); + } + + public static Capoprogetto read(Scanner sc){ + String matricola, nome, cognome; + Date data=null; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + if(!sc.hasNextLine()) return null; + matricola=sc.nextLine(); + if(!sc.hasNextLine()) return null; + nome=sc.nextLine(); + if(!sc.hasNextLine()) return null; + cognome=sc.nextLine(); + if(!sc.hasNextLine()) return null; + try{ + data=sdf.parse(sc.nextLine()); + } + catch(ParseException e){ + System.err.println("Impossibile leggere la data. Impostata a zero"); + data=new Date(0); + } + + return new Capoprogetto(matricola, nome, cognome, data); + + } + + public String toString(){ + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + return matricola+" "+nome+" "+cognome+" "+sdf.format(data); + } + + private String matricola; + private String nome; + private String cognome; + private Date data; + private ArrayList progetti; +} diff --git a/src/Temi d'esame/Progetto/Progetto.java b/src/Temi d'esame/Progetto/Progetto.java new file mode 100644 index 0000000..9c86eb8 --- /dev/null +++ b/src/Temi d'esame/Progetto/Progetto.java @@ -0,0 +1,106 @@ +import java.util.ArrayList; +import java.util.Date; +import java.text.SimpleDateFormat; +import java.text.ParseException; +import java.util.Scanner; + +public class Progetto { + + public Progetto(String id, String matricola, Date inizio, Date fine, double importo) { + super(); + this.id = id; + this.matricola = matricola; + this.inizio = inizio; + this.fine = fine; + this.importo = importo; + this.capoprogetto = null; + + } + + public Date getInizio() { + return inizio; + } + + public void setInizio(Date inizio) { + this.inizio = inizio; + } + + public Date getFine() { + return fine; + } + + public void setFine(Date fine) { + this.fine = fine; + } + + public double getImporto() { + return importo; + } + + public void setImporto(double importo) { + this.importo = importo; + } + + public String getId() { + return id; + } + + public String getMatricola() { + return matricola; + } + + public Capoprogetto getCapoprogetto() { + return capoprogetto; + } + + public void setCapoprogetto(Capoprogetto capoprogetto) { + this.capoprogetto = capoprogetto; + } + + public static Progetto read(Scanner sc){ + String id, matricola; + Date inizio=null, fine=null; + double importo=10000; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + if(!sc.hasNextLine()) return null; + id=sc.nextLine(); + if(!sc.hasNextLine()) return null; + matricola=sc.nextLine(); + if(!sc.hasNextLine()) return null; + try{ + inizio=sdf.parse(sc.nextLine()); + } + catch(ParseException e){ + System.err.println("Impossibile leggere la data. Impostata a zero"); + inizio=new Date(0); + } + if(!sc.hasNextLine()) return null; + try{ + fine=sdf.parse(sc.nextLine()); + } + catch(ParseException e){ + System.err.println("Impossibile leggere la data. Impostata a zero"); + fine=new Date(0); + } + if(!sc.hasNextLine()) return null; + importo = Double.parseDouble(sc.nextLine()); + + return new Progetto(id, matricola, inizio, fine, importo); + + } + + public String toString(){ + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + return id+" "+matricola+" "+sdf.format(inizio)+" "+sdf.format(fine)+" "+importo; + } + + private String id; + private String matricola; + private Date inizio; + private Date fine; + private double importo; + private Capoprogetto capoprogetto; + + +} diff --git a/src/Temi d'esame/Progetto/ProgettoNonTrovato.java b/src/Temi d'esame/Progetto/ProgettoNonTrovato.java new file mode 100644 index 0000000..14a9eeb --- /dev/null +++ b/src/Temi d'esame/Progetto/ProgettoNonTrovato.java @@ -0,0 +1,9 @@ +public class ProgettoNonTrovato extends RuntimeException{ + + public ProgettoNonTrovato(){} + + public ProgettoNonTrovato(String msg){ + super(msg); + } + +} \ No newline at end of file diff --git a/src/Temi d'esame/Progetto/Segreteria.java b/src/Temi d'esame/Progetto/Segreteria.java new file mode 100644 index 0000000..9bce202 --- /dev/null +++ b/src/Temi d'esame/Progetto/Segreteria.java @@ -0,0 +1,48 @@ +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Iterator; + +public class Segreteria{ + + public Segreteria(Scanner scP, Scanner scCP){ + progetti = new ArrayList(); + capoprogetti = new ArrayList(); + + Capoprogetto cp=Capoprogetto.read(scCP); + while(cp!=null){ + capoprogetti.add(cp); + cp=Capoprogetto.read(scCP); + } + + Progetto p=Progetto.read(scP); + while(p!=null){ + try{ + cp=searchCapoprogetto(p.getMatricola()); + cp.addProgetto(p); + p.setCapoprogetto(cp); + } + catch(ProgettoNonTrovato e){ + System.err.println(e.getMessage()); + } + p=Progetto.read(scP); + } + } + + private Capoprogetto searchCapoprogetto(String matricola){ + Iterator iter = capoprogetti.iterator(); + Capoprogetto cp=null; + boolean trovato=false; + while(iter.hasNext() && !trovato){ + cp=iter.next(); + if (cp.getMatricola().equals(matricola)) + trovato=true; + } + + if(trovato) + return cp; + throw new ProgettoNonTrovato("Il capoprogetto: "+matricola+" non รจ stato trovato"); + } + + private ArrayList progetti; + private ArrayList capoprogetti; +} \ No newline at end of file