🏫 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
📁 Materiale Fornito
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
| 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
📋 CLASSE Studente (DA CREARE COMPLETAMENTE)
Devi creare una classe Studente che rappresenti uno studente con il suo voto. La classe deve avere:
- 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
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
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
🖱️ METODO btnAggiungi_Click (DA COMPLETARE NEL FORM)
Devi implementare il gestore evento che viene eseguito quando si clicca sul pulsante “Aggiungi/Modifica”.
- Controllare che tutti i campi del form siano compilati correttamente
- Convertire i valori dalle TextBox ai tipi corretti (double per voto e peso)
- Creare un nuovo oggetto Studente con i valori inseriti
- Decidere se aggiungere un nuovo studente o modificare uno esistente
- Aggiornare la visualizzazione e le statistiche della classe
- Gestire eventuali errori o valori non validi
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
- Nel progetto, aggiungi un nuovo file chiamato
XXXXXX.cs - Dichiara tutti i campi privati necessari (iniziano con underscore _)
- Crea le proprietà pubbliche con get e set per ogni campo
- Nei setter, aggiungi la validazione con MessageBox.Show per gli errori
- Crea la proprietà VotoPonderato con SOLO get che calcola Voto × PesoVoto
- Implementa il costruttore che accetta tutti i parametri
- Overrida il metodo ToString() per mostrare i dati nel formato: “Cognome Nome – Classe – Voto: X.XX”
- Apri il file Form1.cs e trova il metodo btnAggiungi_Click
- Usa i metodi già esistenti per validare i campi
- Converti i valori dalle TextBox usando Convert.ToDouble
- Controlla se indiceModifica è -1 (aggiunta) o diverso (modifica)
- Crea l’oggetto Studente e gestiscilo nella lista appropriatamente
- Aggiorna l’interfaccia chiamando i metodi già pronti
- 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 |
- 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
VotoPonderato si calcola moltiplicando Voto per PesoVoto. Non ha senso impostarla manualmente perché deriva da altri valori.
Le statistiche (media, max, min) si calcolano sui VotiPonderati, non sui voti base. Attenzione a non confondere!
Il Form controlla i dati per l’utente, la Classe li controlla per la correttezza. Serve validare sia nel Form che nella Classe.
- 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
- Studente.cs – La classe completa con tutte le proprietà e metodi
- Form1.cs – Solo il metodo
btnAggiungi_Clickcompletato (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

