Laboratorio di Algoritmi e Strutture Dati + Laboratorio - CdS ICD - a.a. 2012/13
Esercitazione 2 - 8 aprile 2013
Si crei un nuovo progetto per la console in linguaggio C++ denominato Esercitazione2CognomeNome. Successivamente si svolgano i punti seguenti, esclusivamente in linguaggio C++, rispettando la divisione dei file di progetto in file con estensione .cpp e file con estensione .h.
- max: Si realizzi una funzione int max (int, int) che restituisce il massimo dei due numeri passati per valore.
- stampa: Si realizzi
una funzione che chieda all'utente due valori interi e, tramite la funzione max stampi a video il massimo dei due valori.
- scambioPunt: Si realizzi una funzione void scambio (int*, int*) che prenda in ingresso due puntatori ad intero e ne scambi i valori (utilizzando un'opportuna variabile temporanea);
- scambio: Si realizzi una funzione void scambio (int&, int&) che prenda in ingresso due interi, passati per riferimento e li scambi di posto (utilizzando un'opportuna variabile temporanea);
- Aggiornare la funzione stampa in modo che stampi anche i risultati delle chiamate di scambioPunt e scambio.
- data: Si realizzi una classe Data, che contenga al suo interno la classe Orologio creata nell'Esercitazione 1 e in più le informazioni su anno (int), mese (string), giorno (int).
- Si creino i metodi (le funzioni che determinano il comportamento della classe) per l'inserimento dati e la modifica di data e ora.
- Si faccia attenzione a creare le classi Data e Orologio in file distinti e ad effettuare correttamente le inclusioni.
- Si crei un metodo che trasformi un intero in stringa, e in particolare 1-gennaio, 2-febbraio, ..., 12-dicembre, da utilizzare per eventuali conversioni di data.
- Si tenga presente che la definizione di classe Data deve essere scritta nel file .h, mentre per l'implementazione, contenuta nel file .cpp bisogna includere data.h. Inoltre, si può specificare l'implementazioe dei metodi con il risolutore di scope :: Per esempio se si è definito un metodo setData(), appartenente alla classe Data nel file .cpp lo si implementerà inquesto modo: Data::setData(){codice};
- esame: si crei una classe Esame, contenente data (Data), voto (int) e nome (string) di un esame;
- studente: si crei una classe Studente caratterizzato da matricola (string), cognome (string), nome (string), esami [] (Esame);
- Si crei un'istanza di studente valorizzata con i propri dati, incluso gli esami sostenuti finora (Nel caso non ce ne siano si inseriscano gli esami previsti al primo semestre con delle stime di voto e data di superamento ipotizzata).
- Per semplicità si può impostare una dimensione massima al vettore, nota a priori (per esempio 20).
- coda: Si provi a definire una classe Coda, che gestisca un elenco di interi.
- A titolo esemplificativo si ricorda che la coda è una struttura lineare di tipo FIFO che dispone dei seguenti operatori: creaCoda, codaVuota, inCoda, fuoriCoda, leggiCoda.
Il progetto deve avere il cognome dello studente che ha effettuato la prova. Dopo aver finito si crei un file proprioCognome.zip contenente il file di progetto .dev, i file .h e .cpp. Non includere file oggetto (.o) o eseguibili (.exe). Spedire il file zippato al docente facendo attenzione a scrivere nell'oggetto dell'email: "[ADD] Esercitazione 13.04.08 proprioCognome". In alternativa, a fine prova, consegnare al docente il file zippato su una penna USB.
Nota: per proprioCognome si intende il cognome dello studente che ha effettuato la prova.