end
This commit is contained in:
parent
0a6515898b
commit
e2dcf5bc89
20
src/Noemi/Gestore.java
Normal file
20
src/Noemi/Gestore.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
public class Gestore{
|
||||||
|
|
||||||
|
public Gestore filtroautore(String autore){
|
||||||
|
for(Opera o: opere){
|
||||||
|
if(o.getAutore().equals(autore))
|
||||||
|
ADD
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gestore filtroautore(String autore){
|
||||||
|
for(Opera o: opere){
|
||||||
|
if(o instanceof Libro)
|
||||||
|
Libro l=(Libro) o;
|
||||||
|
if(l.getCasaEd().equals(autore))
|
||||||
|
ADD
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArrayList<Opera> opere;
|
||||||
|
}
|
11
src/Noemi/Libro.java
Normal file
11
src/Noemi/Libro.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
public class Libro{
|
||||||
|
|
||||||
|
public String getAutore(){
|
||||||
|
return autore;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String autore;
|
||||||
|
private String titolo;
|
||||||
|
private int anno;
|
||||||
|
private String casaEd;
|
||||||
|
}
|
5
src/Noemi/Opera.java
Normal file
5
src/Noemi/Opera.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public interface Opera{
|
||||||
|
String getTitolo();
|
||||||
|
String getAutore();
|
||||||
|
int getAnno();
|
||||||
|
}
|
25
src/Temi d'esame/Comune/Cittadini.txt
Normal file
25
src/Temi d'esame/Comune/Cittadini.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
ct01
|
||||||
|
Mario
|
||||||
|
Rossi
|
||||||
|
10/11/1990
|
||||||
|
ct02
|
||||||
|
Guido
|
||||||
|
Bianchi
|
||||||
|
13/09/1993
|
||||||
|
ct03
|
||||||
|
Luca
|
||||||
|
Verdi
|
||||||
|
14/01/1950
|
||||||
|
ct04
|
||||||
|
Lucia
|
||||||
|
Bianchi
|
||||||
|
17/03/1960
|
||||||
|
ct05
|
||||||
|
Matilde
|
||||||
|
Rossi
|
||||||
|
13/07/1991
|
||||||
|
ct06
|
||||||
|
Luca
|
||||||
|
Rossi
|
||||||
|
09/09/2009
|
||||||
|
|
BIN
src/Temi d'esame/Comune/Cittadino.class
Normal file
BIN
src/Temi d'esame/Comune/Cittadino.class
Normal file
Binary file not shown.
84
src/Temi d'esame/Comune/Cittadino.java
Normal file
84
src/Temi d'esame/Comune/Cittadino.java
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Cittadino{
|
||||||
|
|
||||||
|
public Cittadino(String codiceFiscale, String nome, String cnome, Date dataNascita){
|
||||||
|
this.codiceFiscale=codiceFiscale;
|
||||||
|
this.nome=nome;
|
||||||
|
this.cnome=cnome;
|
||||||
|
this.dataNascita=dataNascita;
|
||||||
|
this.famiglia=new ArrayList<Parentela>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Cittadino read(Scanner sc){
|
||||||
|
String codiceFiscale, nome, cnome;
|
||||||
|
Date dataNascita;
|
||||||
|
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codiceFiscale=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
nome=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
cnome=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
try{
|
||||||
|
dataNascita=sdf.parse(sc.nextLine());
|
||||||
|
}
|
||||||
|
catch(ParseException e){
|
||||||
|
System.err.println("Data non inserita correttamente.");
|
||||||
|
dataNascita=new Date(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Cittadino(codiceFiscale, nome, cnome, dataNascita);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNome(){
|
||||||
|
return nome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodice(){
|
||||||
|
return codiceFiscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataNascita(){
|
||||||
|
return dataNascita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addFamigliare(Cittadino c, String parentela){
|
||||||
|
Parentela p=new Parentela(c, parentela);
|
||||||
|
famiglia.add(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
return codiceFiscale+" "+nome+" "+cnome+" "+sdf.format(dataNascita);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printFamigliari(PrintStream ps){
|
||||||
|
for(Parentela p: famiglia)
|
||||||
|
ps.println(p.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasConiuge(){
|
||||||
|
for(Parentela p: famiglia)
|
||||||
|
if(p.getRelazione().equals("coniuge"))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codiceFiscale;
|
||||||
|
private String nome;
|
||||||
|
private String cnome;
|
||||||
|
private Date dataNascita;
|
||||||
|
private ArrayList<Parentela> famiglia;
|
||||||
|
}
|
BIN
src/Temi d'esame/Comune/CittadinoNonTrovato.class
Normal file
BIN
src/Temi d'esame/Comune/CittadinoNonTrovato.class
Normal file
Binary file not shown.
5
src/Temi d'esame/Comune/CittadinoNonTrovato.java
Normal file
5
src/Temi d'esame/Comune/CittadinoNonTrovato.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class CittadinoNonTrovato extends RuntimeException{
|
||||||
|
public CittadinoNonTrovato(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
BIN
src/Temi d'esame/Comune/Gestore.class
Normal file
BIN
src/Temi d'esame/Comune/Gestore.class
Normal file
Binary file not shown.
106
src/Temi d'esame/Comune/Gestore.java
Normal file
106
src/Temi d'esame/Comune/Gestore.java
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
public class Gestore{
|
||||||
|
|
||||||
|
public Gestore(Scanner scC, Scanner scR){
|
||||||
|
ArrayList<Cittadino> cittadini=new ArrayList<Cittadino>();
|
||||||
|
Cittadino c, famigliare;
|
||||||
|
|
||||||
|
c=Cittadino.read(scC);
|
||||||
|
while(c!=null){
|
||||||
|
cittadini.add(c);
|
||||||
|
c=Cittadino.read(scC);
|
||||||
|
}
|
||||||
|
|
||||||
|
Relazione r=Relazione.read(scR);
|
||||||
|
while(r!=null){
|
||||||
|
try{
|
||||||
|
c=searchCittadino(r.getCodiceCapo());
|
||||||
|
famigliare=searchCittadino(r.getCodiceFamigliare());
|
||||||
|
c.addFamigliare(famigliare, r.getRelazione());
|
||||||
|
if(r.getRelazione().equals("Figlio")) //Se sono padre figlio va cambiato il tipo di parentela
|
||||||
|
famigliare.addFamigliare(c, "Padre");
|
||||||
|
else //Se sono cognugi no
|
||||||
|
famigliare.addFamigliare(c, r.getRelazione());
|
||||||
|
}
|
||||||
|
catch(CittadinoNonTrovato e){
|
||||||
|
System.err.println("Cittadino non trovato");
|
||||||
|
}
|
||||||
|
r=Relazione.read(scR);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Gestore(ArrayList<Cittadino> cittadini){
|
||||||
|
this.cittadini=cittadini;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cittadino searchCittadino(String codice){
|
||||||
|
Iterator<Cittadino> iter = cittadini.iterator();
|
||||||
|
boolean trovato = false;
|
||||||
|
Cittadino c=null;
|
||||||
|
|
||||||
|
while(!trovato && iter.hasNext()){
|
||||||
|
c=iter.next();
|
||||||
|
if(c.getCodice().equals(codice))
|
||||||
|
trovato=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(trovato)
|
||||||
|
return c;
|
||||||
|
throw new CittadinoNonTrovato();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printStatoFamiglia(PrintStream ps, String codice){
|
||||||
|
Cittadino c;
|
||||||
|
try{
|
||||||
|
c=searchCittadino(codice);
|
||||||
|
ps.println(c.toString());
|
||||||
|
c.printFamigliari(ps);
|
||||||
|
}
|
||||||
|
catch(CittadinoNonTrovato e){
|
||||||
|
System.err.println("Cittadino non trovato");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printStatoFamiglia(PrintStream ps){
|
||||||
|
for(Cittadino c: cittadini){
|
||||||
|
ps.println(c.toString());
|
||||||
|
c.printFamigliari(ps);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gestore filtroNome(String nome){
|
||||||
|
ArrayList<Cittadino> cittadiniFilter=new ArrayList<Cittadino>();
|
||||||
|
|
||||||
|
for(Cittadino c: cittadini){
|
||||||
|
if(c.getNome().equals(nome))
|
||||||
|
cittadiniFilter.add(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Gestore(cittadiniFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gestore filtroDataSposati(Date data){
|
||||||
|
ArrayList<Cittadino> cittadiniFilter=new ArrayList<Cittadino>();
|
||||||
|
|
||||||
|
for(Cittadino c: cittadini){
|
||||||
|
if(c.getDataNascita().before(data) && c.hasConiuge())
|
||||||
|
cittadiniFilter.add(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Gestore(cittadiniFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
for(Cittadino c: cittadini)
|
||||||
|
ps.println(c.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArrayList<Cittadino> cittadini;
|
||||||
|
}
|
BIN
src/Temi d'esame/Comune/Parentela.class
Normal file
BIN
src/Temi d'esame/Comune/Parentela.class
Normal file
Binary file not shown.
18
src/Temi d'esame/Comune/Parentela.java
Normal file
18
src/Temi d'esame/Comune/Parentela.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
public class Parentela{
|
||||||
|
|
||||||
|
public Parentela(Cittadino c, String relazione){
|
||||||
|
this.parente=c;
|
||||||
|
this.relazione=relazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return parente.toString()+" "+relazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRelazione(){
|
||||||
|
return relazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Cittadino parente;
|
||||||
|
private String relazione;
|
||||||
|
}
|
9
src/Temi d'esame/Comune/RelFam.txt
Normal file
9
src/Temi d'esame/Comune/RelFam.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
ct01
|
||||||
|
ct05
|
||||||
|
Coniuge
|
||||||
|
ct01
|
||||||
|
ct06
|
||||||
|
Figlio
|
||||||
|
ct03
|
||||||
|
ct01
|
||||||
|
figlio
|
BIN
src/Temi d'esame/Comune/Relazione.class
Normal file
BIN
src/Temi d'esame/Comune/Relazione.class
Normal file
Binary file not shown.
41
src/Temi d'esame/Comune/Relazione.java
Normal file
41
src/Temi d'esame/Comune/Relazione.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Relazione{
|
||||||
|
|
||||||
|
public Relazione(String codiceCapo, String codiceFamigliare, String relazione){
|
||||||
|
this.codiceCapo=codiceCapo;
|
||||||
|
this.codiceFamigliare=codiceFamigliare;
|
||||||
|
this.relazione=relazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Relazione read(Scanner sc){
|
||||||
|
String codiceCapo, codiceFamigliare, relazione;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codiceCapo=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codiceFamigliare=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
relazione=sc.nextLine();
|
||||||
|
|
||||||
|
return new Relazione(codiceCapo, codiceFamigliare, relazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodiceCapo(){
|
||||||
|
return codiceCapo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodiceFamigliare(){
|
||||||
|
return codiceFamigliare;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRelazione(){
|
||||||
|
return relazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codiceCapo;
|
||||||
|
private String codiceFamigliare;
|
||||||
|
private String relazione;
|
||||||
|
}
|
BIN
src/Temi d'esame/Comune/Test.class
Normal file
BIN
src/Temi d'esame/Comune/Test.class
Normal file
Binary file not shown.
18
src/Temi d'esame/Comune/Test.java
Normal file
18
src/Temi d'esame/Comune/Test.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Test{
|
||||||
|
public static void main(String [] args){
|
||||||
|
Scanner scC=null, scP=null;
|
||||||
|
try{
|
||||||
|
scC=new Scanner(new File("Cittadini.txt"));
|
||||||
|
scP=new Scanner(new File("RelFam.txt"));
|
||||||
|
}catch(FileNotFoundException e){
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
Gestore g=new Gestore(scC, scP);
|
||||||
|
|
||||||
|
g.print(System.out);
|
||||||
|
}
|
||||||
|
}
|
53
src/Temi d'esame/Comune1/Cittadino.java
Normal file
53
src/Temi d'esame/Comune1/Cittadino.java
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
public class Cittadino{
|
||||||
|
|
||||||
|
public Cittadino(String codiceFiscale, String nome, String cnome, Date dataNascita){
|
||||||
|
this.codiceFiscale=codiceFiscale;
|
||||||
|
this.nome=nome;
|
||||||
|
this.cnome=cnome;
|
||||||
|
this.dataNascita=dataNascita;
|
||||||
|
this.famiglia=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Cittadino read(Scanner sc){
|
||||||
|
String codiceFiscale, nome, cnome;
|
||||||
|
Date dataNascita;
|
||||||
|
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codiceFiscale=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
nome=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
cnome=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
try{
|
||||||
|
dataNascita=sdf.parse(sc.nextLine());
|
||||||
|
}
|
||||||
|
catch(ParseException e){
|
||||||
|
System.err.println("Data non inserita correttamente.");
|
||||||
|
dataNascita=new Date(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Cittadino(codiceFiscale, nome, cnome, dataNascita);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
return codiceFiscale+" "+nome+" "+cnome+" "+sdf.format(dataNascita);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codiceFiscale;
|
||||||
|
private String nome;
|
||||||
|
private String cnome;
|
||||||
|
private Date dataNascita;
|
||||||
|
private Famiglia famiglia;
|
||||||
|
}
|
8
src/Temi d'esame/Comune1/Famiglia.java
Normal file
8
src/Temi d'esame/Comune1/Famiglia.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Famiglia{
|
||||||
|
|
||||||
|
private Cittadino capo;
|
||||||
|
private Cittadino cognuge;
|
||||||
|
private ArrayList<Cittadino> figli;
|
||||||
|
}
|
29
src/Temi d'esame/Comune1/Gestore.java
Normal file
29
src/Temi d'esame/Comune1/Gestore.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Gestore{
|
||||||
|
|
||||||
|
public Gestore(Scanner scC, Scanner scP){
|
||||||
|
ArrayList<Cittadino> cittadini=new ArrayList<Cittadino>();
|
||||||
|
ArrayList<Famiglia> famiglie=new ArrayList<Famiglia>();
|
||||||
|
|
||||||
|
Cittadino famiglare;
|
||||||
|
Cittadino c=Cittadino.read(scC);
|
||||||
|
while(c!=null){
|
||||||
|
cittadini.add(c);
|
||||||
|
c=Cittadino.read(scC);
|
||||||
|
}
|
||||||
|
|
||||||
|
Parentella p = Parentella.read(scP);
|
||||||
|
while(p!=null){
|
||||||
|
try{
|
||||||
|
c=searchCapo(p.getCodiceCapo());
|
||||||
|
famiglare=searchFamigliare(p.getCodiceFamigliare());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private ArrayList<Cittadino> cittadini;
|
||||||
|
private ArrayList<Famiglia> famiglie;
|
||||||
|
}
|
29
src/Temi d'esame/Comune1/Parentela.java
Normal file
29
src/Temi d'esame/Comune1/Parentela.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Parentela{
|
||||||
|
|
||||||
|
public Parentela(String codiceCapo, String codiceFamigliare, String relazione){
|
||||||
|
this.codiceCapo=codiceCapo;
|
||||||
|
this.codiceFamigliare=codiceFamigliare;
|
||||||
|
this.relazione=relazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void read(Scanner sc){
|
||||||
|
String codiceCapo, codiceFamigliare, relazione;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codiceFiscale=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
nome=sc.nextLine();
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
cnome=sc.nextLine();
|
||||||
|
|
||||||
|
return new Parentela(codiceCapo, codiceFamigliare, relazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codiceCapo;
|
||||||
|
private String codiceFamigliare;
|
||||||
|
private String relazione;
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/Giacenza.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/Giacenza.class
Normal file
Binary file not shown.
93
src/Temi d'esame/Prova 12-01/Giacenza.java
Normal file
93
src/Temi d'esame/Prova 12-01/Giacenza.java
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Giacenza {
|
||||||
|
|
||||||
|
public Giacenza(String codeM, String codeP, int quantità) {
|
||||||
|
this.codeM = codeM;
|
||||||
|
this.codeP = codeP;
|
||||||
|
this.quantità = quantità;
|
||||||
|
magazino=null;
|
||||||
|
prodotto=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// GET&&SET
|
||||||
|
public String getCodeM() {
|
||||||
|
return codeM;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodeM(String codeM) {
|
||||||
|
this.codeM = codeM;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodeP() {
|
||||||
|
return codeP;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodeP(String codeP) {
|
||||||
|
this.codeP = codeP;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getQuantità() {
|
||||||
|
return quantità;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQuantità(int quantità) {
|
||||||
|
this.quantità = quantità;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Magazzino getMagazzino(){
|
||||||
|
return magazino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMagazzino(Magazzino m){
|
||||||
|
this.magazino=m;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Prodotto getProdotto(){
|
||||||
|
return prodotto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProdotto(Prodotto p){
|
||||||
|
this.prodotto=p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// I/O
|
||||||
|
|
||||||
|
public static Giacenza read(Scanner sc){
|
||||||
|
String codeM, codeP;
|
||||||
|
int quantità;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codeM=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
codeP=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
quantità=Integer.parseInt(sc.nextLine());
|
||||||
|
|
||||||
|
return new Giacenza(codeM, codeP, quantità);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println(codeM);
|
||||||
|
ps.println(codeP);
|
||||||
|
ps.println(quantità);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return codeM+" "+codeP+" "+quantità;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codeM;
|
||||||
|
private String codeP;
|
||||||
|
private int quantità;
|
||||||
|
private Magazzino magazino;
|
||||||
|
private Prodotto prodotto;
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/Magazzino.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/Magazzino.class
Normal file
Binary file not shown.
126
src/Temi d'esame/Prova 12-01/Magazzino.java
Normal file
126
src/Temi d'esame/Prova 12-01/Magazzino.java
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Magazzino {
|
||||||
|
|
||||||
|
public Magazzino(String codeM, String indirizzo, String città, String nazione, String telefono, String fax) {
|
||||||
|
this.codeM = codeM;
|
||||||
|
this.indirizzo = indirizzo;
|
||||||
|
this.città = città;
|
||||||
|
this.nazione = nazione;
|
||||||
|
this.telefono = telefono;
|
||||||
|
this.fax = fax;
|
||||||
|
giacenze=new LinkedList<Giacenza>();
|
||||||
|
prodotti=new LinkedList<Prodotto>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Magazzino() {
|
||||||
|
this.codeM = "DEF";
|
||||||
|
giacenze=new LinkedList<Giacenza>();
|
||||||
|
prodotti=new LinkedList<Prodotto>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodeM() {
|
||||||
|
return codeM;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodeM(String codeM) {
|
||||||
|
this.codeM = codeM;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTelefono() {
|
||||||
|
return telefono;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTelefono(String telefono) {
|
||||||
|
this.telefono = telefono;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFax() {
|
||||||
|
return fax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFax(String fax) {
|
||||||
|
this.fax = fax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIndirizzo() {
|
||||||
|
return indirizzo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCittà() {
|
||||||
|
return città;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNazione() {
|
||||||
|
return nazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkedList<Giacenza> getGiacenze(){
|
||||||
|
return giacenze;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addGiacenza(Giacenza g){
|
||||||
|
giacenze.add(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkedList<Prodotto> getProdotti(){
|
||||||
|
return prodotti;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addProdotto(Prodotto p){
|
||||||
|
prodotti.add(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Magazzino read(Scanner sc){
|
||||||
|
String codeM, indirizzo, città, nazione, telefono, fax;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codeM=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
indirizzo=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
città=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
nazione=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
telefono=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
fax=sc.nextLine();
|
||||||
|
|
||||||
|
return new Magazzino(codeM, indirizzo, città, nazione, telefono, fax);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println(codeM);
|
||||||
|
ps.println(indirizzo);
|
||||||
|
ps.println(città);
|
||||||
|
ps.println(nazione);
|
||||||
|
ps.println(telefono);
|
||||||
|
ps.println(fax);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printGiacenze(PrintStream ps){
|
||||||
|
for(Giacenza g: giacenze)
|
||||||
|
ps.println(g.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printProdotti(PrintStream ps){
|
||||||
|
for(Prodotto p: prodotti)
|
||||||
|
ps.println(p.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return codeM+" "+indirizzo+" "+città+" "+nazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codeM;
|
||||||
|
private String indirizzo;
|
||||||
|
private String città;
|
||||||
|
private String nazione;
|
||||||
|
private String telefono;
|
||||||
|
private String fax;
|
||||||
|
private LinkedList<Giacenza> giacenze;
|
||||||
|
private LinkedList<Prodotto> prodotti;
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/MagazzinoNonTrovato.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/MagazzinoNonTrovato.class
Normal file
Binary file not shown.
5
src/Temi d'esame/Prova 12-01/MagazzinoNonTrovato.java
Normal file
5
src/Temi d'esame/Prova 12-01/MagazzinoNonTrovato.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class MagazzinoNonTrovato extends RuntimeException{
|
||||||
|
public MagazzinoNonTrovato(String msg){
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/Prodotto.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/Prodotto.class
Normal file
Binary file not shown.
90
src/Temi d'esame/Prova 12-01/Prodotto.java
Normal file
90
src/Temi d'esame/Prova 12-01/Prodotto.java
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Prodotto {
|
||||||
|
|
||||||
|
public Prodotto(String codeP, String descrizione, double prezzo) {
|
||||||
|
this.codeP = codeP;
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
this.prezzo = prezzo;
|
||||||
|
giacenze=new LinkedList<Giacenza>();
|
||||||
|
magazzini=new LinkedList<Magazzino>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodeP() {
|
||||||
|
return codeP;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodeP(String codeP) {
|
||||||
|
this.codeP = codeP;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getPrezzo() {
|
||||||
|
return prezzo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrezzo(double prezzo) {
|
||||||
|
this.prezzo = prezzo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkedList<Giacenza> getGiacenze(){
|
||||||
|
return giacenze;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addGiacenza(Giacenza g){
|
||||||
|
giacenze.add(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkedList<Magazzino> getMagazzini(){
|
||||||
|
return magazzini;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addMagazzino(Magazzino m){
|
||||||
|
magazzini.add(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Prodotto read(Scanner sc){
|
||||||
|
String codeP, descrizione;
|
||||||
|
double prezzo;
|
||||||
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
codeP=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
descrizione=sc.nextLine();
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
|
prezzo=Double.parseDouble(sc.nextLine());
|
||||||
|
|
||||||
|
return new Prodotto(codeP, descrizione, prezzo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println(codeP);
|
||||||
|
ps.println(descrizione);
|
||||||
|
ps.println(prezzo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printGiacenze(PrintStream ps){
|
||||||
|
for(Giacenza g: giacenze)
|
||||||
|
ps.println(g.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printMagzzini(PrintStream ps){
|
||||||
|
for(Magazzino m: magazzini)
|
||||||
|
ps.println(m.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return codeP+" "+descrizione+" "+prezzo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codeP;
|
||||||
|
private String descrizione;
|
||||||
|
private double prezzo;
|
||||||
|
private LinkedList<Giacenza> giacenze;
|
||||||
|
private LinkedList<Magazzino> magazzini;
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/ProdottoNonTrovato.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/ProdottoNonTrovato.class
Normal file
Binary file not shown.
5
src/Temi d'esame/Prova 12-01/ProdottoNonTrovato.java
Normal file
5
src/Temi d'esame/Prova 12-01/ProdottoNonTrovato.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class ProdottoNonTrovato extends RuntimeException{
|
||||||
|
public ProdottoNonTrovato(String msg){
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/Store.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/Store.class
Normal file
Binary file not shown.
116
src/Temi d'esame/Prova 12-01/Store.java
Normal file
116
src/Temi d'esame/Prova 12-01/Store.java
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Store {
|
||||||
|
|
||||||
|
public Store(Scanner scM, Scanner scP, Scanner scG){
|
||||||
|
giacenze=new LinkedList<Giacenza>();
|
||||||
|
prodotti=new LinkedList<Prodotto>();
|
||||||
|
magazzini=new LinkedList<Magazzino>();
|
||||||
|
|
||||||
|
Magazzino m=Magazzino.read(scM);
|
||||||
|
while(m!=null){
|
||||||
|
magazzini.add(m);
|
||||||
|
m=Magazzino.read(scM);
|
||||||
|
}
|
||||||
|
|
||||||
|
Prodotto p=Prodotto.read(scP);
|
||||||
|
while(p!=null){
|
||||||
|
prodotti.add(p);
|
||||||
|
p=Prodotto.read(scP);
|
||||||
|
}
|
||||||
|
|
||||||
|
Giacenza g=Giacenza.read(scG);
|
||||||
|
while(g!=null){
|
||||||
|
try{
|
||||||
|
m=searchMagazzino(g.getCodeM());
|
||||||
|
}
|
||||||
|
catch(MagazzinoNonTrovato e){
|
||||||
|
System.err.println(e.getMessage());
|
||||||
|
System.err.println("Impostato a default.");
|
||||||
|
m=new Magazzino();
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
p=searchProdotto(g.getCodeP());
|
||||||
|
g.setMagazzino(m);
|
||||||
|
g.setProdotto(p);
|
||||||
|
p.addGiacenza(g);
|
||||||
|
p.addMagazzino(m);
|
||||||
|
m.addGiacenza(g);
|
||||||
|
m.addProdotto(p);
|
||||||
|
giacenze.add(g);
|
||||||
|
}
|
||||||
|
catch(ProdottoNonTrovato e){
|
||||||
|
System.err.println(e.getMessage());
|
||||||
|
System.err.println("Giacenza saltata");
|
||||||
|
}
|
||||||
|
g=Giacenza.read(scG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Store(LinkedList<Magazzino> magazzini, LinkedList<Prodotto> prodotti, LinkedList<Giacenza> giacenze){
|
||||||
|
this.magazzini=magazzini;
|
||||||
|
this.prodotti=prodotti;
|
||||||
|
this.giacenze=giacenze;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Magazzino searchMagazzino(String codeM){
|
||||||
|
boolean trovato=false;
|
||||||
|
ListIterator<Magazzino> iter = magazzini.listIterator();
|
||||||
|
Magazzino m=null;
|
||||||
|
while(iter.hasNext() && !trovato){
|
||||||
|
m=iter.next();
|
||||||
|
if(m.getCodeM().equals(codeM))
|
||||||
|
trovato=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(trovato)
|
||||||
|
return m;
|
||||||
|
throw new MagazzinoNonTrovato("Il Magazzino con codice: "+codeM+" non è stato trovato");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Prodotto searchProdotto(String codeP){
|
||||||
|
boolean trovato=false;
|
||||||
|
ListIterator<Prodotto> iter = prodotti.listIterator();
|
||||||
|
Prodotto p=null;
|
||||||
|
while(iter.hasNext() && !trovato){
|
||||||
|
p=iter.next();
|
||||||
|
if(p.getCodeP().equals(codeP))
|
||||||
|
trovato=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(trovato)
|
||||||
|
return p;
|
||||||
|
throw new ProdottoNonTrovato("Il Prodotto con codice: "+codeP+" non è stato trovato");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Store filtroPrezzoMaggiore(double prezzo){
|
||||||
|
LinkedList<Giacenza> giacenzeFilter=new LinkedList<Giacenza>();
|
||||||
|
LinkedList<Prodotto> prodottiFilter=new LinkedList<Prodotto>();
|
||||||
|
LinkedList<Magazzino> magazziniFilter=new LinkedList<Magazzino>();
|
||||||
|
|
||||||
|
for(Prodotto p: prodotti)
|
||||||
|
if(p.getPrezzo()>prezzo){
|
||||||
|
prodottiFilter.add(p);
|
||||||
|
giacenzeFilter.addAll(p.getGiacenze());
|
||||||
|
magazziniFilter.addAll(p.getMagazzini());
|
||||||
|
}
|
||||||
|
return new Store(magazziniFilter, prodottiFilter, giacenzeFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printReportProdotti(PrintStream ps){
|
||||||
|
for(Prodotto p: prodotti){
|
||||||
|
ps.println("Descrizione: "+p.getDescrizione()+" Prezzo: "+p.getPrezzo());
|
||||||
|
for(Giacenza g: p.getGiacenze())
|
||||||
|
ps.println(g.getMagazzino().toString()+" "+g.getQuantità());
|
||||||
|
ps.println("*****");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private LinkedList<Giacenza> giacenze;
|
||||||
|
private LinkedList<Prodotto> prodotti;
|
||||||
|
private LinkedList<Magazzino> magazzini;
|
||||||
|
}
|
BIN
src/Temi d'esame/Prova 12-01/Test.class
Normal file
BIN
src/Temi d'esame/Prova 12-01/Test.class
Normal file
Binary file not shown.
20
src/Temi d'esame/Prova 12-01/Test.java
Normal file
20
src/Temi d'esame/Prova 12-01/Test.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Test{
|
||||||
|
public static void main(String [] args){
|
||||||
|
Scanner scM=null, scP=null, scG=null;
|
||||||
|
try{
|
||||||
|
scM=new Scanner(new File("magazzini.dat"));
|
||||||
|
scP=new Scanner(new File("prodotti.dat"));
|
||||||
|
scG=new Scanner(new File("giacenze.dat"));
|
||||||
|
}
|
||||||
|
catch(FileNotFoundException e){
|
||||||
|
System.err.println("Uno dei file non esiste");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
Store store=new Store(scM, scP, scG);
|
||||||
|
store.filtroPrezzoMaggiore(15).printReportProdotti(System.out);
|
||||||
|
}
|
||||||
|
}
|
28
src/Temi d'esame/Prova 12-01/giacenze.dat
Normal file
28
src/Temi d'esame/Prova 12-01/giacenze.dat
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
MG01
|
||||||
|
PR01
|
||||||
|
50
|
||||||
|
MG01
|
||||||
|
PR02
|
||||||
|
20
|
||||||
|
MG01
|
||||||
|
PR05
|
||||||
|
60
|
||||||
|
MG02
|
||||||
|
PR01
|
||||||
|
20
|
||||||
|
MG02
|
||||||
|
PR03
|
||||||
|
30
|
||||||
|
MG02
|
||||||
|
PR04
|
||||||
|
20
|
||||||
|
MG02
|
||||||
|
PR05
|
||||||
|
40
|
||||||
|
MG03
|
||||||
|
PR03
|
||||||
|
30
|
||||||
|
MG03
|
||||||
|
PR05
|
||||||
|
40
|
||||||
|
|
18
src/Temi d'esame/Prova 12-01/magazzini.dat
Normal file
18
src/Temi d'esame/Prova 12-01/magazzini.dat
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
MG01
|
||||||
|
via delle rose
|
||||||
|
Benevento
|
||||||
|
Italia
|
||||||
|
123456
|
||||||
|
123456
|
||||||
|
MG02
|
||||||
|
via Traiano
|
||||||
|
Benevento
|
||||||
|
Italia
|
||||||
|
1234567
|
||||||
|
1234567
|
||||||
|
MG03
|
||||||
|
Via Traiano
|
||||||
|
Roma
|
||||||
|
Italia
|
||||||
|
12345678
|
||||||
|
12345678
|
16
src/Temi d'esame/Prova 12-01/prodotti.dat
Normal file
16
src/Temi d'esame/Prova 12-01/prodotti.dat
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
PR01
|
||||||
|
Scarpe da calcio
|
||||||
|
23.90
|
||||||
|
PR02
|
||||||
|
Scarpe da tennis
|
||||||
|
45.95
|
||||||
|
PR03
|
||||||
|
Pallone da basket
|
||||||
|
25
|
||||||
|
PR04
|
||||||
|
Pallina da tennis
|
||||||
|
4.99
|
||||||
|
PR05
|
||||||
|
trx
|
||||||
|
20
|
||||||
|
|
Loading…
Reference in New Issue
Block a user