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])