// il metodo non fa altro che creare un'istanza della classe Esame // aggiungendo questa istanza alla lista degli esami che lo studente // deve sostenere public Esame RichiestaEsame(string nomeEsame) { Esame esame; // se lo studente non ha fatto richiesta di laurea if (!RichiestaLaurea) { // se l'esame può essere sostenuto nell'ambito del suo corsi di laurea // e se l'esame non supera i CFU massimi previsti dal corso di laurea, // iscrivo lo studente all'esame foreach (Corso c in _immatricolazione.CorsoDiLaurea.Corsi) { if (c.NomeCorso == nomeEsame && _immatricolazione.CfuAccumulati + c.Cfu <= _immatricolazione.CorsoDiLaurea.Cfu) { esame = new Esame(c); _esami.Add(esame); return(esame); } } } return(null); }
// metodo che aggiorna lo stato di un esame, i numeri di cfu sostenuti // dallo studente e controlla se lo studente ha raggiunto i requisiti per // richiedere la laurea public void EsamePassato(Esame esame) { // controllo che faccio perchè l'esame potrebbe essere nullo (se non presente nel corso di laurea) if (esame != null) { esame.AggiornaStatoEsame(); _immatricolazione.AggiornaCfu(esame.Corso.Cfu); if (_immatricolazione.CfuAccumulati == _immatricolazione.CorsoDiLaurea.Cfu) { RichiestaLaurea = true; } } }
static void Main(string[] args) { // creo dei corsi Corso linguaLatina = new Corso("Lingua latina", 6); Corso letteraturaLatina = new Corso("Letteratura latina", 12); Corso linguisticaApplicata = new Corso("Linguistica applicata", 6); Corso glottodidattica = new Corso("Glottodidattica", 6); Corso programmazioneJava = new Corso("Programmazione Java", 15); Corso dataMining = new Corso("Data mining", 6); Corso textAnalytics = new Corso("Text analytics", 6); Corso semanticWeb = new Corso("Semantic web", 6); // creo liste dei corsi che passerò ai costruttori dei corsi di laurea List <Corso> listaCorsiLettere = CreaListaCorsi(linguaLatina, letteraturaLatina, linguisticaApplicata, glottodidattica); List <Corso> listaCorsiInformatica = CreaListaCorsi(programmazioneJava, dataMining, textAnalytics, semanticWeb); // creo i corsi di laurea CorsoDiLaurea lettere = new CorsoDiLaurea(ListaCorsiLaurea.Lettere, listaCorsiLettere); CorsoDiLaurea informatica = new CorsoDiLaurea(ListaCorsiLaurea.Informatica, listaCorsiInformatica); // creo degli studenti Studente pino = new Studente("Pino", "Pini", 1999, lettere); Studente rosa = new Studente("Rosa", "Rosi", 1996, informatica); Studente paolo = new Studente("Paolo", "Paoli", 1997, informatica); Esame e1 = pino.RichiestaEsame("Letteratura latina"); Esame e2 = rosa.RichiestaEsame("Text analytics"); Esame e3 = paolo.RichiestaEsame("Glottodidattica"); pino.EsamePassato(e1); rosa.EsamePassato(e2); paolo.EsamePassato(e3); Console.WriteLine(pino.InfoStudente); Console.WriteLine(); Console.WriteLine(rosa.InfoStudente); Console.WriteLine(); Console.WriteLine(paolo.InfoStudente); }