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