🏫 Gestionale Registro Scolastico

Gestione completa di studenti, voti e statistiche di classe

🎯 Obiettivo della Verifica di Recupero

Completare un’applicazione C# Windows Forms per la gestione del registro scolastico di una classe. L’applicazione permette di:

  • Registrare nuovi studenti con tutti i dati anagrafici e scolastici
  • Calcolare automaticamente i voti ponderati in base al peso della materia
  • Visualizzare statistiche della classe (media voti, voto più alto, più basso)
  • Gestire le materie scolastiche e le classi
  • Esportare i dati in formato CSV per i registri ufficiali
📚 Cosa Dovrai Completare

  • Classe Studente: Creare completamente con campi privati e validazione
  • Metodo btnAggiungi_Click: Implementare la logica di aggiunta/modifica con calcolo voto ponderato
  • Integrazione: Far comunicare correttamente Form e Classe con calcoli automatici

📁 Materiale Fornito

1

File Form1.cs già implementato (tranne il metodo btnAggiungi_Click)

Riceverai un file Form1.cs completo di:

  • ✅ Tutti i controlli dell’interfaccia grafica
  • ✅ Metodi di validazione già implementati
  • ✅ Gestori eventi per rimozione, ordinamento, salvataggio
  • ✅ Metodi per aggiornamento visualizzazione e statistiche
  • SOLO btnAggiungi_Click da completare
2

Struttura dell’interfaccia già pronta

Controllo Nome Scopo
TextBox txtNome Nome studente
TextBox txtCognome Cognome studente
ComboBox cmbClasse Classe (1A, 1B, 2A, 2B, 3A, 3B, 4A, 4B, 5A, 5B)
ComboBox cmbMateria Materia (Italiano, Matematica, Inglese, Storia, Scienze)
TextBox txtVoto Voto (1-10)
TextBox txtPesoVoto Peso del voto (0.5-2.0)
Label lblVotoPonderato Mostra voto ponderato calcolato automaticamente
ListBox lstStudenti Elenco studenti con voti
Button btnAggiungi Aggiungi/Modifica studente
Label lblMediaVoti Mostra media voti della classe
Label lblVotoMax Mostra voto più alto
Label lblVotoMin Mostra voto più basso

⚙️ Parti da Completare

1

📋 CLASSE Studente (DA CREARE COMPLETAMENTE)

Devi creare una classe Studente che rappresenti uno studente con il suo voto. La classe deve avere:

💡 Cosa deve contenere la classe:

  • Campi privati per tutti i dati dello studente
  • Proprietà pubbliche con get e set (e validazione nei setter)
  • Una proprietà calcolata VotoPonderato con SOLO get
  • Un costruttore che inizializza tutti i dati
  • Il metodo ToString() per visualizzazione in ListBox
Elenco delle proprietà richieste
1. Nome (string) - non vuoto, max 30 caratteri
2. Cognome (string) - non vuoto, max 30 caratteri  
3. Classe (string) - solo valori: "1A", "1B", "2A", "2B", "3A", "3B", "4A", "4B", "5A", "5B"
4. Materia (string) - solo: "Italiano", "Matematica", "Inglese", "Storia", "Scienze"
5. Voto (double) - tra 1.0 e 10.0
6. PesoVoto (double) - tra 0.5 e 2.0
7. VotoPonderato (double) - SOLO GET, calcolata automaticamente
🔑 IMPORTANTE: Proprietà Calcolata

La proprietà VotoPonderato deve essere calcolata automaticamente moltiplicando Voto per PesoVoto.

NON deve avere un setter! Viene calcolata quando la si legge, non si può impostare manualmente.

Esempio: Voto = 7.5, PesoVoto = 1.5 → VotoPonderato = 7.5 × 1.5 = 11.25

2

🖱️ METODO btnAggiungi_Click (DA COMPLETARE NEL FORM)

Devi implementare il gestore evento che viene eseguito quando si clicca sul pulsante “Aggiungi/Modifica”.

