add negozio
This commit is contained in:
parent
77d32c3326
commit
0a6515898b
55
src/Temi d'esame/Negozio/Archivio.java
Normal file
55
src/Temi d'esame/Negozio/Archivio.java
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Archivio {
|
||||||
|
public Archivio(Scanner scN, Scanner scR){
|
||||||
|
negozi=new ArrayList<Negozio>();
|
||||||
|
responsabili=new ArrayList<Responsabile>();
|
||||||
|
Responsabile r=Responsabile.read(scR);
|
||||||
|
while(r!=null){
|
||||||
|
responsabili.add(r);
|
||||||
|
r=Responsabile.read(scR);
|
||||||
|
}
|
||||||
|
Negozio n=Negozio.read(scN);
|
||||||
|
while(n!=null){
|
||||||
|
try{
|
||||||
|
r=searchResponsabile(n.getMatricola());
|
||||||
|
n.setResponsabile(r);
|
||||||
|
r.addNegozio(n);
|
||||||
|
negozi.add(n);
|
||||||
|
}
|
||||||
|
catch(ResponsabileNonTrovato e){
|
||||||
|
System.err.println(e.getMessage());
|
||||||
|
}
|
||||||
|
n=Negozio.read(scN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Responsabile searchResponsabile(String matricola){
|
||||||
|
Iterator<Responsabile> iter = responsabili.iterator();
|
||||||
|
Responsabile r=null;
|
||||||
|
boolean trovato=false;
|
||||||
|
while(iter.hasNext() && !trovato){
|
||||||
|
r=iter.next();
|
||||||
|
if(r.getMatricola().equals(matricola))
|
||||||
|
trovato=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(trovato)
|
||||||
|
return r;
|
||||||
|
throw new ResponsabileNonTrovato("Il responsabile con matricola. "+matricola+" non è stato trovato");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printReportResponsabili(PrintStream ps){
|
||||||
|
for(Responsabile r: responsabili){
|
||||||
|
ps.println(r.toString());
|
||||||
|
r.printNegozi(ps);
|
||||||
|
ps.println("*****");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArrayList<Negozio> negozi;
|
||||||
|
private ArrayList<Responsabile> responsabili;
|
||||||
|
}
|
110
src/Temi d'esame/Negozio/Negozio.java
Normal file
110
src/Temi d'esame/Negozio/Negozio.java
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
import java.util.Date;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
public class Negozio {
|
||||||
|
|
||||||
|
|
||||||
|
public Negozio(String iD, String matricola, Date dataApertura, Date dataChiusura, String ubicazione) {
|
||||||
|
ID = iD;
|
||||||
|
this.matricola = matricola;
|
||||||
|
this.dataApertura = dataApertura;
|
||||||
|
this.dataChiusura = dataChiusura;
|
||||||
|
this.ubicazione = ubicazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMatricola() {
|
||||||
|
return matricola;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMatricola(String matricola) {
|
||||||
|
this.matricola = matricola;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getdataChiusura() {
|
||||||
|
return dataChiusura;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setdataChiusura(Date dataChiusura) {
|
||||||
|
this.dataChiusura = dataChiusura;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getID() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataApertura() {
|
||||||
|
return dataApertura;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUbicazione() {
|
||||||
|
return ubicazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
return ID+" "+matricola+" "+sdf.format(dataApertura)+"-"+sdf.format(dataChiusura)+ " "+ubicazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Responsabile getResponsabile() {
|
||||||
|
return responsabile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResponsabile(Responsabile responsabile) {
|
||||||
|
this.responsabile = responsabile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Negozio read(Scanner sc){
|
||||||
|
String ID, matricola, ubicazione;
|
||||||
|
Date dataApertura;
|
||||||
|
Date dataChiusura;
|
||||||
|
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{
|
||||||
|
dataApertura=sdf.parse(sc.nextLine());
|
||||||
|
}
|
||||||
|
catch(ParseException e){
|
||||||
|
System.err.println("Impossibile leggere la data di inizio attività");
|
||||||
|
dataApertura=new Date(0);
|
||||||
|
}
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
try{
|
||||||
|
dataChiusura=sdf.parse(sc.nextLine());
|
||||||
|
}
|
||||||
|
catch(ParseException e){
|
||||||
|
System.err.println("Impossibile leggere la data di fine attività attività");
|
||||||
|
dataChiusura=new Date();
|
||||||
|
}
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
ubicazione=sc.nextLine();
|
||||||
|
|
||||||
|
return new Negozio(ID, matricola, dataApertura, dataChiusura, ubicazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
ps.println(ID);
|
||||||
|
ps.println(matricola);
|
||||||
|
ps.println(sdf.format(dataApertura));
|
||||||
|
ps.println(sdf.format(dataChiusura));
|
||||||
|
ps.println(ubicazione);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private String ID;
|
||||||
|
private String matricola;
|
||||||
|
private Date dataApertura;
|
||||||
|
private Date dataChiusura;
|
||||||
|
private String ubicazione;
|
||||||
|
private Responsabile responsabile;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
109
src/Temi d'esame/Negozio/Responsabile.java
Normal file
109
src/Temi d'esame/Negozio/Responsabile.java
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
public class Responsabile {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Responsabile(String matricola, String nome, String cnome, Date dataNascita, String comuneNascita) {
|
||||||
|
|
||||||
|
this.matricola = matricola;
|
||||||
|
this.nome = nome;
|
||||||
|
this.cnome = cnome;
|
||||||
|
this.dataNascita = dataNascita;
|
||||||
|
this.comuneNascita = comuneNascita;
|
||||||
|
this.negozi = new ArrayList<Negozio>(); //inizializzato
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMatricola() {
|
||||||
|
return matricola;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNome() {
|
||||||
|
return nome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCnome() {
|
||||||
|
return cnome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataNascita() {
|
||||||
|
return dataNascita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getComuneNascita() {
|
||||||
|
return comuneNascita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
return matricola+" "+nome+ " "+cnome+" "+sdf.format(dataNascita)+" "+comuneNascita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Negozio> getNegozi() {
|
||||||
|
return negozi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNegozi(ArrayList<Negozio> negozi) {
|
||||||
|
this.negozi = negozi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addNegozio(Negozio n){
|
||||||
|
negozi.add(n);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printNegozi(PrintStream ps){
|
||||||
|
for(Negozio n: negozi)
|
||||||
|
ps.println(n.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Responsabile read(Scanner sc){
|
||||||
|
String matricola, nome, cnome, comuneNascita;
|
||||||
|
Date dataNascita;
|
||||||
|
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;
|
||||||
|
cnome=sc.nextLine();
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
try{
|
||||||
|
dataNascita=sdf.parse(sc.nextLine());
|
||||||
|
}
|
||||||
|
catch(ParseException e){
|
||||||
|
System.err.println("Impossibile leggere la data di nascita, impostata a base.");
|
||||||
|
dataNascita=new Date(0);
|
||||||
|
}
|
||||||
|
if(!sc.hasNextLine()) return null;
|
||||||
|
comuneNascita=sc.nextLine();
|
||||||
|
|
||||||
|
return new Responsabile(matricola, nome, cnome, dataNascita, comuneNascita);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
ps.println(matricola);
|
||||||
|
ps.println(nome);
|
||||||
|
ps.println(cnome);
|
||||||
|
ps.println(sdf.format(dataNascita));
|
||||||
|
ps.println(comuneNascita);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String matricola;
|
||||||
|
private String nome;
|
||||||
|
private String cnome;
|
||||||
|
private Date dataNascita;
|
||||||
|
private String comuneNascita;
|
||||||
|
private ArrayList<Negozio> negozi;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
5
src/Temi d'esame/Negozio/ResponsabileNonTrovato.java
Normal file
5
src/Temi d'esame/Negozio/ResponsabileNonTrovato.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class ResponsabileNonTrovato extends RuntimeException{
|
||||||
|
public ResponsabileNonTrovato(String msg){
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
19
src/Temi d'esame/Negozio/Test.java
Normal file
19
src/Temi d'esame/Negozio/Test.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Test{
|
||||||
|
public static void main(String [] args){
|
||||||
|
Scanner scN=null, scR=null;
|
||||||
|
try{
|
||||||
|
scN=new Scanner(new File("negozi.dat"));
|
||||||
|
scR=new Scanner(new File("responsabili.dat"));
|
||||||
|
}
|
||||||
|
catch(FileNotFoundException e){
|
||||||
|
System.err.println("uno dei due file non esiste.");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
Archivio ar1=new Archivio(scN, scR);
|
||||||
|
ar1.printReportResponsabili(System.out);
|
||||||
|
}
|
||||||
|
}
|
22
src/Temi d'esame/Negozio/negozi.dat
Normal file
22
src/Temi d'esame/Negozio/negozi.dat
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
NG01
|
||||||
|
MT01
|
||||||
|
06/11/2012
|
||||||
|
18/12/2014
|
||||||
|
Roma
|
||||||
|
NG02
|
||||||
|
MT03
|
||||||
|
01/06/2011
|
||||||
|
13/09/2012
|
||||||
|
Firenze
|
||||||
|
NG03
|
||||||
|
MT01
|
||||||
|
01/06/2011
|
||||||
|
07/08/2014
|
||||||
|
Venezia
|
||||||
|
NG04
|
||||||
|
MT02
|
||||||
|
09/08/1970
|
||||||
|
08/02/186
|
||||||
|
Verona
|
||||||
|
|
||||||
|
|
15
src/Temi d'esame/Negozio/responsabili.dat
Normal file
15
src/Temi d'esame/Negozio/responsabili.dat
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
MT01
|
||||||
|
Mario
|
||||||
|
Rossi
|
||||||
|
10/11/1980
|
||||||
|
Milano
|
||||||
|
MT02
|
||||||
|
Raffaele
|
||||||
|
Mignone
|
||||||
|
03/04/2016
|
||||||
|
Benevento
|
||||||
|
MT03
|
||||||
|
Giudo
|
||||||
|
Bianchi
|
||||||
|
06/07/1960
|
||||||
|
Roma
|
Loading…
Reference in New Issue
Block a user