diff --git a/src/Main.java b/src/Main.java index 5138bf3..ab9cedd 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,27 +1,77 @@ -//TIP To Run code, press or -// click the icon in the gutter. public class Main { public static void main(String[] args) { - Cinema cinema; - cinema = new Cinema("Calvino VIew", 5); + // Crea un nuovo cinema con un massimo di 4 film + Cinema multisala = new Cinema("Multisala Centrale", 4); - Film film1 = new Film("Il Signore degli Anelli", 180, "Sala 1", 100); - Film film2 = new Film("Harry Potter", 120, "Sala 2", 100); - Film film3 = new Film("Il Padrino", 150, "Sala 3", 100); + // Crea alcuni film di test + Film film1 = new Film("Il Signore degli Anelli", 180, "Sala 1", 60); + Film film2 = new Film("Interstellar", 169, "Sala 2", 50); + Film film3 = new Film("Inception", 148, "Sala 3", 40); + Film film4 = new Film("Matrix", 136, "Sala 4", 30); - cinema.aggiungiFilm(film1); - cinema.aggiungiFilm(film2); - cinema.aggiungiFilm(film3); + // Test per il Problema 1 e 3 - aggiungiFilm + System.out.println("=== Test aggiunta film ==="); + multisala.aggiungiFilm(film1); + multisala.aggiungiFilm(film2); + multisala.aggiungiFilm(film3); + multisala.aggiungiFilm(film4); - cinema.stampaProgrammazione(); + // Stampa programmazione + System.out.println("\n=== Programmazione attuale ==="); + multisala.stampaProgrammazione(); - cinema.prenotaPosti(10, film1); - cinema.prenotaPosti(10, film1); - cinema.prenotaPosti(10, film1); - cinema.prenotaPosti(10, film1); + // Test per il Problema 1 - prenotaPosti + System.out.println("\n=== Test prenotazione posti ==="); - cinema.stampaProgrammazione(); + // Crea una copia di film1 per dimostrare il problema di confronto con == + Film film1Copy = new Film("Il Signore degli Anelli", 180, "Sala 1", 60); + System.out.println("Test prenotazione con oggetto diverso ma stesso film:"); - cinema.filmPiùLungo(); + boolean prenotazioneSuccesso = multisala.prenotaPosti(10, film1Copy); + if (prenotazioneSuccesso) { + System.out.println("Prenotazione di 10 posti per " + film1Copy.getTitolo() + " effettuata con successo"); + } else { + System.out.println("Prenotazione di 10 posti per " + film1Copy.getTitolo() + " fallita"); + } + + // Test per prenotaPosti con film esistente + System.out.println("\nTest prenotazione standard:"); + prenotazioneSuccesso = multisala.prenotaPosti(20, film2); + if (prenotazioneSuccesso) { + System.out.println("Prenotazione di 20 posti per " + film2.getTitolo() + " effettuata con successo"); + } else { + System.out.println("Prenotazione di 20 posti per " + film2.getTitolo() + " fallita"); + } + + // Test per prenotaPosti con troppi posti + System.out.println("\nTest prenotazione con troppi posti:"); + prenotazioneSuccesso = multisala.prenotaPosti(100, film3); + if (prenotazioneSuccesso) { + System.out.println("Prenotazione di 100 posti per " + film3.getTitolo() + " effettuata con successo"); + } else { + System.out.println("Prenotazione di 100 posti per " + film3.getTitolo() + " fallita"); + } + + // Test per il Problema 3 - filmPiùLungo + System.out.println("\n=== Test film più lungo ==="); + Film filmPiuLungo = multisala.filmPiùLungo(); + System.out.println("Il film più lungo è:\n" + filmPiuLungo); + + // Test per il Problema 3 - percentualePostiOccupati + System.out.println("\n=== Test percentuale posti occupati ==="); + System.out.println("Percentuale posti occupati per " + film2.getTitolo() + ":"); + multisala.percentualePostiOccupati(film2); + + // Test di equals nella classe Film + System.out.println("\n=== Test equals della classe Film ==="); + System.out.println("film1.equals(film1Copy): " + film1.equals(film1Copy)); + System.out.println("film1 == film1Copy: " + (film1 == film1Copy)); + System.out.println("film1.equals(film2): " + film1.equals(film2)); + + // Test per il Problema 3 - rimuoviFilm + System.out.println("\n=== Test rimozione film ==="); + multisala.rimuoviFilm(film1); + System.out.println("Dopo la rimozione di " + film1.getTitolo() + ":"); + multisala.stampaProgrammazione(); } } \ No newline at end of file