Högskolan Dalarna sid 1 av 5 Data-sektionen Hans-Edy Mårtensson

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

Högskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT / 42

Arv. Objektorienterad och komponentbaserad programmering

TENTAMEN CD5250. Objektorienterad programutveckling med C++, 5p. Datum: , Tid: 14:00-19:00

Tentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr,

Det objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med.

Introduktion till arv

Övning 4. Arv och andra relationer

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap

TDDC76 - Programmering och Datastrukturer

TENTAMEN OOP

OOP Tenta

TDDC76 - Programmering och Datastrukturer

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

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

Tillämpad programmering

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 19.

DD2387 Programsystemkonstruktion med C++ Tentamen 2

TDDC76 Programmering och datastrukturer

Tentamen EDAF30 Programmering i C++

Tentamen Objektorienterad Programutveckling med C++

Polymorfi. Objektorienterad och komponentbaserad programmering

OOP Omtenta

1. Klass med en dynamiskt allokerad variabel, definitionsfilen-del Klass med en dynamiskt allokerad variabel, inkluderingsfilen.

OOP Omtenta

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

OOP Omtenta

OOP Exempel Tentamen 2007

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

Malmö högskola 2007/2008 Teknik och samhälle

5 Arv och dynamisk bindning FIGUR

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

TDIU01 Programmering i C++

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering.


OOP Tentamen

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

TDIU01 - Programmering i C++, grundkurs

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning:

Högskolan Dalarna sid 1 av 7 Data-sektionen Hans-Edy Mårtensson

Dynamisk bindning och polymorfism

FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I

1 Klasser och objektorientering Vad är objektorientering?

DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00

TDIU01 - Programmering i C++, grundkurs

OOP Objekt-orienterad programmering

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

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

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

C++ Objektorientering - Klasser. Eric Elfving

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

TDIU01 (725G67) - Programmering i C++, grundkurs

TENTAMEN OOP

OOP Tenta

Malmö högskola 2007/2008 Teknik och samhälle

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

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

TENTAMEN: Objektorienterad programutveckling. Läs detta! Skriv ditt namn och personnummer på varje blad (så att vi inte slarvar bort dem).

Tentamen i Grundläggande programmering STS, åk 1 lördag

OOP Tentamen

PROGRAMMERINGSTEKNIK TIN212

Objektorientering - Arv och polymorfi

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Grundläggande programmering med C# 7,5 högskolepoäng

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

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Tentamen i Programmeringsteknik I, ES,

Programsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010

Tentamen i Grundläggande Programvaruutveckling, TDA548

Programsystemkonstruktion med C++

Tentamen EDAF30 Programmering i C++

Tentamen EDAF30 Programmering i C++

Klasshierarkier - repetition

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Programmering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

TDIU20 - Objektorienterad programmering i c++ - föreläsning 6

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Programsystem konstruktion med C++ (2D1387) Innehåll. övning 2 klasser och arv

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

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

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

SP:PROG3 HT12 Tenta

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

OOP Objekt-orienterad programmering

Tentamen i Programmeringsteknik I

Transkript:

Högskolan Dalarna sid 1 av 5 ÖVNINGSTENTAMEN I PROGRAMUTVECKLINGSMETODIK, DEL 2 för SY1, Läsperiod 4, 1999 Hjälpmedel: Inga hjälpmedel är tillåtna Max: 60 poäng. Betygsgränser: betyg G - ca 36p, betyg VG - ca 48p Skriv tydliga och kortfattade svar! 1. Begrepp. (10p) a) Vilken är skillnaden mellan den direkta och indirekta medlemsoperatorn? (2p) b) Redogör för vilka olika typer av åtkomlighet som en medlemsfunktion kan ha? (2p) c) Hur skapar man en datamedlem som är konstant. (2p) d) Vad är skillnaden mellan en grupp med kryssrutor och en grupp med radioknappar? (2p) e) I objektorinterad analys förekommer bekreppet "aktör". Förklara detta begrepp. (2p) 2.Klassdiagram (10p) Följande klassdiagram är givet. Förare 1 1 Bil lyssna(motorljud) starta() stoppa() Visa i ett interaktionsdiagram hur föraren Kalle startar sin gamla Ford och stoppar den strax därefter på grund av att den låter så illa.

