Progetto Java da consegnare per accedere alla prova orale

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().