Systemvetarutbildningen och dataekonomutbildningen



Relevanta dokument
Systemvetarutbildningen och dataekonomutbildningen

Systemvetarutbildningen och dataekonomutbildningen

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

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen OOP

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

OOP Objekt-orienterad programmering

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Tentamen, EDA501 Programmering M L TM W K V

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

Omtentamen i OOSU2, 21 augusti 2014

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

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

Arv. Objektorienterad och komponentbaserad programmering

Laboration 1 - Grunderna för OOP i Java

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

DAT043 - Föreläsning 7

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

PROGRAMMERINGSTEKNIK TIN212

Introduktion till arv

OOP Omtenta

Övningar Dag 2 En första klass

OOP Objekt-orienterad programmering

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

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

Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla

Programmering för språkteknologer II, HT2014. Rum

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Objektorienterad programmering D2

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.

Objektorienterad Systemutveckling 1 (7,5 hp)

Tentamen i Objektorienterad programmering

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

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

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

Objektorienterad programmering

Objektorienterad Programmering (TDDC77)

Föreläsning 9: Arv och UML

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Tentamen, EDAA10 Programmering i Java

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

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

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

OOP Tentamen

Polymorfi. Objektorienterad och komponentbaserad programmering

Underkänt 0-29 poäng Godkänt poäng Väl godkänt poäng. Viktigt! Glöm inte att skriva namn på alla blad du lämnar in.

Komma igång med Eventor

Tentamen. Grundläggande programmering i Java A 5p, DTAA

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Classes och Interfaces, Objects och References, Initialization

Objektorienterad programmering

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

Omtentamen i OOPW, 29 augusti 2013 kl. 9-13

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Objektorientering. Grunderna i OO

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal

Objektorienterad mjukvaruutveckling. 15 högskolepoäng. TentamensKod: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

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

Provmoment: Ladokkod: Tentamen ges för: Omtentamen SMI01A CE12. Namn: (Ifylles av student) Personnummer: (Ifylles av student)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDP Regler

kl Tentaupplägg

Föreläsning 10. ADT:er och datastrukturer

Laboration 13, Arrayer och objekt

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

TENTAMEN I DATAVETENSKAP

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Klasshierarkier. Klasser kan byggas på redan definierade klasser

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Laboration 2: Designmönster

Konstruktion av klasser med klasser

OOP Tenta

Tentamen, EDAA20/EDA501 Programmering

Fortnox. För att aktivera bokföring genom Fortnox för er förening finns dessa krav:

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Transkript:

Visuell Programutveckling med C# Provmoment: Ladokkod: Tentamen ges för: Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2012-02-25 Tid: 09.30 14.30 Hjälpmedel: Inga hjälpmedel 7,5 högskolepoäng Omtentamen NVC01G Systemvetarutbildningen och dataekonomutbildningen Totalt antal poäng på tentamen: 50 poäng För att få respektive betyg krävs: G=25, varav minst 10 poäng på teoridelen och minst 12 poäng på praktikdelen. VG=38, varav minst 10 poäng på teoridelen och minst 12 poäng på praktikdelen. OBS! For att få den praktiska delen (uppgift 5-7) rättad måste studenten ha uppnått minst 10/20 poäng på den teoretiska delen (uppgift 1-4). Om studenten inte uppnår 10 poäng på den teoretiska delen kommer den praktiska delen ej att rättas och 0 poäng kommer därmed att tilldelas på respektive uppgift. Allmänna anvisningar: Skriv dina svar på separata blad Spara alla filer på F: (OBS! Ingen annanstans, då försvinner det) Logga ur datorn när du är klar med tentamen (men stäng INTE av!). Rättningstiden är som längst tre veckor Viktigt! Glöm inte att skriva namn på alla blad du lämnar in. Lycka till! Ansvarig lärare: Anders Gidenstam, Petter Terenius Telefonnummer: 033 435 4214 (5945)

