Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

Documenti analoghi
Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

ESERCITAZIONE PREPARAZIONE ALL ESAME,

Parte 1: tipi primitivi e istruzioni C

A.A. 2018/2019. AlgoBuild: Introduzione agli Array FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Utilizzo delle Maschere in Microsoft Access

Capitolo 2. Dall idea al codice con UML 2 Esercizi introduttivi

Fondamenti di Informatica T-1. Classi & vettori

1. CODICE DI ATTIVAZIONE 2. PROGRESSIVI DITTA. Nella pagina Varianti occorre inserire i seguenti dati:

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

Prof. Pagani Corrado ESERCITAZIONI JAVA

Campo Minato. in java

Esercitazione Fatturazione

Programmazione con Java

Fondamenti di Informatica T-1. Costruttori Ereditarietà

ESERCITAZIONE PREPARAZIONE ALL ESAME,

INFORMATICA OOP Relazioni tra classi Roberta Gerboni

Implementazione dell albero binario in linguaggio C++

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA (C) ESERCIZI DI COMPRENSIONE

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

2. Modellazione dei casi d uso

SISTEMI INFORMATIVI E DATABASE

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Introduzione alla programmazione

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Ottimizzazione Combinatoria

14Ex-Cap11.qxd :20 Pagina Le macro

Registro voti. Registro elettronico AXIOS. Indice (clicca sul link per aprire la pagina) Registro del docente

Utilizzo delle Maschere in Microsoft Access

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

DEFINIZIONI SMART E RELATIVE ESERCITAZIONI

Laboratorio di Basi di Dati

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Guida all uso del sistema gestionale schede online per attività commerciali e turistiche

Fondamenti di Informatica T-1. Classi e array

Transcript:

Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

ES 02 - ORGANIZER Voglio un gestionale (organizer) che permetta a ciascun dipendente della mia azienda di inserire le attività che svolgono durante la giornata lavorativa. Realizzare il diagramma UML delle classi e [DIFFICILE] un applicazione di test che permetta di istanziare un dipendente, aggiungere alcune attività lavorative e calcolare il numero totale di ore svolte dal dipendente

DIAGRAMMA UML DELLE CLASSI.

STRUTTURA DELL APPLICAZIONE Creo 2 classi con la logica del programma AttivitaLavorativa Dipendente Creo una classe con l interfaccia grafica Jframe AbsoluteLayout Controlli grafici

CLASSE ATTIVITÀ LAVORATIVA Non mi servono funzioni particolari creo attributi richiesti e costruttore standard Decido di tenere gli attributi Public per non dover creare i metodi GET e SET

CLASSE DIPENDENTE Attributi Costruttore che istanzia un vettore di massimo 1000 attività lavorative Metodi per Aggiungere una nuova attività (si noti che le attività vengono memorizzate in sequenza utilizzando la prima posizione vuota con valore null) Calcolare il numero totale di ore

INTERFACCIA GRAFICA tbnome tbcognome tbdatanascita tbluogonascita tbdataattivita tboreattivita tbdesc tboutputore

CLASSE DELL INTERFACCIA GRAFICA Gestione Evento Button CREA DIPENDENTE Leggo i dati dalla text field e passo quanto letto al costruttore per instanziare un nuovo dipendente

CLASSE DELL INTERFACCIA GRAFICA Gestione Evento Button CARICA ATTIVITA Leggo i dati dalle text field e passo quanto letto al costruttore per instanziare una nuova attività lavorativa successivamente aggiungo l attività lavorativa al dipendente richiamando il metodo addattivita Si noti che la variabile miodipendente è un attributo della mia classe che eredita la JFrame e pertanto è visibile ovunque all interno della classe

CLASSE DELL INTERFACCIA GRAFICA Gestione Evento Button CALCOLA NUMERO ORE Semplicemente richiamo il metodo getnumtotore dalla mia variabile locale miodipendente nella quale ho precedentemente caricato i dati del dipendente e delle attività.

