Prova d Esame 07.04.2006 Compito B



Похожие документы
Prova d Esame Compito A

Algoritmi di Ricerca. Esempi di programmi Java

Registratori di Cassa

Esercitazione n 4. Obiettivi

Test di unità con JUnit4

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

LA GESTIONE DEI VEICOLI AZIENDALI CON MICROSOFT OUTLOOK

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

SAPIENZA Università di Roma, Facoltà di Ingegneria

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

13. Chain of Responsibility

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Definizione di classi con array di oggetti

GESTIONE DEI PROCESSI

La struttura dati ad albero binario

EasyPrint v4.15. Gadget e calendari. Manuale Utente

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Prova di Laboratorio di Programmazione

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

FastPRESS WEB. In questa schermata è possibile scegliere il tipo di consultazione che si desidera effettuare.

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Corso sul linguaggio Java

Java: Compilatore e Interprete

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

ELENCO CLIENTI FORNITORI Patch1

Guida. Macchina Scratch

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Java: la libreria delle classi

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

2 - Modifica Annulla Selezione finestra. S.C.S. - survey CAD system FIGURA 2.1

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Appunti di Informatica 1

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

MANUALE PARCELLA FACILE PLUS INDICE

Il foglio elettronico. Excel PARTE

Definire gli attributi dei blocchi

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

Esercizi della lezione 5 di Java

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

AD HOC Servizi alla Persona

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Il sistema C.R.M. / E.R.M.

Scheda operativa Versione rif c00. Libro Inventari

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Integrazione InfiniteCRM - MailUp

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Tale attività non è descritta in questa dispensa

Struttura di un programma Java

UML Diagrammi delle classi. UML Diagramma classi 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Gestione delle Eccezioni

7.4 Estrazione di materiale dal web

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

LeggiCATASTO. Le due funzionalità principali sono:

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Assessorato alla Sanità ARPA. Anagrafe Regionale dei Prodotti Amministrabili. Manuale Utente 1.0.0

Gestione e allineamento delle Giacenze

Archivio CD. Fondamenti di Programmazione

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

ACO Archiviazione Elettronica e Conservazione sostitutiva

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Compilatore risorse display grafico LCD serie IEC-line

Progettazione : Design Pattern Creazionali

Транскрипт:

DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public General(int startval) { n = startval; public String getsaluto() { return s1; public int incvalue() { return n++; public class Special extends General { private int v; public Special() { if (n!= 0) v = n; else v = 0; public int getvalue() { return v + s1.length(); public void raisevalue() { v = v + n; public String personal(string name) { if (name!= null) return s1 + " " + name; return s1 + " no name"; public class Main { public static void main(string[] args) { String s1 = new String("Ciao"); Special xs = new Special(); General xg = new General(); if (s1 == General.s1) General.s1 = "Hello"; while (xs.getvalue() < 14) { System.out.println(xG.getSaluto() + "-" + xs.incvalue()); xs.raisevalue(); System.out.println(xS.personal("")); s1 = "cheers"; if (s1!= General.s1) System.out.println(xS.personal("62")); else System.out.println(xS.personal("64")); public class CustomException extends Exception { public CustomException(String arg0) { super(arg0); public String getmessage(string note) { return getmessage() + note; --------------------------------------------------------------------- import java.io.ioexception; public class Job { public static Eprom source = null; private int cv; public Job(int initialpower) { cv = initialpower; public void dojob() throws CustomException,IOException { if (source == null) throw new IOException(); try { if (!source.readdata(cv)) throw new CustomException("No Power"); catch (IOException e) { source.start(); throw new CustomException ("Eprom Started"); public void addpower(int delta) { cv = cv + delta; public class Eprom { private boolean setup = true; String model; public Eprom(String m) { model = m; public void start() throws CustomException { if (setup) throw new CustomException("(Eprom running)"); setup = true; public boolean readdata(int v) throws java.io.ioexception { if (!setup) throw new java.io.ioexception("setup required: "+model); if (v < 208) return false; else return true; -------------------------------------------------------------------------- public class Main { public static void main(string[] args) { Job action = new Job(200); boolean again = true; while (again) { try { action.dojob(); again = false; catch (CustomException e) { System.out.println(e.getMessage()); action.addpower(5); catch (java.io.ioexception e) { Job.source = new Eprom("X25"); System.out.println("Eprom X25 Ready");

Si realizzi un sistema software per la gestione di un officina per veicoli. Esistono due tipi di veicoli, le auto e le moto, ognuno dei quali è caratterizzato dal nome del modello. Più nel dettaglio, ogni auto è caratterizzata dal tipo di alimentazione (benzina, diesel, gpl, metano), dal numero di chilometri percorsi e dal numero di tagliandi eseguiti sull auto stessa. Sono previsti inoltre due casi particolari di auto: le auto sportive, che possono essere alimentate solo a benzina e per le quali è specificata la cilindrata del motore (un intero positivo che indica i centimetri cubi), e i suv (sport utility vehicle), ai quali è invece associato il tipo di trazione (integrale, trazione anteriore, trazione posteriore). Ogni moto, invece, ha come caratteristiche il peso (un intero positivo che indica il numero di kg), la cilindrata del motore (un intero positivo che indica i centimetri cubi) ed una serie di regolazioni, ciascuna delle quali è rappresentata da un campo che può assumere un valore numerico intero compreso tra un valore minimo (considerato pari a 5) ed un valore massimo (considerato pari a 9). Una moto può essere o un motard o una moto stradale. Nel primo caso (motard), la moto ha 5 regolazioni ed un campo che specifica la marca delle gomme; nel secondo (moto stradale), c è un campo che specifica se la moto ha in dotazione i ricambi per la pista (il kit racing) o meno e sono previste 9 regolazioni. L officina è costituita da un meccanico per le auto ed uno per le moto e gestisce una lista di veicoli in attesa di essere riparati. Tale coda può contenere al massimo 18 unità. Le riparazioni che l officina deve essere in grado di fare sono il tagliando per suv e auto sportive e l impostazione delle regolazioni per i motard. Ogni meccanico che lavora nell officina è caratterizzato dal nome. In particolare, il meccanico delle auto deve essere in grado di eseguire il tagliando ad un auto specificata, mentre il meccanico delle moto deve poter impostare una serie di regolazioni alla moto specificata. DOMANDA 2 (2 punti) Il candidato modelli il sistema software specificato nel seguito individuando i diversi componenti che lo costituiscono e le relazioni fra di essi (ereditarietà/uso).

DOMANDA 3 (3 punti) Con riferimento al sistema descritto nella domanda 2, si implementino la seguente classe ed i metodi specificati, definendo se necessario il costruttore opportuno. Si verifichi poi il corretto funzionamento dell applicazione eseguendo il main implementato nella classe TestOfficina. Classe Officina: modella l officina public void tagliandiautosportive() fa eseguire al meccanico auto dell officina il tagliando alle sole auto sportive presenti nella coda dei veicoli associata all officina. Ogni auto sportiva che, dopo la verifica e l eventuale fase di esecuzione del tagliando, non necessita di ulteriori tagliandi, va rimossa dalla coda. public void tagliandisuv() Analogo al metodo precedente ma per i Suv. public void regolazionemotard(string modello, String regolazioni) throws VehicleException cerca il modello specificato come parametro di ingresso tra i veicoli in lista e, in caso sia presente, fa eseguire al meccanico delle moto la regolazione della moto. A regolazione ultimata, il motard va rimosso dalla coda dei veicoli. Se la moto non viene trovata, il metodo stampa un messaggio costituito dal nome della moto cercata seguito dalla stringa : non trovato. public void inserisci(veicolo v) aggiunge un veicolo alla lista dei veicoli in attesa di riparazione. Il numero massimo di veicoli che possono essere presenti in coda è di 18 unità. Se si cerca di inserire un veicolo quando la coda è piena, deve essere stampato il messaggio Coda Piena. NOTA: non si definisca alcun package!

DOMANDA 4 (10 punti) Si realizzi un interfaccia grafica per la gestione dell analisi delle rilevazioni cronometriche di una gara di SuperBike contenute nel file di testo di nome datab.txt. Tale file è organizzato per righe secondo la seguente struttura: una linea formata dalla stringa pilota: seguita dal nome del pilota; 21 linee relative a 21 giri della gara (dal secondo al ventiduesimo), ognuna delle quali è così strutturata: lapnum <b> vel <b> s1 <b> s2 <b> s3 <b> s4 <b> tot dove lapnum è il numero del giro; vel è la massima velocità raggiunta nel giro; s1, s2, s3, s4 sono le rilevazioni cronometriche (in secondi) sui vari settori che compongono il giro (sommando tali tempi si ottiene il tempo totale); tot è il tempo totale di percorrenza del giro e <b> è un carattere di spazio; una linea vuota. Tale struttura si ripete per i diversi piloti. L interfaccia deve comprendere una finestra di nome Filtro ed un pannello, costituito da due etichette (di nome Pilota e Miglior Giro ), tre campi di testo (di cui uno, editabile, inizializzato con la stringa inserire nome, e gli altri due non editabili) e tre bottoni (di nome Cerca, Salva e Clear ) come mostrato in figura 1. Figura 1 Come indicato in figura 1, la prima casella di testo deve permettere all utente di inserire il nome del pilota. La ricerca è avviata premendo il bottone Cerca e produce (vedi figura 2): nella casella di testo non editabile sotto l etichetta Miglior Tempo : il miglior tempo sul giro (in minuti e secondi) e il numero del giro in cui è stato ottenuto, oppure la stringa NOT FOUND se il pilota non è tra quelli presenti nel file datab.txt nella casella di testo non editabile sotto il bottone Cerca : il valore della velocità massime raggiunta nel miglior giro; oppure la stringa NOT FOUND se il nome del pilota non è nel file data.txt Figura 2

Ogni pressione del bottone Clear riporta l interfaccia alla visualizzazione iniziale (figura 1). Ogni pressione del bottone Salva deve aggiungere ad un file (di nome results.txt) le informazioni riassuntive sul pilota visualizzato dall interfaccia al momento della pressione del tasto. In particolare, i dati nel file results.txt sono strutturati secondo il formato seguente: <nome del pilota> Miglior giro: <miglior tempo sul giro e relativo numero del giro> Massima velocità sul giro: <velocità massima raggiunta nel miglior giro>. Ad esempio, se le informazioni visualizzate sono quelle in figura 2, nel file verranno aggiunte le seguenti: corser troy Miglior giro: 1'33.165 (2) Massima velocità sul giro: 306,3. Nel caso le caselle di testo contengano la stringa NOT FOUND oppure sia stato premuto il tasto Clear e quindi non è visualizzato niente, non deve essere aggiunto alcunché al file. Suggerimento per l interfaccia grafica: per favorire la disposizione dei componenti nel pannello, è possibile specificare la seguente linea di codice prima di procedere con l aggiunta di etichette di testo e bottoni setlayout(new GridLayout(2, 4, 5, 5)); che imposta per il pannello una griglia di 2 righe e 4 colonne. L inserimento dei componenti parte dalla casella in alto a sinistra della griglia e procede per righe.

DOMANDA 5 (punti 7) Si implementi una struttura ad albero che rappresenta un albero genealogico. L albero contiene il nome di ciascuno dei membri della genealogia. Ogni elemento dell albero può avere al massimo 3 discendenti. Deve essere possibile: inserire il discendente di un avo, con le opportune verifiche sull esistenza dell avo e sulla possibilità effettiva di aggiungervi un discendente cercare un elemento e stampare il nome del padre. Si realizzi poi una classe che, sfruttando le funzionalità implementate, costruisce l albero in figura 3 e stampa il nome del genitore di X2 P Q R S T U V W X Y Z X1 X2 X3 Figura 3 Nota: non è consentito l uso delle classi del Java Collection Framework o di classi del JDK contenenti implementazioni di strutture ad albero. L implementazione dell albero è parte integrante dell esercizio