Svarsblankett Namn: (Ifylles av student) Personnummer: (Ifylles av student) Uppgift 1: A B C D R1 R2 R3 R4 Uppgift 2: A B C D a) b) c) d) e) f) Uppgift 3: A B C D a) b) c) d) e) Uppgift 4: A B C D a) b) c) d) e) Observera: Det minimala resultatet på uppgift 1 till 4 är 10 poäng. Om detta inte uppnås, kommer inte uppgift 5 till 7 att beaktas och automatiskt få 0 poäng.

1. Matcha följande definitioner inom objektorientering med motsvarande exempel (samma relation kan förekomma flera gånger). R1: Association (eng. association) R2: Komposition (eng. composition) R3: Aggregat (eng. aggregation) R4: Arv (eng. inheritance) A: En cykel kan vara en trehjuling, en stadscykel eller en mountainbike. B: Ett land har invånare. C: En katt har en svans och fyra tassar. D: En student kan äga mobiler. En mobil har en ägare. (4p)

2. Svara med något av de angivna alternativen på följande frågor. (a) En implicit typomvandling kan göras? A. Till alla klasser i the.net Framework Class Library. B. Från en subklass till en abstrakt superklass. C. Från en superklass till en subklass. D. Från decimal till int. (b) Koden nedan använder Linq. Vad av följande skiljer den från vanlig C#? foreach (TextBox tb in this.controls.oftype<textbox>()) { tb.text = tb.name; //Sätt texten till textboxens namn A. foreach. B. in this. C. Controls. D. OfType. (c) Hur skriver man för att visa ett modalt fönster i Windows Forms, efter denna inledande rad? formabout abbe = new formabout(); A. abbe.showdialog(); B. abbe.show(); C. abbe.showmodwin(); D. abbe.showmodal(); (d) Vilken av följande kodrader kan göra att en TicTacToe-spelande dator slumrar en och en halv sekund utan att hantera händelser? A. Form1.Deactivate(1500); B. this.break(1500); C. Thread.Sleep(1500);. D. Wait(1500); (e) En definition av de egenskaper som kan ingå i ett objekt är känd som en? A. Klass. B. Instans. C. Objekt. D. Metod. (f) När en händelsehanterare (metod) kopplas till en händelse (event) används? A. En funktionspekare. B. En instans av metoden. C. Ett värde av den delegat typ som hör till händelsen. D. Ett värde av godtycklig delegat typ. (6p)

3. Svara med något eller några av de angivna alternativen på följande frågor. (a) Vilket eller vilka av följande påståenden om arv i C# är sanna? A. En klass kan ärva direkt från exakt en annan klass. B. Arv ökar möjligheten att återanvända kod. C. Arv beskriver relationen har-en mellan klasser. D. En klass kan ha godtyckligt många subklasser/barnklasser. (b) Vilken eller vilka av följande typkonverteringar måste göras explicit i C#? A. Konvertering av ett värde av typen Object till Nullable<T>. B. Konvertering av ett värde av heltalstyp till en flyttalstyp. C. Konvertering av ett värde av heltalstyp till text (string). D. Konvertering av ett Double-värde till Float. (c) Vilket eller vilka av följande påståenden om multitrådning i C# och.net är sanna? A. Trådar i C# (System.Threading.Thread) är billiga att skapa. B. Ett Task-objekt (System.Threading.Tasks.Task) representerar en uppgift som kan utföras. C. Konstruktioner som Parallel.For() eliminerar risken för synkroniseringsbuggar. D. Klassen Monitor kan användas för att synkronisera trådar. (d) Textboxen tbtelnr har tabindex satt till 12. Textboxen tbmailadress har tabindex satt till 9. Vad innebär detta? A. Det är högre sannolikhet att tbtelnr visas än att tbmailadress visas. B. Fokus kommer normalt till tbmailadress innan det kommer till tbtelnr. C. Textboxarna visas i olika tabbar. D. tbmailadress skrivs ut på skärmen först när tbtelnr och ytterligare två textboxar har fyllts i av användaren.windows (e) Vilket eller vilka av följande påståenden är sanna för ett interface? A. En klass kan implementera ett godtyckligt antal interface. B. En interface-referens kan implicit konverteras till en referens till ett objekt som implementerar interfacet. C. En referens till en klass som implementerar ett visst interface kan implicit konverteras till en interface-referens för det interfacet. D. Ett interface definierar vilka metoder klasser som implementerar interface:t måste ha. (5p)