ES 03 FLUSSI DI CASSA Voglio un programma a cui può accedere un solo utente per memorizzare e gestire i flussi di cassa di una ditta Realizzare il diagramma UML delle classi e un applicazione di test che permetta di istanziare una transazione, aggiungere l acquisto di servizi alla transazione e calcolare costo totale della transazione stessa Svolgimento analogo a Caso Aziendale 02

ES 04 CATALOGO ONLINE Voglio ampliare il mio sito web, mostrando il mio intero catalogo prodotti con funzioni di ricerca avanzate Realizzare il diagramma UML delle classi e [FACILE] un applicazione di test che permetta di istanziare un prodotto calcolando il prezzo ivato e scontato [DIFFICILE] un applicazione di test che permetta di istanziare un prodotto inserendo alcuni prodotti correlati. Scrivere in output l elenco dei prodotti correlati con il relativo prezzo tra parentesi e il totale se si dovessero acquistare tutti.

DIAGRAMMA UML DELLE CLASSI

STRUTTURA DELL APPLICAZIONE SVOLGIAMO L ESERCIZIO FACILE Creo 2 classi con la logica del programma Prodotto Categoria Creo una classe con l interfaccia grafica Jframe AbsoluteLayout Controlli grafici

CLASSE CATEGORIA L attributo categoriapadre memorizza l eventuale categoria contenitore in modo da gestire un diagramma ad albero delle categorie (non serve per lo svolgimento del nostro esercizio).

CLASSE PRODOTTO Attributi Costruttore che istanzia un vettore di massimo 1000 prodotti correlati Metodi per Aggiungere un nuovo prodotto correlato (non serve per l esercizio facile) Calcolare il prezzo ivato non scontato Calcolare il prezzo scontato (richiamando il metodo per calcolare il prezzo intero) Funzione di stampa dei prodotti correlati (non riportata nelle schermata non serve per l esercizio facile)

INTERFACCIA GRAFICA tbiva tbnome tbprezzo tbsconto tbprezzointero tbprezzofinale

CLASSE DELL INTERFACCIA GRAFICA Gestione Evento Button CALCOLA Leggo i dati dalla text field e passo quanto letto al costruttore per instanziare un nuovo PRODOTTO Una volta instanziato scrivo in output i valori calcolati dai metodi getprezzointeroivato getprezzoscontato

ESECUZIONE DELL APPLICAZIONE

ES 05 GESTIONE MAGAZZINI Voglio un programma per gestire i magazzini della mia azienda che vende materiale al cliente finale in alcuni negozi della mia regione Realizzare il diagramma UML delle classi e [FACILE] un applicazione di test che permetta di istanziare una giacenza prodotto e il valore totale dei pezzi di quel prodotto in giacenza in base al prezzo di vendita e di acquisto [DIFFICILE] un applicazione di test che permetta di istanziare un magazzino ed alcune giacenze di prodotti. Calcolare per il magazzino il numero di prodotti (codice prodotto) ed il numero di pezzi effettivi (considerare che per un codice prodotto possono essere presenti + pezzi).

DIAGRAMMA UML DELLE CLASSI Ogni magazzino ha diverse giacenze (ossia prodotti fisici presenti in magazzino con una certa quantità). Un singolo modello di prodotto (classe Prodotto) può essere presente in tanti magazzini. Modelliamo un magazzino avente un array di giacenze come attributo, ciascuna giacenza conterrà un unico prodotto come attributo

STRUTTURA DELL APPLICAZIONE SVOLGIAMO SIA L ESERCIZIO FACILE SIA QUELLO DIFFICILE Creo 3 classi con la logica del programma Prodotto Giacenza Magazzino Creo una classe con l interfaccia Grafica per ciascuno dei 2 esercizi Jframe AbsoluteLayout Controlli grafici

INTERFACCIA GRAFICA tbnomeprodotto tbivaperc tbprezzovendita tbprezzoacquisto tbvalorevendita tbvaloreacquisto

CLASSE PRODOTTO Recupero apportando minime modifiche la classe prodotto utilizzata nel caso aziendale 04

CLASSE GIACENZA Inserisco un attributo di tipo Prodotto che chiamo prodotto (sfruttando il fatto che il linguaggio sia case sensitive). Implemento i metodi getvaloreacquisto Giacenza e getvalorevenditag iacenza

