Compare commits

..

No commits in common. "arrayList" and "main" have entirely different histories.

1 changed files with 45 additions and 40 deletions

View File

@ -1,23 +1,26 @@
import java.util.ArrayList;
/** /**
* Classe Cinema che va a rappresentare un cinema * Classe Cinema che va a rappresentare un cinema
* *
* @autor Ciausu Angelo * @autor Ciausu Angelo
* @version 2.0.0 * @version 1.1.7
*/ * */
public class Cinema { public class Cinema {
private String nome; private String nome;
private int filmMax; private int filmMax;
private ArrayList<Film> film; private Film[] film;
public Cinema(String nome, int filmMax) { public Cinema(String nome, int filmMax) {
this.nome = nome; this.nome = nome;
this.filmMax = filmMax; this.filmMax = filmMax;
this.film = new ArrayList<>(filmMax); this.film = new Film[filmMax];
for (int i = 0; i < film.length; i++) {
film[i] = null;
}
} }
/** /**
* Aggiunge un film all'array di film. * Aggiunge un film all'array di film.
* *
@ -27,17 +30,15 @@ public class Cinema {
* @param f il film da aggiungere * @param f il film da aggiungere
*/ */
public void aggiungiFilm(Film f) { public void aggiungiFilm(Film f) {
for (Film film : this.film) { for (int i = 0; i < film.length; i++) {
if (film.equals(f)) { if (film[i] == null) {
film[i] = f;
break;
} else if (film[i] == f) {
System.out.println("Film già presente"); System.out.println("Film già presente");
return; break;
} }
} }
if (this.film.size() < filmMax) {
this.film.add(f);
} else {
System.out.println("Capacità massima raggiunta");
}
} }
/** /**
@ -50,12 +51,12 @@ public class Cinema {
* *
* @param Posti il numero di posti da prenotare * @param Posti il numero di posti da prenotare
* @param film il film per cui prenotare i posti * @param film il film per cui prenotare i posti
* @return `true` se i posti sono stati prenotati con successo, `false` altrimenti * @return `true se i posti sono stati prenotati con successo, `false` altrimenti
*/ */
public boolean prenotaPosti(int Posti, Film film) { public boolean prenotaPosti(int Posti, Film film) {
for (Film f : this.film) { for (int i = 0; i < this.film.length; i++) {
if (f.equals(film)) { if (this.film[i] != null && this.film[i].equals(film)) {
return f.vendiBiglietti(Posti); return this.film[i].vendiBiglietti(Posti);
} }
} }
return false; return false;
@ -70,13 +71,12 @@ public class Cinema {
* @return una copia del film con la durata maggiore * @return una copia del film con la durata maggiore
*/ */
public Film filmPiùLungo() { public Film filmPiùLungo() {
if (this.film.isEmpty()) { Film filmPiuLungo = this.film[0];
return null; for (int i = 0; i < this.film.length; i++) {
} if (this.film[i] != null) {
Film filmPiuLungo = this.film.get(0); if (this.film[i].getDurata() > filmPiuLungo.getDurata()) {
for (Film f : this.film) { filmPiuLungo = this.film[i];
if (f.getDurata() > filmPiuLungo.getDurata()) { }
filmPiuLungo = f;
} }
} }
return new Film(filmPiuLungo.getTitolo(), filmPiuLungo.getDurata(), filmPiuLungo.getSala(), filmPiuLungo.getPostiDisponibili()); return new Film(filmPiuLungo.getTitolo(), filmPiuLungo.getDurata(), filmPiuLungo.getSala(), filmPiuLungo.getPostiDisponibili());
@ -91,10 +91,10 @@ public class Cinema {
* @param film il film per cui calcolare la percentuale di posti occupati * @param film il film per cui calcolare la percentuale di posti occupati
*/ */
public void percentualePostiOccupati(Film film) { public void percentualePostiOccupati(Film film) {
for (Film f : this.film) { for (int i = 0; i < this.film.length; i++) {
if (f.equals(film)) { if (this.film[i] != null && this.film[i].equals(film)) {
int postiTotali = f.getPostiTotali(); int postiTotali = this.film[i].getPostiTotali();
int postiDisponibili = f.getPostiDisponibili(); int postiDisponibili = this.film[i].getPostiDisponibili();
int postiOccupati = postiTotali - postiDisponibili; int postiOccupati = postiTotali - postiDisponibili;
double percentuale = (double) postiOccupati / postiTotali * 100; double percentuale = (double) postiOccupati / postiTotali * 100;
System.out.println("Percentuale posti occupati: " + percentuale + "%"); System.out.println("Percentuale posti occupati: " + percentuale + "%");
@ -104,17 +104,22 @@ public class Cinema {
System.out.println("Film non trovato"); System.out.println("Film non trovato");
} }
public void rimuoviFilm(Film film) { public void rimuoviFilm(Film film){
if (this.film.remove(film)) { for (int i = 0; i < this.film.length; i++) {
System.out.println("Film rimosso"); if (this.film[i] != null && this.film[i].equals(film)) {
} else { this.film[i] = null;
System.out.println("Film non trovato"); return;
}
}
System.out.println("Film non trovato");
}
public void stampaProgrammazione(){
for (int i = 0; i < this.film.length; i++) {
if (this.film[i] != null) {
System.out.println("Titolo: " + this.film[i].getTitolo() + " Durata: " + this.film[i].getDurata() + " Sala: " + this.film[i].getSala() + " Posti: " + this.film[i].getPostiDisponibili());
}
} }
} }
public void stampaProgrammazione() { }
for (Film f : this.film) {
System.out.println(f.toString());
}
}
}