add museo
This commit is contained in:
parent
5a3bf67e1c
commit
22d2612baa
55
src/Museo/Archivio.java
Normal file
55
src/Museo/Archivio.java
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
import java.util.Set;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Archivio{
|
||||||
|
|
||||||
|
public Archivio(Scanner scMult, Scanner scLibri, Scanner scStampe){
|
||||||
|
archivio=new HashSet<Opera>();
|
||||||
|
|
||||||
|
Opera op=Libro.read(scLibri);
|
||||||
|
while(op!=null){
|
||||||
|
archivio.add(op);
|
||||||
|
op=Libro.read(scLibri);
|
||||||
|
}
|
||||||
|
|
||||||
|
op=OperaMult.read(scMult);
|
||||||
|
while(op!=null){
|
||||||
|
archivio.add(op);
|
||||||
|
op=OperaMult.read(scMult);
|
||||||
|
}
|
||||||
|
|
||||||
|
op=Stampa.read(scStampe);
|
||||||
|
while(op!=null){
|
||||||
|
archivio.add(op);
|
||||||
|
op=Stampa.read(scStampe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Archivio(Set<Opera> archivio){
|
||||||
|
this.archivio=archivio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
for(Opera o: archivio){
|
||||||
|
if(o instanceof Libro)
|
||||||
|
((Libro) o).print(ps);
|
||||||
|
if(o instanceof Stampa)
|
||||||
|
((Stampa) o).print(ps);
|
||||||
|
if(o instanceof OperaMult)
|
||||||
|
((OperaMult) o).print(ps);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Archivio filtroAutore(String autore){
|
||||||
|
Set<Opera> nuovoSet = new HashSet<Opera>();
|
||||||
|
for(Opera o: archivio)
|
||||||
|
if(o.getAutore().equals(autore))
|
||||||
|
nuovoSet.add(o);
|
||||||
|
|
||||||
|
return new Archivio(nuovoSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Set<Opera> archivio;
|
||||||
|
}
|
10
src/Museo/Libri.dat
Normal file
10
src/Museo/Libri.dat
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Autore3
|
||||||
|
Titolo4
|
||||||
|
1998
|
||||||
|
5S
|
||||||
|
#
|
||||||
|
Autore3
|
||||||
|
Titolo5
|
||||||
|
1233
|
||||||
|
5F
|
||||||
|
#
|
35
src/Museo/Libro.java
Normal file
35
src/Museo/Libro.java
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Libro extends Opera{
|
||||||
|
|
||||||
|
public Libro(String autore, String titolo, int anno, String pos){
|
||||||
|
super(autore, titolo, anno, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode(){
|
||||||
|
return super.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println("L "+autore+" "+titolo+" "+anno+" "+pos+".");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Libro read(Scanner sc){
|
||||||
|
String autore, titolo, pos;
|
||||||
|
int anno;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
autore=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
titolo=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
anno=Integer.parseInt(sc.nextLine());
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
pos=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
return new Libro(autore, titolo, anno, pos);
|
||||||
|
}
|
||||||
|
}
|
33
src/Museo/Opera.java
Normal file
33
src/Museo/Opera.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
public class Opera{
|
||||||
|
public Opera(String autore, String titolo, int anno, String pos){
|
||||||
|
this.anno=anno;
|
||||||
|
this.autore=autore;
|
||||||
|
this.titolo=titolo;
|
||||||
|
this.pos=pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAnno(){
|
||||||
|
return anno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAutore(){
|
||||||
|
return autore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitolo(){
|
||||||
|
return titolo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPos(){
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode(){
|
||||||
|
return autore.hashCode()*titolo.hashCode()*pos.hashCode()*anno;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int anno;
|
||||||
|
protected String autore;
|
||||||
|
protected String titolo;
|
||||||
|
protected String pos;
|
||||||
|
}
|
40
src/Museo/OperaMult.java
Normal file
40
src/Museo/OperaMult.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class OperaMult extends Opera{
|
||||||
|
|
||||||
|
public OperaMult(String autore, String titolo, String supporto, int anno, String pos){
|
||||||
|
super(autore, titolo, anno, pos);
|
||||||
|
this.supporto=supporto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode(){
|
||||||
|
return super.hashCode()*supporto.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println("OM "+autore+" "+titolo+" "+supporto+" "+anno+" "+pos+".");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OperaMult read(Scanner sc){
|
||||||
|
String autore, titolo, pos, supporto;
|
||||||
|
int anno;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
autore=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
titolo=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
supporto=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
anno=Integer.parseInt(sc.nextLine());
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
pos=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
return new OperaMult(autore, titolo, supporto, anno, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String supporto;
|
||||||
|
}
|
18
src/Museo/OpereMult.dat
Normal file
18
src/Museo/OpereMult.dat
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Autore3
|
||||||
|
Titolo6
|
||||||
|
CD
|
||||||
|
1345
|
||||||
|
45R
|
||||||
|
#
|
||||||
|
Autore1
|
||||||
|
Titolo7
|
||||||
|
USB
|
||||||
|
1996
|
||||||
|
4S
|
||||||
|
#
|
||||||
|
Autore5
|
||||||
|
Titolo8
|
||||||
|
HD
|
||||||
|
1990
|
||||||
|
45R
|
||||||
|
#
|
40
src/Museo/Stampa.java
Normal file
40
src/Museo/Stampa.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Stampa extends Opera{
|
||||||
|
|
||||||
|
public Stampa(String autore, String titolo, String tecnica, int anno, String pos){
|
||||||
|
super(autore, titolo, anno, pos);
|
||||||
|
this.tecnica=tecnica;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode(){
|
||||||
|
return super.hashCode()*tecnica.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println("S "+autore+" "+titolo+" "+tecnica+" "+anno+" "+pos+".");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Stampa read(Scanner sc){
|
||||||
|
String autore, titolo, pos, tecnica;
|
||||||
|
int anno;
|
||||||
|
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
autore=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
titolo=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
tecnica=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
anno=Integer.parseInt(sc.nextLine());
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
pos=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
sc.nextLine();
|
||||||
|
|
||||||
|
return new Stampa(autore, titolo, tecnica, anno, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String tecnica;
|
||||||
|
}
|
18
src/Museo/Stampe.dat
Normal file
18
src/Museo/Stampe.dat
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Autore1
|
||||||
|
Titolo1
|
||||||
|
Pergamena
|
||||||
|
2000
|
||||||
|
4D
|
||||||
|
#
|
||||||
|
Autore2
|
||||||
|
Titolo2
|
||||||
|
Carta
|
||||||
|
1990
|
||||||
|
34C
|
||||||
|
#
|
||||||
|
Autore1
|
||||||
|
Titolo3
|
||||||
|
Pergamena
|
||||||
|
1999
|
||||||
|
2C
|
||||||
|
#
|
14
src/Museo/Test.java
Normal file
14
src/Museo/Test.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class Test{
|
||||||
|
public static void main(String [] args) throws Exception{
|
||||||
|
Scanner scLibri=new Scanner(new File("Libri.dat"));
|
||||||
|
Scanner scMult=new Scanner(new File("OpereMult.dat"));
|
||||||
|
Scanner scStampe=new Scanner(new File("Stampe.dat"));
|
||||||
|
|
||||||
|
Archivio arch=new Archivio(scMult, scLibri, scStampe);
|
||||||
|
|
||||||
|
arch.filtroAutore("Autore1").print(System.out);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user