Ristrutturato il file main

This commit is contained in:
Mr SL1D3R 2025-03-08 15:17:27 +01:00
parent 152f692e0d
commit 2263174bfc
1 changed files with 67 additions and 17 deletions

View File

@ -1,27 +1,77 @@
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> 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();
}
}