TENTAMEN. Objektorienterade applikationer CHALMERS. 2018/2019, lp 3 DAT055. Uno Holmer

Relevanta dokument
Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (6) Tentamen

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 7 (7) Tentamen

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

DAI2 (TIDAL) + I2 (TKIEK)

CHALMERS TENTAMEN. 2018/2019, lp 1 DAT050. Uno Holmer

Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (9) Tentamen

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

CHALMERS TENTAMEN. 2012/2013, lp 1 DAT042. Uno Holmer. Java API (utdelas av skrivningsvakten) Erland Holmström tel besöker tentamen

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

TKIEK-2, TKTFY-3, TKTEM-3

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

CHALMERS TENTAMEN. 2013/2014, lp 2 DAT050. Uno Holmer. Java API (bifogas tesen) Uno Holmer tel besöker tentamen ca kl samt ca 11.

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

TENTAMEN: Objektorienterad programutveckling, fk. Läs detta! Uppgifterna är inte ordnade efter svårighetsgrad.

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

TENTAMEN: Objektorienterad programmering. Läs detta! Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN: Objektorienterad programutveckling, fk. Läs detta! Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

Tentamen i Objektorienterad programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Lösningsförslag till tentamen

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Objektorienterad programutveckling, fk

Properties. Användbara metoder som kan anropas i propertychanged:

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

PROGRAMMERINGSTEKNIK TIN212

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Tentamen i Objektorienterad modellering och design Helsingborg

TENTAMEN: Objektorienterad programmering. Läs detta! Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen.

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

DAT043 Objektorienterad Programmering

Lösningar för tenta 3 DAT043,

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

DEL 1 För att få godkänt på tentan (betyg 3) måste du lösa minst fem av sju uppgifter i denna del.

Föreläsning 3: Händelsestyrda program och användargränssnitt

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.

OOP Tentamen

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

DAT043 - Föreläsning 7

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

Algoritmer. Två gränssnitt

Tentamen i Objektorienterad modellering och design

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Lösningar till tentamen i EDAF25

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Lösningsförslag till tentamen

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Tentamen Programmeringsteknik 2 och MN Skrivtid: Inga hjälpmedel.

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA550 DAG: TID: 8:30 12:30

Tentamen, EDAA10 Programmering i Java

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen i Grundläggande programmering STS, åk 1 fredag

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen i Grundläggande programmering STS, åk 1 fredag

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Objektorienterad programutveckling, fk

Transkript:

informationsteknik TENTAMEN KURSNAMN Objektorienterade applikationer PROGRAM: DAI 2 (TIDAL-2) 2018/2019, lp 3 KURSBETECKNING EXAMINATOR DAT055 Uno Holmer TID FÖR TENTAMEN Torsdagen den 21/3 2019 14.00-18.00 HJÄLPMEDEL ANSV LÄRARE Java API delas ut av skrivningsvakten Uno Holmer tel. 772 5730 besöker tentamen ca kl. 15 samt ca 16.30 DATUM FÖR ANSLAG Senast den 12/4 2019 datum för visning meddelas senare ÖVRIG INFORM. Betygsgränser: 3 24p, 4 36p, 5 48p. (max 60p)

Tentamen 1(7) TENTAMEN: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem). Programmen skall skrivas i Java 5, eller senare version, vara indenterade, renskrivna och i övrigt vara utformade enligt de principer som lärts ut i kursen. Det är tillåtet att införa privata hjälpmetoder om det är lämpligt. Onödigt komplicerade lösningar ger poängavdrag. Programkod som finns i tentamenstesen behöver ej upprepas. Givna deklarationer, parameterlistor, etc. får ej ändras, såvida inte annat sägs i uppgiften. Skriv rent dina svar. Oläsliga svar r ä t t a s e j! Skriv inte med rödpenna. Läs igenom tentamenstesen och förbered ev. frågor. I en uppgift som består av flera delar får du använda dig av funktioner klasser etc. från tidigare deluppgifter, även om du inte löst dessa. Lycka till! Version: 2019-03-21 Objektorienterade applikationer, DAT055, DAI2, 18/19, lp 3