Högskolan Dalarna sid 2 av 5 3. Klasser och arv (10p) Följande klasser är givna: #include <string.h> const int STRLENGD = 80; class Person Person(char *, char *); void skrivperson() cout << "Namn: " << namn << "Personnr: " << personnr << endl; char namn[strlengd] ; char personnr[strlengd]; ; class Kurs Kurs(char *); const char *getname()return kursnamn; char kursnamn[strlengd] ; ; class Elev : public Person Elev(char *, char *, char *); void skrivelev() skrivperson(); cout << "Kurs: " << fysik.getname() << endl; Kurs fysik; ; int main (void) Elev kalle("kalle", "123456-7890", "Dynamik"); kalle.skrivperson(); kalle.skrivelev(); a) Skriv de tre konstruktorer som behövs för att programmet skall fungera. (6p) b) Hur påverkas programmet om man byter "class Elev : public Person" mot "class Elev : protected Person". (2p) c) Hur påverkas programmet om man byter "class Elev : public Person" mot "class Elev : private Person". (2p)

Högskolan Dalarna sid 3 av 5 4. Polymorfi (10p) Den här uppgiften består av tre deluppgifter. I deluppgifterna används följande kod: #include <string.h> class Person Person(char *namnet, long hemtelefon, int aldern) strcpy(namn, namnet); hemnr = hemtelefon; alder = aldern; int getalder()return alder; virtual long gettelnr()=0; char namn[80]; long hemnr; int alder; ; class Arbetare : public Person Arbetare(char *namnet, long hemtelefon, int aldern, long jobbtelefon) : Person(namnet, hemtelefon, aldern) jobbnr = jobbtelefon; long gettelnr()return jobbnr; long jobbnr; ; class Vikarie : public Arbetare Vikarie(char *namnet, long hemtelefon, int aldern, long jobbtelefon, bool jobbar) : Arbetare(namnet, hemtelefon, aldern, jobbtelefon), arbetar(jobbar) long gettelnr() if (arbetar) return jobbnr; else return hemnr; int getalder()return 27; bool arbetar; ;

Högskolan Dalarna sid 4 av 5 a) Följande main-funktion innehåller tre fel. Beskriv dessa fel (3p) Person lisa = new Person("Lisa Karlsson", 11111, 10); Arbetare *erik = new Arbetare("Erik Nilsson", 22222, 20, 12345); Arbetare *karin = new Vikarie("Karin Andersson", 33333, 30, 56789, false); cout << "Namn: " << erik->getnamn() << endl; cout << "Telefon: " << erik->gettelnr() << endl; cout << "Ålder: " << erik->alder << endl; b) Vilken utskrift ger följande main-funktion. (3p) Person *individ[2]; Arbetare *knegare[2]; knegare[0] = new Arbetare("Niklas Jonsson", 54321, 30, 12345); knegare[1] = new Vikarie("Urban Jansson", 99999, 35, 11111, true); individ[0] = knegare[0]; individ[1] = knegare[1]; for (int i=0; i<2; i++) cout << individ[i]->getalder() << endl; for (int i=0; i<2; i++) cout << knegare[i]->gettelnr() << endl; c) Komplettera uppgiftens ursprungliga kod så att följande main-funktion går att köra. (3p) All kod behöver inte upprepas, endast förändringar i koden behöver redovisas. Arbetare *stina = new Arbetare("Stina Flink", 54321, 40, 12345); Arbetare *urban = new Vikarie("Urban Rask", 99999, 45, 11111, true); stina->getinfo(); urban->getinfo(); Följande utskrift ska erhållas: Stina Flink har telefonnummer 54321 hem och 12345 till arbetet. Urban Rask arbetar i dag.

Högskolan Dalarna sid 5 av 5 5. Analys och Design (10p) Vid objektorienterad analys och design förekommer olika typer av relationer för att beskriva hur olika objekt eller klasser förhåller sig till varandra. Ge en kortfattad förklaring för varje begrepp i deluppgift "a" till och med "e" och visa hur de olika relationer ritas. a) Beroende (2p) b) Association (2p) c) Aggregation (2p) d) Komposition (2p) e) Generalisering (2p) 6. Grafiska användargränssnitt (10p) a) Vad är en meddelanderuta? (2p) b) Berätta om hur man kan åskådliggöra att en komponent för tillfället inte är användbar, nämn tre olika sätt att göra detta på. (3p) c) Förklara vad en dialogmodell är. (5p)