Prova d Esame 07.04.2006 Compito A



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

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:

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

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

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

Algoritmi di Ricerca. Esempi di programmi Java

Esercitazione n 4. Obiettivi

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

Test di unità con JUnit4

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

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

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

Scheda operativa Versione rif c00. Libro Inventari

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Java: la libreria delle classi

LA GESTIONE DEI VEICOLI AZIENDALI CON MICROSOFT OUTLOOK

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

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

Ottava Esercitazione. introduzione ai thread java mutua esclusione

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Definizione di classi con array di oggetti

EasyPrint v4.15. Gadget e calendari. Manuale Utente

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

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

La struttura dati ad albero binario

SAPIENZA Università di Roma, Facoltà di Ingegneria

Realizzazione di una classe con un associazione

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

20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

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

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

13. Chain of Responsibility

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

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

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

Esercizi della lezione 5 di Java

OSSERVATORIO DEL TURISMO GUIDA AL SERVIZIO

5.2 UTILIZZO DELL APPLICAZIONE

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

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Registratori di Cassa

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

. 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

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

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

UML Diagrammi delle classi. UML Diagramma classi 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Corso sul linguaggio Java

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

CARICAMENTO IN ASCOT DEL FASCICOLO ELETTORALE ELETTRONICO

Supermarket Progetto di Programmazione Febbraio 2010

ELENCO CLIENTI FORNITORI Patch1

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

Prova di Laboratorio di Programmazione

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Manuale di Aggiornamento BOLLETTINO. Rel DATALOG Soluzioni Integrate a 32 Bit

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

1. Le macro in Access 2000/2003

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

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

RMI. Java RMI RMI. G. Prencipe

Esercizio 1: Gara di MotoGP

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

Java: Compilatore e Interprete

Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

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

Punto Print Il programma per stampare. Documentazione Tecnica

Tale attività non è descritta in questa dispensa

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Appunti di Informatica 1

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

Integrazione InfiniteCRM - MailUp

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

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

Accreditamento Soggetti Formatori in materia di Sicurezza sul Lavoro

Gestione e allineamento delle Giacenze

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

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

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Gestione delle Eccezioni

appunti delle lezioni Architetture client/server: applicazioni client

Versione 7.0 Taglie e Colori. Negozio Facile

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

[5.0.1H4/ 10] Ordini Clienti: Definizione piano di fatturazione

Cifratura simmetrica

OSSERVATORIO REGIONALE CONTRATTI PUBBLICI DI LAVORI, SERVIZI E FORNITURE

Транскрипт:

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 = 1; 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(5); if (s1 == General.s1) General.s1 = "Hello"; while (xs.getvalue() < 8) { System.out.println(xG.incValue() + "-" + xs.getsaluto()); xs.raisevalue(); System.out.println(xS.personal("")); s1="hello"; if (s1 == General.s1) System.out.println(xS.personal("26")); else System.out.println(xS.personal("46")); public class CustomException extends Exception { public CustomException(String arg0) { super(arg0); public String getmessage(string prefix) { return prefix+ " " + getmessage(); --------------------------------------------------------------------- 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 ("Low 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=false; 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("no setup"); if (v < 211) 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("Job:")); action.addpower(5); catch (java.io.ioexception e) { Job.source = new Eprom(); System.out.println("Eprom 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. In aggiunta, sono previsti due ulteriori 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 zero) ed un valore massimo (considerato pari a 5). Una moto può essere o una moto da cross o una moto stradale. Nel primo caso (moto da cross), la moto ha 4 regolazioni ed un campo che specifica se la moto è omologata o meno; nel secondo (moto stradale), c è un campo che specifica se la moto è naked (cioè senza carenatura) o meno e il numero di regolazioni è pari a 7 nel caso di moto naked o pari a 10 nel caso di moto non naked. L officina è costituita da un meccanico per le auto ed uno per le moto e gestisce una coda di veicoli in attesa di essere riparati. Tale coda può contenere al massimo 16 unità. Le riparazioni che l officina deve essere in grado di fare sono il tagliando per le auto e l impostazione delle regolazioni per le moto. Ogni meccanico che lavora nell officina è caratterizzato dal nome. In particolare, il meccanico delle auto deve essere in grado di eseguire il tagliando ad una qualunque auto (auto, suv, auto sportiva), 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 aggiungiprenotazione(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 16 unità. Se si cerca di inserire un veicolo quando la coda è piena, deve essere stampato il messaggio Coda Piena. public void tagliandiauto() fa eseguire al meccanico auto dell officina il tagliando alle auto nella coda dei veicoli associata all officina. Ogni auto che, dopo la verifica e l eventuale fase di esecuzione del tagliando, non necessita di ulteriori tagliandi, va rimossa dalla coda. public void regolazionemotocross(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, la moto da cross va rimossa 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 regolazionemotostradali(string modello, String regolazioni) throws VehicleException Analogo al metodo precedente ma per le moto stradali. 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 MotoGP contenute nel file di testo di nome dataa.txt. Tale file è organizzato per righe secondo la seguente struttura: una linea formata dalla stringa nome: seguita dal nome del pilota; 27 linee relative ai 27 giri della gara, ognuna delle quali è così costituita: ngiro <sp> tempo <sp> i1 <sp> i2 <sp> i3 <sp> i4 <sp> speed dove ngiro è il numero del giro; tempo è il tempo totale di percorrenza del giro; i1, i2, i3, i4 sono le rilevazioni cronometriche intermedie (in secondi) su una porzione del giro (sommando gli intermedi si ottiene il tempo totale); speed è la massima velocità raggiunta nel giro ed <sp> è 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 tre etichette (di nome Rider, Best Lap e Top Speed ), tre campi di testo (di cui uno, editabile, inizializzato con la stringa insert name here, e gli altri due non editabili) e due bottoni (di nome Search e Report ) come mostrato in figura 1. Figura 1 Come indicato in figura 1, la casella di testo in alto a destra deve permettere all utente di inserire il nome del pilota. La ricerca è avviata premendo il bottone Search e produce (vedi figura 2): nella casella di testo non editabile accanto all etichetta Best Lap : 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 dataa.txt nella casella di testo non editabile accanto all etichetta Top Speed: il valor massimo tra le velocità massime relative ai 27 giri; oppure la stringa NOT FOUND se il nome del pilota non è nel file dataa.txt Figura 2

Ogni pressione del bottone Report deve aggiungere ad un file (di nome report.txt) le informazioni riassuntive sul pilota visualizzato dall interfaccia al momento della pressione del tasto. In particolare, i dati nel file report.txt sono strutturati secondo il formato seguente: <nome del pilota> Miglior giro: <miglior tempo sul giro e relativo numero del giro> Massima velocità: <velocità massima ottenuta in gara> ----------------------------- Ad esempio, se le informazioni visualizzate sono quelle in figura 2, nel file verranno aggiunte le seguenti: dani pedrosa Miglior giro: 1'41.297 (4) Massima velocità: 285.9 ----------------------------- Nel caso le caselle di testo contengano la stringa NOT FOUND 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(4, 2, 5, 5)); che imposta per il pannello una griglia di 4 righe e 2 colonne. L inserimento dei componenti nel pannello 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 4 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 stampare l elenco dei discendenti di un avo. Si realizzi poi una classe che, sfruttando le funzionalità implementate, costruisce l albero in figura 3 e stampa tutti i discendenti di B A B C D E F G H I L M N O P 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