CLASSE MAGAZZINO Inserisco un array di giacenze. Implemento i metodi che permettono di inserire una nuova gaicenza prodotto in magazzino e il metodo che calcola il numero di pezzi in magazzino

CLASSE DELL INTERFACCIA GRAFICA Gestione Evento Button btcreaprodottogiacenza Leggo i dati dalla text field e passo quanto letto al costruttore per instanziare un nuovo PRODOTTO Appena creato il prodotto, passo il mio prodotto instanziato (insieme alla quantità) al costruttore della mia Giacenza Richiamo i metodi del mio oggetto giacenza per ottenere i risultati

ESECUZIONE DELL APPLICAZIONE

SVOLGIMENTO ESERCIZIO DIFFICILE Cambio solo la classe dell interfaccia grafica perché avevo già preimpostato tutti i metodi necessari

EVENTO BUTTO AGGIUNGI MAGAZZINO Inserisco un attributo di tipo Magazzino di nome miomagazzino

EVENTO BUTTON AGGIUNGI GIACENZA Inserisco la giacenza come prima e alla fine ripulisco le caselle di testo per poter inserire una nuova giacenza

EVENTO BUTTON CALCOLA NUMERO PEZZI Devo solo richiamare il metodo appropriato del mio oggetto Magazzino precedentemente riempito Si noti che tutte le classi GIACENZA PRODOTTO MAGAZZINO sono rimaste invariate e sono riusabili Per risolvere l esercizio semplice non era necessario implemenatare la classe magazzino, ma solo GIACENZA e PRODOTTO

CASO AZIENDALE 10 DA SVOLGERE Voglio un programma che mi gestisca le iscrizioni ai corsi di nuoto che organizza la mia associazione Realizzare il diagramma UML delle classi e [FACILE] un applicazione di test che permetta di istanziare un atleta ed indicare (calcolando l età sulla base dell anno di nascita) lo sconto percentuale che ottiene (un 5% per ogni anno sotto i 18 fino ad un massimo del 40%) [DIFFICILE] un applicazione di test che permetta di istanziare un atleta e i corsi a cui ha partecipato calcolando il numero di corsi e il nmero totale di lezioni di tutti i corsi.

CASO AZIENDALE 11 DA SVOLGERE Voglio un programma che mi gestisca le ordinazioni per la cucina e l emissione di scontrini/fatture del mio ristorante Realizzare il diagramma UML delle classi e [FACILE] un applicazione di test che permetta di istanziare un tavolo ed il totale di piatti ordinati [DIFFICILE] un applicazione di test che permetta di istanziare un tavolo e il conto finale indicando per ciascun piatto o coperto ordinato il numero di ordinazioni (che saranno poi moltiplicate per il relativo prezzo unitario).

