Back
Java

Museum Ticket

Sistema di Biglietteria Museale con Pricing Dinamico

📋 Descrizione Progetto

Museum Ticket è un sistema avanzato di biglietteria per musei che calcola il prezzo del biglietto in base a molteplici criteri: età del visitatore, reddito annuale (RAL) e classe di visita scelta. Il sistema include agevolazioni per anziani e tariffe differenziate per garantire l'accessibilità culturale.

✨ Caratteristiche Principali

💰 Pricing Complesso

  • Due classi di visita (Prima e Seconda)
  • Tariffe basate su età e reddito
  • Ingresso gratuito per anziani (Classe 2)

👴 Agevolazioni Anziani

  • Riduzione per over 70 (Prima Classe)
  • Ingresso gratuito (Seconda Classe)
  • Validazione automatica età

📄 Generazione Biglietti

  • Template HTML personalizzato
  • Dati visitatore completi
  • Salvataggio file in directory print/

🔍 Validazione Input

  • Controllo età valida (0-100)
  • Verifica RAL positivo
  • Validazione classe (1 o 2)

💵 Tabella Prezzi

Categoria
Prima Classe
Seconda Classe
Over 70
€3,00 (ridotto)
Gratuito
Under 70 + RAL < €50k
€10,00
€5,00
Under 70 + RAL ≥ €50k
€15,00
€10,00

🏗️ Struttura del Progetto

Main Classes

Metodi della Utility Class

Libreria Condivisa

💻 Concetti Java Implementati

🔧 Algoritmo di Pricing

Logica di Calcolo calculateCost()

  1. Verifica Classe Scelta:
    • Se Classe 1 → Applica tariffe Prima Classe
    • Se Classe 2 → Applica tariffe Seconda Classe
  2. Prima Classe - Verifica Età:
    • Se età ≥ 70 → €3 (tariffa ridotta)
    • Se età < 70 → Verifica RAL:
      • RAL < €50,000 → €10
      • RAL ≥ €50,000 → €15
  3. Seconda Classe - Verifica Età:
    • Se età ≥ 70 → €0 (gratuito)
    • Se età < 70 → Verifica RAL:
      • RAL < €50,000 → €5
      • RAL ≥ €50,000 → €10

🎯 Casi d'Uso

Scenario 1: Visitatore Anziano - Prima Classe

Input: Nome: "Mario Rossi", Età: 75, RAL: €30,000, Classe: 1

Output: Prezzo = €3,00 (tariffa ridotta anziani)

Scenario 2: Visitatore Giovane a Basso Reddito - Seconda Classe

Input: Nome: "Giulia Bianchi", Età: 28, RAL: €25,000, Classe: 2

Output: Prezzo = €5,00

Scenario 3: Visitatore ad Alto Reddito - Prima Classe

Input: Nome: "Luca Verdi", Età: 45, RAL: €80,000, Classe: 1

Output: Prezzo = €15,00

Scenario 4: Visitatore Anziano - Seconda Classe (Gratuito)

Input: Nome: "Anna Neri", Età: 72, RAL: €20,000, Classe: 2

Output: Prezzo = €0,00 (ingresso gratuito)

📄 Sistema di Template

Il sistema utilizza un template HTML (template.html) con placeholder che vengono sostituiti con i dati reali del visitatore:

Il biglietto generato viene salvato nella cartella print/ con nome personalizzato scelto dall'utente.

📁 Package Structure

com.generation.museum.main
└── MuseumGenerator
com.generation.mg.utility
└── MGUtility
com.generation.library
├── Console
├── Template
├── FileWriter
└── FileReader
🔗 Visualizza Codice su GitHub