🎯 Cosa deve fare il metodo:

  1. Controllare che tutti i campi del form siano compilati correttamente
  2. Convertire i valori dalle TextBox ai tipi corretti (double per voto e peso)
  3. Creare un nuovo oggetto Studente con i valori inseriti
  4. Decidere se aggiungere un nuovo studente o modificare uno esistente
  5. Aggiornare la visualizzazione e le statistiche della classe
  6. Gestire eventuali errori o valori non validi
💡 Modalità Aggiunta vs Modifica

Il pulsante ha due funzioni:

  • Modalità AGGIUNTA: Quando si aggiunge un nuovo studente
  • Modalità MODIFICA: Quando si modifica uno studente esistente (indiceModifica ≠ -1)

Devi gestire entrambe le situazioni nello stesso metodo!

📝 Istruzioni Operative

1

COME creare la classe Studente

  1. Nel progetto, aggiungi un nuovo file chiamato XXXXXX.cs
  2. Dichiara tutti i campi privati necessari (iniziano con underscore _)
  3. Crea le proprietà pubbliche con get e set per ogni campo
  4. Nei setter, aggiungi la validazione con MessageBox.Show per gli errori
  5. Crea la proprietà VotoPonderato con SOLO get che calcola Voto × PesoVoto
  6. Implementa il costruttore che accetta tutti i parametri
  7. Overrida il metodo ToString() per mostrare i dati nel formato: “Cognome Nome – Classe – Voto: X.XX”
2

COME completare btnAggiungi_Click

  1. Apri il file Form1.cs e trova il metodo btnAggiungi_Click
  2. Usa i metodi già esistenti per validare i campi
  3. Converti i valori dalle TextBox usando Convert.ToDouble
  4. Controlla se indiceModifica è -1 (aggiunta) o diverso (modifica)
  5. Crea l’oggetto Studente e gestiscilo nella lista appropriatamente
  6. Aggiorna l’interfaccia chiamando i metodi già pronti
  7. Gestisci eventuali errori con try-catch

✅ Criteri di Valutazione

Voto Cosa si valuta
5-6 Classe creata ma validazioni incomplete + btnAggiungi parziale
7-8 Classe completa con validazioni + btnAggiungi funzionante in entrambe le modalità
9-10 Tutto perfetto + proprietà calcolata corretta + gestione errori completa + statistiche funzionanti
🎯 Punti fondamentali per il 10
  • Proprietà calcolata: VotoPonderato deve essere SOLO get e calcolare correttamente
  • Validazioni: Tutte le proprietà devono controllare i valori nei setter
  • Gestione modalità: Il metodo deve gestire sia aggiunta che modifica
  • Statistiche: Media, voto max e voto min devono calcolarsi correttamente
  • Gestione errori: try-catch per conversioni ed eccezioni dalla classe

💡 Consigli Utili

🎯 Ricorda questi concetti chiave

🧮 La Proprietà Calcolata

VotoPonderato si calcola moltiplicando Voto per PesoVoto. Non ha senso impostarla manualmente perché deriva da altri valori.

📊 Le Statistiche

Le statistiche (media, max, min) si calcolano sui VotiPonderati, non sui voti base. Attenzione a non confondere!

✅ Validazione Doppia

Il Form controlla i dati per l’utente, la Classe li controlla per la correttezza. Serve validare sia nel Form che nella Classe.

📈 Attenzione ai Calcoli Statistici

  • Media: somma di tutti i VotoPonderato ÷ numero studenti
  • Voto Massimo: il VotoPonderato più alto nella lista
  • Voto Minimo: il VotoPonderato più basso nella lista
  • I calcoli vanno fatti dopo ogni aggiunta/modifica
  • Attenzione a gestire il caso di lista vuota (divisione per zero!)

📤 Modalità di Consegna

Consegna il file completo in formato ZIP:

  1. Studente.cs – La classe completa con tutte le proprietà e metodi
  2. Form1.cs – Solo il metodo btnAggiungi_Click completato (indicato con commento // DA COMPLETARE)

⏰ Tempo a disposizione: 90 minuti

Nota: Il resto del progetto (Form1.Designer.cs, Program.cs, altri metodi) è già completo e funzionante. Devi solo integrare le tue parti.

Verifica – Gestionale Registro Scolastico
Gestione Dati con Classi – Studenti e Voti

Torna in alto