ESERCIZI SVOLTI IN CLASSE 1 TOUR DE FRANCE Voglio un programma per la gestione delle tappe di un grande tour ciclistico (giro d'italia tour de France etcx...); della manifestazione interessa il nome, l'anno, l'organizzatore ed il vincitore. Ogni tappa è caratterizzata da numero Km, data, città di partenza, arrivo e un indice di difficoltà altimetrica. Realizzare il diagramma UML delle classi Realizzare una applicazione di test (preferibilmente con interfaccia grafica JFRAME) che mi indichi il numero di tappe ed il numero totale di Km che dovranno essere percorsi in tutto il tour FACOLTATIVO: date due date determinare il numero di tappe e Km che saranno percorsi nell intervallo tra quelle due date

ESERCIZI SVOLTI IN CLASSE 2 GESTIONE FILM Voglio un programma per la gestione del catalogo film della mia videoteca. Di ogni film mi interessa anno di uscita, titolo, genere, nazione di produzione, regista e attori principali. Degli attori mi interessa Nome, cognome data di nascita, luogo di nascita e sesso. Siccome mi interessa sviluppare una statistica sulla percentuale di attori maschi e percentuale di attrici femmine presenti nei film che ho in catalogo, mi interessa sviluppare per ogni film (oltre alla funzione che mi restituisce il numero totale di attori coinvolti) una funzione che mi restituisca la percentuale di attori maschi e conseguentemente la percentuale di attrici femmine. 1. Realizzare il diagramma UML delle classi 2. Realizzare una applicazione di test (preferibilmente con interfaccia grafica JFRAME) che mi indichi il numero di attori del film caricato, e la percentuale di attori maschi e percentuale di attori femmine. 3. FACOLTATIVO: Stampare in sequenza tutti gli attori maschi in una casella di testo e stampare in sequenza tutte le attrici femmine

ESERCIZI SVOLTI IN CLASSE 3 PARTITE DI BASKET Si vogliono memorizzare i dati delle prestazioni nelle partite di campionato dei giocatori di una squadra di basket. Per ogni partita di un giocatore si vogliono memorizzare i seguenti dati al fine di calcolarne la VALUTAZIONE e altre statistiche (i dati possono essere generati anche in maniera random tra gli estremi indicati): tiri da 1 realizzati (tra 0 e 15) tiri da 1 sbagliati (tra 0 e 15) tiri da 2 realizzati (tra 0 e 10) tiri da 2 sbagliati (tra 0 e 10) tiri da 3 realizzati (tra 0 e 8) tiri da 3 sbagliati (tra 0 e 9) assist (tra 0 e 10) rimbalzi (tra 0 e 10) stoppate (tra 0 e 10) stoppate subite (tra 0 e 10) Per ogni prestazione occorre calcolare il totale dei punti realizzati, e la valutazione che è un indice di prestazione così calcolabile: Vengono sommati:punti + assist + rimbalzi + stoppate Sono invece sottratti: tiri sbagliati + stoppate subite

ESERCIZI SVOLTI IN CLASSE 4 GESTIONE VOTI SCOLASTICI Realizzare un programma con interfaccia grafica che gestisca le seguenti classi: Persona Classe Insegnante Studente Valutazione Permettere per la classe la creazione di valutazioni random (scegliendo random anche l'insegnante e lo studente). Creare un metodo per il calcolo in tempo reale della media voti degli studenti della classe

ESERCIZI SVOLTI IN CLASSE 5 REALIZZAZIONE GRAFO Realizzare un programma per la creazione di un grafo che permetta l inserimento dei nodi e il conseguente inserimento degli archi. Gli archi saranno inseriti selezionando il nodo di partenza e di arrivo tramite due combobox Si noti che i nodi che sono attributi dell arco non dovranno essere creati, ma si gestiranno solo i puntatori a nodi già esistenti La classe Nodo dovrà ereditare la classe punto che ha come attributi le 2 (o 3 nello spazio) coordinate Il programma comunicherà in output il numero di nodi e archi creati

ESERCIZI PER CASA 1 GUIDA ONLINE PER UN MUSEO Gestire le classi museo, opera esposta interattiva (che eredita opera), stanza. Ogni opera sarà identificata da un autore, anno etc., Ogni opera interattiva avrà in aggiunta una descrizione per il visitatore, un qrcode che rimanda alla sua pagina web Ogni opera interattiva ha un elenco di opere collegate Si noti che il museo contiene stanze che a loro volte contengono le opere Si realizzi il diagramma UML delle classi e un programma con interfaccia grafica che permetta di inserire stanze e opere e che per ogni stanza (selezionata tramite combobox) indichi quante opere vi sono contenute quante sono le opere collegate alle opere contenute nella stanza nel complesso

ESERCIZI PER CASA 2 CANALE TELEVISVO Gestire la classi CANALE, PROGRAMMA TV, PUNTATA, AUTORI Il canale contiene tanti programmi TV Il programma tv ha un titolo, elencoautori, anno, elencopuntate La puntata ha una durata, una data e orario di messa in onda, una percentuale di sharetv Realizzare il diagramma UML e un programma che permetta di inserire un CANALE e alcuni programmi TV; selezionando il programma TV da combobox sarà poi possibile inserire le puntate con i relativi attributi. Determinare il numero medio di puntate per tutti i programmi e la media di share tra tutte le puntate di tutti i programmi.