Programma del corso di
Laboratorio di Informatica
per il CdL in Ingegneria Elettronica e delle Telecomunicazioni
(3 CFU – DM 270)
Programmazione Orientata agli Oggetti (Lezioni 2 ore)
 Ciclo di vita del software
 Paradigma di programmazione orientata agli oggetti
 Modularità e incapsulamento
 Riusabilità: ereditarietà, funzioni virtuali e polimorfismo
Classi (Lezioni 4 ore)
 Definizione di classi e sottoclassi, scopi (interne e locali), componenti (static, const), funzioni
 Costruttori e distruttori
 Inizializzazione di oggetti
 Classi generiche: template di classi
 Derivazioni di classi: public, protected, private
 Derivazioni multipla di classi: costruttori e distruttori, classi base virtuale
Strutture dati astratte - ADT (Lezioni 2 ore)
 Tipi di data astratto: array di oggetti, stringhe, lista, pila, coda, albero
 Strutture e Union
 Allocazione dinamica della memoria
 Tabelle Hash: aperte e chiuse
 Operazione di Rehash
Il Linguaggio C++ (Esercitazioni 16 ore)
 Tipi di dati astratti, ereditarietà, identità dell’oggetto, polimorfismo
 Librerie standard di I/O
 Classi: IOS, Ostream, Istream (stream di stringhe)
 Overloading: operatori di inserzione ed estrazione
Sviluppo di Programmi in C++ concordati col docente di laboratorio* (Laboratorio 24 ore)
 I data-base: Modello e diagramma Entità/Relazione
 GUI: Interfaccia Grafica Utente
 Gestione di un elenco telefonico
 Gestione di un data-base di studenti o dipendenti
 Gestione di un magazzino (ricambi, supermercato, farmacia, abbigliamento, videotape, …)
TESTI CONSIGLIATI
 Aguilar “Fondamenti di programmazione in C++, Algoritmi, strutture dati e oggetti”, McGraw-Hill
 Crivellari “Programmazione ad oggetti e tipi di dati astratti in C++”, FrancoAngeli Editore (facoltativo)
 Padovani “Introduzione alla Programmazione in C++”, FrancoAngeli Editore (facoltativo)
N.B. L’esame consiste nella discussione di un elaborato concordato col docente; può essere sostenuto in uno degli
appelli orali fissati per l’esame di Fondamenti di Informatica.
Lo studente, dopo aver concordato l’applicazione da sviluppare, dovrà fornire:
1. Specifiche dettagliate dell’applicazione
2. Progetto: Flow-chart complessivo e dei vari moduli da implementare (la ricerca dicotomica deve essere parte
essenziale del processo; il progetto può essere strutturato anche con l’uso di liste concatenate)
3. Sviluppo: Codice sorgente ben commentato del programma e dei vari moduli
4. Implementazione dell’applicativo comprendente GUI (QTCreator)
5. Collaudo: Definizione delle classi di equivalenza di input utili alla verifica di correttezza e test dei moduli (il
metodo delle coperture è riportato sul testo di Mirizzi-Mastronardi)
Passi richiesti dal programma:
1. Creazione del DB
2. Inserimento di record (accodamento)
3. Ricerca/Stampa di record (anche su più campi in modo dicotomico mediante file-index)
4. Modifica/Aggiornamento di record
5. Eliminazione di record
* Ing. Massimiliano Dellisanti Fabiano Vilardi ([email protected])