4. Studera följande givna program. Svara med något eller några av de givna alternativen. (a) Vad skriver följande metod ut i konsollfönstret? static void Main(string[] args) { for (int i = 0; i < 10; i += 3) { Console.Write(i); Console.Write(' '); Console.ReadLine(); A. (ingenting) B. 0 1 2 C. 0 1 2 3 4 5 6 7 8 9 D. 0 3 6 9. (b) Givet följande klassdefinition: abstract class Arwen { public void Ettan() {/* plats för kod */ protected void Tvåan(int kilo) { /* plats för kod */ public virtual int Trean(int km, int hastighet) { /* plats för kod */ public abstract double Fyran(); Vilken eller vilka metoder måste överlagras (eng. override) av en klass som ärver från klassen Arwen? A. Ettan. B. Tvåan. C. Trean. D. Fyran.

(c) Vilket eller vilka av nedanstående påståenden är sanna för kodfragmentet object s = new SomeObject(31, 42) givet definitionerna nedan? class SomeObject { public object data; public object moredata; public SomeObject(int count) { data = count; public SomeObject(int count, int number) : this(number) { moredata = number; A. Attributet data i instansen s får värdet 31. B. Attributet moredata i instansen s får värdet 42. C. Attributet data i instansen s får sitt defaultvärde null. D. Attributet data i instansen s får värdet 42. (d) Koden nedan skriver ut en rad i konsolfönstret. Men vad är det som skrivs ut? class Knutsson { public void fun() { Console.WriteLine("Måns" + " "); public void fun(int i) { Console.Write("Bill" + " "); class Gosta : Knutsson { public void fun() { Console.Write("Bull" + " "); class MyProgram { static void Main(string[] args) { Gosta maja; maja = new Gosta(); maja.fun(); maja.fun(200); Console.ReadLine(); A. Bull Måns. B. Bull Bill. C. Bull Bull. D. Bill Bill.

(e) Följande UML-diagram beskriver relationer mellan klasser. Vilket eller vilka påståenden är korrekta enligt diagrammet? Person Förare Fordon 1 0..* Bil hjul 1..* Cykel 1..* A. Ett Fordon har endast en Förare men en Förare kan ha många Fordon. B. En Bil kan enligt diagrammet ha lika många hjul som en Cykel. C. Ett Fordon måste vara en Bil eller en Cykel (det kan inte vara en Släde eller en Buss). D. En Förare är bara en Person (alltså inte två eller fler). (5p)

5. Ett förenklat system för projektplanering skall tillverkas. Programmet skall hantera projekt bestående av ett antal resurser. För samtliga resurser skall det vara möjligt att ange hur mycket tid de skall jobba i projektet (budgeterad kostnad) och senare registrera hur mycket faktisk tid de utfört. Kostnaden för en resurs beräknas olika utifrån vilken typ av resurs det är frågan om. De tre typerna av resurser är: Anställd. En anställd har en viss lön, en viss arbetstid per månad och ett övertidstillägg om arbetstiden överskrids. Projektanställd. En projektanställd har ett kontrakterat pris för en viss tid. Innan denna tid har utförts är kostnaden noll, därefter är kostnaden det kontrakterade priset. Konsult. En konsult har en timkostnad. Programmets funktion kan beskrivas enligt följande: Programmet skapar ett projekt med ett visst antal allokerade timmar och en budget i kronor. Projektet skall stödja följande operationer: Lägga till en resurs om budgeten ej överskrids. Beräkna kostnad beräknar projektets budgeterade kostnad Nollställ projekt tar bort samtliga resurser från projektet Visa projekt returnerar en sträng med information om samtliga resurser i projektet Ingen meny behövs utan det är endast de logiska klasserna som skall skapas. Hårdkoda istället nedanstående resurser och lägg till dem till ett projekt. Skriv därefter ut den budgeterade kostnaden. Resurserna som skall läggas till projektet är följande: Kalle, anställd. Lön 20000 kr. Månadsarbetstid 160 timmar. Övertidstillägg 100 kr / h. Stina, anställd. Lön 21000 kr. Månadsarbetstid 160 timmar. Övertidstillägg 110 kr / h. Nisse, projektledare, konsult (från Manpower). Timlön 1000 kr. Albert, projektanställd. Kontrakterad tid 185 timmar. Kontrakterad lön 25000 kr. Budgeterad tid för resurserna är följande: Kalle 320 timmar. Stina 320 timmar. Nisse 175 timmar. Albert 185 timmar. Tänk på att använda en god objektorientering. Var speciellt noga med synlighet, konstruktorer, polymorfism och att separera logik och IO. (10p)

6. Uppgiften går ut på att skapa nedanstående fönster. I fönstret visas hela tiden en grafisk representation av 3 lottobollar. Varje boll består grafiskt av en fylld cirkel av en vald färg (vit, röd, blå eller grön) med en svart kontur och ett numer mellan 1 och 35 ritat mitt i cirkeln ritad med fontstorlek 24. Layouten nedan skall följas. Bollarna ska visas med bakgrundsfärg enligt valt alternativ. Färgerna som kan väljas är vit (Color.White), röd (Color.Red), blå (Color.Blue) eller grön (Color.Green). Knappen Randomize skall slumpa fram ett nytt värde mellan 1 och 35 för varje boll. Alla gjorda val skall få visuellt genomslag direkt. För full poäng skall lottobollarna vara instanser av en egendefinierad grafisk kontroll som kan styras med en egenskap (property) för värde (av typen int) och en för färg (med typen Color). Tips: Lös problemet stegvis, exempelvis börja med att implementera en boll som en grafisk komponent. (10p)

7. Uppgiften går ut på att skapa en administrativ applikation för att hantera fakturor för en bilpool. Tabellstrukturen för applikationens databas CarPool finns nedan. När programmet startas visas alla poolens medlemmar i en ListBox (obs! inget annat) på formen efternamn, förnamn och sorterade på efternamn. När en medlem väljs i listan så skall de fakturor som finns i databasen för den medlemmen visas i den andra ListBox:en (under Invoices). När en faktura väljs i Invoices-listan så skall information om fakturan visas i en detaljvy enligt bild nedan. Listan över fakturorna och detaljvyn skall automatiskt uppdateras när en annan medlem och/eller faktura väljs. Applikationens GUI skall arbeta mot logikklasser som du skapar och vars publika gränssnitt skall vara enligt nedanstående klassdiagram (lämpliga konstruktorer och eventuella privata metoder lägger du till själv). Koden i GUI-delen får endast kommunicera med databasen via logikklassernas publika gränssnitt. All databashantering skall ske internt i logikklasserna och skall ske med hjälp av LINQ.

Databasen är redan skapad och fylld med data. Ni kommer åt den med hjälp av de inloggningsuppgifter (till SQL Server) som finns med i tentan. Databasen har följande tabeller och nyckelrelationer: Tips: Lös problemet stegvis. Skapa logikklasserna först och fyll sen metoder och properties med innehåll. Använd LINQtoSQL klassernas styrkor som de automatiska kopplingarna mellan raderna de olika tabellerna! En DateTime instans kan konverteras till en lämplig sträng med metodanropet adate.tostring("yyyy-mm-dd HH:MM"); (10p)