Prima Verifica C# Calcolatore Biglietto Cinema


Verifica C# – Calcolatore Biglietto Cinema

Obiettivo

Realizzare un’applicazione Windows Form in C# che calcoli il prezzo di un biglietto del cinema considerando:

  • Tipo di film (normale o 3D)
  • Età dell’utente
  • Sconti: studente e/o abbonato
  • Giorno festivo o feriale

L’applicazione deve utilizzare i seguenti metodi:

  • String.IsNullOrEmpty()
  • Convert.ToDouble()
  • ToString()
  • MessageBox.Show()

Funzionalità richieste

  • L’utente inserisce la propria età nella TextBox.
  • Se l’età non è stata inserita, viene mostrato un MessageBox di errore con MessageBox.Show().
  • Il programma calcola il prezzo base:
    • Film normale → 8 € (Feriale ) 10€ (Festivo)
    • Film 3D → 10 € (Feriale ) 12€ (Festivo)
  • Sconti:
    • Età inferiore a 12 anni → -30%
    • Studente (CheckBox) → -10%
    • Abbonato (CheckBox) → -20%
  • Il prezzo finale viene mostrato in una Label (lblRisultato) usando il metodo ToString() per formattarlo.
  • Se l’utente sceglie Esci dal menù o clicca btnEsci, l’applicazione si chiude dopo la conferma di un MessageBox.

Interfaccia grafica e tag personalizzati

IMPORTANTE: Rinominare tutti i controlli e le variabili principali aggiungendo il proprio cognome o iniziali per evitare copie tra studenti.
Esempi: btnCalcola_Rossi, txtEta_Rossi, lblRisul_Rossi double tot_Rossi = 0,
int eta_rossi = 0.
Controllo Nome suggerito Descrizione
Label lblIstruzioni_Rossi, lblRisul_Rossi Testo guida e risultato finale
TextBox txtEta_Rossi Inserimento età dell’utente
GroupBox grpTipoFilm_Rossi Contiene le RadioButton sul tipo di film
RadioButton rdbNormale_Rossi, rdb3D_Rossi Tipo di film (scelta unica, Normale selezionato di default)
RadioButton rdbFeriale_Rossi, rdbFestivo_Rossi Giorno della proiezione (Feriale selezionato di default)
CheckBox ckStudente_Rossi, ckAbbonato_Rossi Sconti selezionabili
PictureBox picCinema_Rossi Mostra un’immagine del cinema
Button btnCalcola_Rossi, btnEsci_Rossi Calcola prezzo e chiude programma
MenuStrip menuMain_Rossi File → Esci (con conferma), Nuovo calcolo (resetta tutti i campi)

Funzionamento richiesto

  • L’utente inserisce la propria età nella TextBox.
  • Se il campo è vuoto o nullo, compare un MessageBox che avvisa di inserire l’età.
  • Se l’utente clicca su “Esci” (button o menu), appare un MessageBox di conferma.
  • Se viene inserito un carattere non numerico, la Label diventa visibile, testo in rosso e mostra un messaggio di errore.
  • Se il calcolo è corretto, la Label diventa visibile, mostra il prezzo in euro formattato e colore di default.
  • All’avvio della Form, la Label deve essere inizialmente invisibile (Visible = false).
  • L’opzione “Nuovo calcolo” del MenuStrip deve resettare tutti i campi e lasciare selezionate di default le RadioButton “Normale” e “Feriale”.

Metodi utili per gestire Label:

  • lblRisul.Visible = true / false → mostra o nasconde la Label
  • lblRisul.ForeColor = Color.Red → colore rosso per errori
  • lblRisul.ForeColor = DefaultForeColor → colore di default
  • lblRisul.Text = "Messaggio" → testo della Label
  • tot.ToString("C") → formato valuta per il prezzo

Gestire eccezioni

  • try { ... } catch (Exception ex) { ... } → gestire eventuali errori

MessageBox:

  • MessageBox.Show() → mostra un messaggio all’utente con opzioni complete.
    Esempio 1 – avviso semplice per campo vuoto:
    MessageBox.Show("Devi inserire l'età!", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Warning);

    Esempio 2 – conferma uscita dal programma:

    if (MessageBox.Show("Sicuro vuoi abbandonare?", "Messaggio", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) {
    Application.Exit();
    }

Conversioni:

  • String.IsNullOrEmpty(txtEta.Text) → controlla se TextBox è vuota
  • Convert.ToDouble(txtEta.Text) → converte il testo in numero
  • ToString() → converte numero in stringa per Label

Criteri di valutazione

Descrizione Punti
Interfaccia completa con tutti i controlli richiesti 4
Uso corretto dei metodi richiesti 4
Gestione eccezioni 4
Gestione campo vuoto, MessageBox e Label errore/risultato 3
Gestione campo Label errore/risultato con colori richiesti 1
Funzionamento corretto logica di calcolo e sconti 4
MenuStrip funzionale con Esci (con conferma) e Nuovo calcolo (reset campi) 1
Senza controlli e nomi variabili con il proprio cognome Voto 3 senza considerare la griglia
Totale 21

⚠️ Copia non consentita

Per imparare davvero, digita manualmente il codice!

Torna in alto