Progetto Java da consegnare per accedere alla prova orale/verbalizzazione dell’esame POJ A.A. 2012/13 Il progetto va consegnato via email almeno 5 giorni prima della prova orale/verbalizzazione a cui si intende partecipare. Oltre al codice Java va consegnata anche una relazione (in formato ppt/pdf) che descriva in modo chiaro e preciso le scelte progettuali (diagrammi UML delle classi) e alcune prove di collaudo (es. tramite screenshot). Il codice deve essere ben formattato e commentato. Il programma non deve mai terminare a causa di un’eccezione se i dati forniti in input dall’utente non sono del tipo corretto. La relazione e i sorgenti Java devono essere presentati sia in copia cartacea che in copia elettronica. Il docente può chiedere agli studenti di modificare e risottomettere il progetto qualora questo non rispetti le specifiche date o per la scarsa qualità del materiale consegnato. Progetto Cinema Sviluppare una applicazione Java che consente di gestire una sala cinematografica. Tutte le classi devono essere contenute nel package "cinema". L’applicazione prevede lo sviluppo delle seguenti classi principali: - Cinema - Sala Cinematografica - Spettatore - Film - Biglietto C1 Cinema La classe Cinema avrà come attributi un array di oggetti di tipo sala cinematografica e consentirà di calcolare l’incasso del cinema sommando gli incassi delle sale cinematografiche C2 Sala Cinematografica La Sala ( o SalaCinematografica) è in grado di contenere un numero definito di spettatori, pertanto ha come attributi un array di spettatori di dimensione fissata e contiene il riferimento al film che si sta proiettando al suo interno. Devono essere inoltre definiti metodi per svuotare la sala(svuotaSala()), e per consentire l’ingresso ad uno spettatore (consentiIngresso(Spettatore spettatore) )se e solo se ci sono ancora posti disponibili altrimenti deve essere lanciata l’eccezione “SalaAlCompleto”, se inoltre lo spettatore è minore di 14 anni, e sta tentando di accedere ad una sala in cui si proietta un film di genere horror, deve essergli impedito l’accesso e lanciata l’eccezione “FilmVietato”.Tramite il metodo calcolaIncasso() sarà inoltre possibile calcolare l’incasso della singola sala. C3 Film La classe Film conterrà attributi quali titolo del film, autore, produttore, genere e durata. C4 Spettatore La classe Spettatore contiene invece attributi come idSpettatore, nome, cognome, data nascita e biglietto oltre al metodo minorenne() che restituisce un valore booleano per determinare la minore o maggiore età dello spettatore. Inoltre se lo spettatore ha un età maggiore dei 70 anni deve essere praticato uno sconto del 10% sul prezzo del biglietto e se ha un età inferiore ai 5 anni deve essere praticato uno sconto del 50% sul prezzo intero del biglietto; C5 Biglietto La classe Biglietto contiene gli attributi posizione che indica il posto a sedere nella sala cinematografica ed il prezzo. La classe biglietto contiene i metodi ApplicaRiduzioneAnziani() e calcolaRiduzioneBambini() per determinare la riduzione sul prezzo intero del biglietto C6 Statistiche L’applicazione deve essere in grado di generare statistiche riguardanti le percentuali di spettatori che seguono un determinato genere tramite il metodo calcolaStatisticheGenere(), il film che ha avuto maggior numero di spettatori calcolaMaxSpettatoriFilm() e il film che ha avuto un minor numero di spettatori calcolaMinSpettatoriFilm().