ti posto il tutto:
Ascensore
codice:
import java.util.Vector;
public class Ascensore extends Colonna
{
private int PesoMax;
private int PersoneMax;
private Vector<Persona> vett;
public Ascensore(int a, int b)
{
PesoMax = a;
PersoneMax = b;
vett = new Vector<Persona>();
}
public boolean sale(Persona p)
{
if(vett.size() < PersoneMax && (getPesoTot() + p.getPeso() <= PesoMax))
{
vett.add(p);
return true;
}
else
return false;
}
//Scende una persona dall'ascensore se la destinazione è uguale al piano
public void scende(Persona p)
{
if(vett.contains(p) && (p.destinazione() == nrPiano())) // <- met. di colonna
{
for(Persona i: vett)
if(i.equals(p))
vett.remove(p);
}
else
System.out.println("Persona non presente");
}
public Vector<Persona> getVettPersona()
{
return vett;
}
public int getPesoTot()
{
int kg = 0;
for(Persona i: vett)
kg = kg + i.getPeso();
return kg;
}
public String toString()
{
return "Ascensore con "+vett.size()+" persone per un peso tot di "+getPesoTot();
}
}
Colonna
codice:
import java.util.Vector;
public class Colonna
{
private Ascensore elevatore;
private Piano[] livello;
private int pianoCorrente;
public Colonna(Ascensore a, Piano[] b)
{
elevatore = a;
livello = b;
pianoCorrente = 0;
}
public void muoviAscensore(int prossimoPiano)
{
pianoCorrente = prossimoPiano;
}
public Piano piano()
{
return livello[pianoCorrente];
}
public int nrPiano()
{
return pianoCorrente;
}
public void movimentePersone()
{
//Scendono dall'ascensore
for(Persona i: elevatore.getVettPersona())
elevatore.scende(i);
//Salgono sull'ascensore
for(Persona i: piano().getVettPiano())
{
if(elevatore.sale(i));
System.out.println("Persona salita in ascensore");
}
}
}
Piu le 2 classi per compilare
codice:
public class Persona
{
private int destinazione;
private int peso;
public Persona(int a, int b)
{
destinazione = a;
peso = b;
}
public int destinazione()
{
return destinazione;
}
public int getPeso()
{
return peso;
}
}
codice:
import java.util.Vector;
public class Piano
{
private Vector<Persona> inAttesa;
public Piano()
{
inAttesa = new Vector<Persona>();
}
public Vector<Persona> getVettPiano()
{
return inAttesa;
}
public void aggiungi(Persona p)
{
inAttesa.add(p);
}
public Persona persona(int i)
{
return inAttesa.get(i);
}
}