Tentamenn 2(7) Uppgift 1 I en klass som ingår i ett grafiskt gränssnitt finns deklarationerna: public class Gui { private JFrame frame; private int temperature; private int windspeed; private int airpressure; private JTextField tempfield; private JTextField windfield; private JTextField pressurefield; private JButton updatebutton; private void makeframe( () { /// ToDo Skriv färdigt metoden makeframe, den skall visa ettt fönster somm exemplett till vänsterr visar. När man trycker på knappen märktt UPDATE skall värdena i de tre heltalsvariablerna visas i motsvarande textfält som det högra exemplet visar: (12 p) Uppgift 2 När man använder slumptalsgeneratorer, t.ex. java..util.random, kan det ibland vara viktigt att det bara finns ett sådant objekt per applikation. Tillämpa designmönstret Singleton och konstruera klassen SingletonRandom. Ett (det enda) objekt avv klassen skall innehålla ett Random-objekt. Du behöver inte ta med (delegera) alla metoderr som finns i Random utan det räcker om din klasss har metoden public int nextint(int bound); Klassen skall vara säker att använda i ett flertrådat program. (10 p) Version: 2019-03-21 Objektorienterade applikationer, DAT055, DAI2, 18/19, lp 3

Tentamenn 3(7) Introduktion till uppgifterna 3-6 De följande uppgifterna är relaterade menn kan lösas var för sig. Om du intee löst en uppgift måste du ändå förstå vad den går ut på för att kunna använda det tänkta resultatet i en senare uppgift. Uppgift 3 Studera följande gränssnitt: public interface PropertyChange { void addpropertychangelistener(propertychangelistener li); public interface StorableTable extends Serializable,PropertyChange { String get(string key); String put(string value) ); En StorableTable är en tabell (map) som kan skickas på en ström s och t..ex. sparas i en fil. Dessutom är sådana tabeller observerbaraa enligt designmönstrett observer. Så snart en tabell ändras signalerar den detta tilll sina observatörer. Tabellerna är begränsade b till att enbart kunna lagra textsträngar. I denna uppgift skall du konstruera klassen SecureTable som implementerar gränssnittet. När put(x) anropas skall x sparas i tabellen och en för tabellen unik slumpmässig nyckell ( lösenord ) i form av en siffersträng returneras. Ex. put( hemlig text ) returnerar 4386374654 och då returnerar förståss get( 4386374654 )värdet hemlig text. Fel nyckel ger null i retur. Använd en HashMap i implementeringen. Ett objekt av klassen skall kunna användas av flera parallella exekveringstrådarr på ett säkert sätt. (8 p) Version: 2019-03-21 Objektorienterade applikationer, DAT055, DAI2, 18/19, lp 3

Tentamen 4(7) Uppgift 4 För att kunna lagra tabellerna i uppgift 3 på filer, och läsa in dem från filer behövs en utility - klass: public class FileHandler { public static void savetable(string filename,storabletable table) throws IOException { // ToDo public static StorableTable loadtable(string filename) throws IOException,ClassNotFoundException { // ToDo Om det i loadtable visar sig att filnamnet inte är namnet på en existerande fil skall null returneras av metoden. Använd lämplig IO-klass för att testa detta. (6 p) En tabellserver I de följande två uppgifterna skall två komponenter till en enkel server konstrueras så att flera klienter kan koppla upp sig och använda en gemensam lagringsbar tabell. (Att programmera klienten ingår inte i uppgiften.) För att fjärranropa tabellmetoder skickar klienten kolonseparerade strängar på formen <kommando>:<parameter> och tar sen emot returvärden från servern. Ex: Klienten skickar Servern returnerar PUT:tentafråga 770548734478 GET:770548734478 tentafråga GET:770548734479 PASSWORD ERROR PET:tentafråga UNKNOWN COMMAND GUT:770548734478 UNKNOWN COMMAND o.s.v. Lösningen skall baseras på Javas Client/Server-klasser, inte på datagram. Uppgift 5 Konstruera trådklassen public class ClientHandler implements Runnable { public ClientHandler(Socket sock,storabletable table) som sköter kommunikationen med en klient via socketen sock enligt ovan. Inkomna PUT- och GET-komandon skall översättas till metodanrop på table och resultat sändas till klienten. Undantag som uppkommer vid kommunikationen skall tolkas som att klienten vill avsluta dialogen och då skall tråden avslutas och meddelandet Client disconnected skrivas ut. Tips: Eftersom kommunikationen sker med strängar kan du använda Scanner och Printwriter, se API:et. (12 p) Version: 2019-03-21 Objektorienterade applikationer, DAT055, DAI2, 18/19, lp 3

Tentamen 5(7) Uppgift 6 Konstruera en serverklass som lyssnar efter klientanslutningar och för varje klient delegerar kommunikationen med klienten till ett objekt av typen ClientHandler (se uppgift 5). public class Server implements PropertyChangeListener Klassen skall ha en main-metod och ta emot portnumret via metodens argumentlista. Servern skall hantera en tabell på följande sätt. Först undersöks om det finns en tabell lagrad i en fil (se uppgift 4). I så fall läses den in, annars skapas en SecureTable (se uppgift 3). Servern skall vara observatör på tabellen och spara den i filen varje gång den ändrats. Alla undantag betraktas som fatala och skall terminera servern. (12 p) Version: 2019-03-21 Objektorienterade applikationer, DAT055, DAI2, 18/19, lp 3