// quando creo uno studente significa implicitamente che lo sto immatricolando // a un corso di laurea, pertanto dovrò specificare il corso prescelto public Studente(string nome, string cognome, int annoDiNascita, CorsoDiLaurea corsoLaurea) { Nome = nome; Cognome = cognome; AnnoDiNascita = annoDiNascita; // al momento della creazione/immatricolazione dello studente // il flag per la richiesta della laurea è false RichiestaLaurea = false; _immatricolazione = new Immatricolazione(corsoLaurea); }
// il costruttore assegna una matricola, la data di immatricolazione, // il flag di fuori corso, i cfu sostenuti e iscrive letteralmente lo // studente al corso aggiungendolo alla lista _studentiImmatricolati // (vedi classe CorsoDiLaurea) public Immatricolazione(CorsoDiLaurea corsoLaurea) { Matricola = ++_matricola; // suppongo che la data di inizio sia la data al momento dell'inserimento DataInizio = DateTime.Today; // al momento dell'imatricolazione non si è fuori corso FuoriCorso = false; // al momento dell'imatricolazione non si è in possesso di alcun cfu CfuAccumulati = 0; CorsoDiLaurea = corsoLaurea; // quando si crea un'immatricolazione significa che lo studente viene iscritto // a un corso di laurea, quindi lo aggiungo alla lista degli studenti iscritti corsoLaurea.AggiungiMatricola(this); }
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); }