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