Tentamen i EDA011 Programmeringsteknik



Relevanta dokument
Vi skall skriva uppsats

Java M1 V2 L2 K2 TM W. Tentamen i Programmering , kl LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap.

Lathund, procent med bråk, åk 8

Datorövning 2 Statistik med Excel (Office 2007, svenska)

Tentamen i Programmering grundkurs och Programmering C

Fullför installation av ELIQ

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Gissa det hemliga talet

Tentamen i matematisk statistik (9MA241/9MA341/LIMAB6, STN2) kl 08-13

Systematiskt kvalitetsarbete

ELEV- HANDLEDNING (Ansökan via webben)

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

Enkätresultat för elever i år 2 i Nösnäsgymnasiet 2 i Stenungsund våren 2014

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Medieplan. för Högskolebiblioteket i Skövde Reviderad

Enkätresultat för elever i år 2 i Mega Musik gymnasium hösten Antal elever: 47 Antal svarande: 46 Svarsfrekvens: 98% Klasser: MM13

Enkätresultat för elever i år 2 i Praktiska Skövde i Praktiska Sverige AB hösten 2014

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Skriva B gammalt nationellt prov

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Webb-bidrag. Sök bidrag på webben Gäller från

ANVÄNDARHANDLEDNING FÖR

Får nyanlända samma chans i den svenska skolan?

Utveckla arbetsmiljö och verksamhet genom samverkan

Snapphanalegen. Firekángabogena. Spelregler. (4 spelare)

Mer än bara fotboll VAD HANDLAR BOKEN OM? LGR 11 CENTRALT INNEHÅLL SOM TRÄNAS ELEVERNA TRÄNAR FÖLJANDE FÖRMÅGOR LGRS 11 CENTRALT INNEHÅLL SOM TRÄNAS

Syftet med en personlig handlingsplan

TIMREDOVISNINGSSYSTEM

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

GRUNDERNA I SJÄLVLEDARSKAP

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

EN BÄTTRE KREDITAFFÄR

Utbildningsplan för arrangörer

Facit med lösningsförslag kommer att anslås på vår hemsida Du kan dessutom få dem via e-post, se nedan.

Sektionen för Beteendemedicinsk smärtbehandling

BibliotekMitt.se. Riktlinjer för Boktips, Artiklar, Arrangemang, Utställningar Arrangemang mm

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Varför är det så viktigt hur vi bedömer?! Christian Lundahl!

Tentamen, EDA501 Programmering M L TM W K V

Tränarguide del 1. Mattelek.

Presentationsövningar

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Pedagogiska tips Boksamtal

Samtals- och dokumentationsunderlag Språk och erfarenheter

Praktisk programmering

Idag. Hur vet vi att vår databas är tillräckligt bra?

Tentamen i SG1102 Mekanik, mindre kurs

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Datorövning 2 Statistik med Excel (Office 2003, engelska)

Ha det kul med att förmedla och utveckla ett knepigt område!

När jag har arbetat klart med det här området ska jag:

Instruktion när NE-bilagan har lämnats via e-tjänsten Filöverföring

Du ska nu skapa ett litet program som skriver ut Hello World.

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Bokjuryn på Haganässkolan, Älmhult

Handbok Ämnesprov 2016 Lärarinmatning I Dexter Åk 3. Uppdaterad: /HL Version: IST AB

JURIDISKA INSTITUTIONEN

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

Abstrakt. Resultat. Sammanfattning.

TIMREDOVISNINGSSYSTEM

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Snabbslumpade uppgifter från flera moment.

P-02/03 säsongen 2016

Gruppindelning JUNIOR

Årsmöte 14:e mars 2016

Utvärdering av informationsinsatserna. Konflikten inom Väg och Ban Maj 2007

4-6 Trianglar Namn:..

Har vi lösningen för en bättre hemtjänst? Självklart.

Koll på cashen - agera ekonomicoach!

Laborationspecifikation

Menys webbaserade kurser manual för kursdeltagare. Utbildningsplattform: Fronter

Sammanfattning på lättläst svenska

HT 2011 FK2004 Tenta Lärare delen 4 problem 6 poäng / problem

MR 5 FRÅN FÖRBUD TILL RÄTTIGHET WORKSHOP I KLASSRUMMET TEMA: MÄNSKLIGA RÄTTIGHETER (MR)

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Avgifter i skolan. Informationsblad

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

Individuellt Mjukvaruutvecklingsprojekt

Du behöver ha tillgång till: Olika typer av material som man bearbetar på El- och energiprogrammet, Olika typer av plugg.

En grafisk guide till vår identitet

Enkätresultat för vårdnadshavare till elever i Centralskolan Söder 4-9 i Grästorp hösten Antal svar: 50

Kundservicerapport Luleå kommun 2015

Tankar om elevtankar. HÖJMA-projektet

Hur du arbetar med VFU-portfölj i Mondo. en lathund för student

Q1 Hur många undervisningstillfällen har du haft under september månad?

Bilaga B Kartläggningsmaterial - Litteracitet Samtals- och dokumentationsunderlag avkodning, läsning, läsförståelse och skrivning

Spelregler. 2-4 deltagare från 10 år. Med hjälp av bokstavsbrickor och god uppfinningsrikedom

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Likabehandlingsplan för läsåret

Överviktskirurgi vid Carlanderska

SOLCELLSBELYSNING. En praktisk guide. Råd & Tips SOLENERGI LADDA MED. Praktiska SÅ TAR DU BÄST HAND OM DIN SOLCELLSPRODUKT

Transkript:

Tentamen i EDA011 Programmeringsteknik Lördagen den 20 december, 2003 Skrivtid: 8.00 13.00 Tillåtet hjälpmedel: Java-snabbreferens. Anonymt resultat: Om du inte vill ha ditt namn utskrivet i klartext på resultatlistorna kan du skriva en fyr-ställig kod på omslagspapprets framsida. Koden skall ha formen bokstav-bokstav-siffra-siffra, dvs något i stil med AB12 (använd nu inte denna kod!). I resultatlistan som sätts på institutionens anslagstavla kommer vi att skriva ut din kod istället för ditt namn, om du skrivit en kod. För dem med koder kommer vi även att lägga ut en resultatlista på kurshemsidan när tentamen är rättad vi lägger aldrig ut vanliga namnuppgifter på hemsidan. Observera: För att vara behörig att skriva tentamen måste du ha blivit godkänd på alla inlämningsuppgifter. Den som skriver utan att ha blivit godkänd på uppgifterna, och inte fått dispens, kommer att få sin tentamen annullerad. Instruktioner: Tentornas svårighetsgrad kan variera något, men det är alltid lika lätt/svårt att bli godkänd en svårare tenta bedöms snällare än en lätt tenta, och vice versa. Oavsett hur lätt/svår du tycker att denna tenta är gör ditt bästa. För att bli godkänd behöver du inte göra något som du inte redan gjort på inlämningsuppgifterna. Denna tentamen består av två delar: Del 1 består av uppgift 1-3, som alla bör behandla. Del 2 utgörs av uppgift 4, och riktar sig till dem som strävar efter 5:a. Det maximala poängantalet på varje uppgift är angivet vid uppgiften, betygsgränser bestäms i samband med rättningen. Om det är något du är osäker på under tentamen, fråga Christian. Del 1 Denna del av tentamen bör alla behandla efter bästa förmåga. Vår uppgift är att skriva delar av ett program för att hjälpa ett bibliotek hålla reda på böcker, låntagare och lån, och vi kommer att använda oss av följande klasser: Book, som beskriver en bok, Borrower, som beskriver en låntagare, Loan, som beskriver ett lån, och Library, som beskriver ett bibliotek. 1

De tre första klasserna skall ha följande specifikationer: class Book { Book(int idnbr, String title, String author) Skapar en ny bok. idnbr: bokens id-nummer title: bokens titel author: bokens författare int getid() Ger bokens id-nummer. String gettitle() Ger bokens titel. String getauthor() Ger bokens författare. void borrowed(loan loan) Noterar att boken lånas ut. loan: en referens till ett Loan-objekt (som bland annat innehåller information om vem som lånar boken, se nedan) void returned() Noterar att boken är återlämnad. Borrower getborrower() Ger en referens till den låntagare som har boken, null om boken inte är utlånad. class Borrower { Borrower(int idnbr, String name, String address) Skapar en låntagare. idnbr: låntagarens id-nummer name: låntagarens namn address: låntagarens adress int getid() Ger låntagarens id-nummer. String getname() Ger låntagarens namn. String getaddress() Ger låntagarens adress. void adddebt(int amount) Ökar låntagarens skuld. amount: det belopp som skulden ökat med int getdebt() Ger låntagarens sammanlagda skuld. void paydebt(int amount) Låter användaren betala (delar av) sin skuld. amount: det belopp låntagaren betalar class Loan { Loan(Book book, Borrower borrower, int day, int maxnbrofdays) Skapar ett nytt lån. book: den bok som skall lånas ut borrower: den låntagare som skall låna boken day: den dag då boken lånas ut (mer information om hur dagarna räknas får du i uppgift 2) maxnbrofdays: maximalt antal dagar som boken får lånas Book getbook() Ger en referens till den bok som lånats. 2

Borrower getborrower() Ger en referens till låntagaren. int daysleft(int day) Ger antalet återstående lånedagar, ger negativa värden då senaste återlämningsdatum passerats. day: den dag då antalet återstående dagar skall räknas ut Uppgift 1 (10 poäng) Implementera de tre klasserna Book, Borrower och Loan, du får själv bestämma vilka attribut klasserna skall ha. Klassen Library har följande attribut: borrowers, som är en vektor med samtliga låntagare, nbrofborrowers, som är antalet låntagare, books, som är en vektor med samtliga böcker, nbrofbooks, som är antalet böcker, loans, som är en vektor med samtliga utestående lån, nbrofloans, som är antalet utestående lån, och daynbr, som är numret på aktuell dag. I klassen Library vill vi bland annat ha följande operationer: class Library { Library() Skapar ett bibliotek med plats för 1000 böcker, 1000 låntagare och 1000 lån. void addbook(book book) Lägger in en ny bok i biblioteket. book: den bok som skall läggas in void addborrower(borrower borrower) Lägger in en ny låntagare. borrower: låntagaren som skall läggas in int makeloan(int borrowerid, int bookid) Lånar ut en bok med given id till en låntagare med given id, returvärdet anger hur utlåningen gick: 1 om det inte finns någon låntagare med det givna id-numret, 2 om låntagaren finns, men har för stor skuld för att låna (största tillåtna skuld för att få låna är 100 kronor), 3 om det inte finns någon bok med det givna id-numret, 4 om boken finns, men redan är utlånad, och 0 om lånet kunde genomföras borrowerid: låntagarens id-nummer bookid: bokens id-nummer int returnloan(int bookid) Noterar att en bok med ett givet id-nummer återlämnats. Om ingen bok med det givna id-numret var utlånad skall värdet 1 returneras, annars returneras värdet 0. bookid: bokens id-nummer void checkdebts() Går igenom samtliga utestående lån och ser till att eventuella skulder för låntagarna räknas upp om de har kvar böcker som skulle ha lämnats tillbaka. Denna operation skall anropas en gång efter varje dag som gått (du behöver inte själv göra anropet). 3

void printbookinfo(int bookid) Skriver ut information om en bok, mer information om denna operation finns i texten nedan. bookid: id-numret på den bok vi vill ha information om void printborrowerinfo(int borrowerid) Skriver ut information om en låntagare och vilka böcker denne lånat, mer information om denna operation finns i texten nedan. borrowerid: id-numret på den låntagare vi vill ha information om Dagarna i systemet räknas som heltal från nyår, och hela systemet nollställs vid varje årsskifte (vi kan förutsätta att alla böcker lämnas in i slutet av året). Alla böcker på biblioteket får lånas 28 dagar, och man har följande övertidsavgifter: två kronor per bok och dag de första 7 dagarna, fem kronor per bok och dag därefter. Det finns ingen övre gräns för övertidsavgifterna, men man får inte låna fler böcker när skulden överstiger 100 kronor. Utskriften från printbookinfo skall se ut som följder: 101001: Knuth, D. E.: The Art of Computer Programming, vol 1 Tillgänglig (det inledande talet är bokens id-nummer) eller, för en utlånad bok: 101004: Knuth, D. E.: The Art of Computer Programming, vol 4 Utlånad till Parker, Peter Utskriften från printborrowerinfo skall se ut så här: Parker, Peter, Vintergatan 42 Knuth, D. E.: The Art of Computer Programming, vol 4 Darwin, Charles: The Origin of Species eller, om låntagaren inte har lånat någon bok: Karlsson, Bert, Skara sommarland Inga lånade böcker. Om man försöker skriva ut information om en bok eller låntagare som inte finns skall lämplig utskrift göras. Uppgift 2 (15 poäng) Implementera klassen Library. Rita även en figur som visar objekt och referenser i ett bibilotek med fyra böcker och två låntagare, där den ene låntagaren har lånat en och den andre två böcker. Alla attribut skall synas i figuren. Uppgift 3 (5 poäng) På biblioteket vill man börja låna ut CD-skivor och tidskrifter, men dessa har lite andra regler för utlåningstid och böter vid försenad återlämning än vad böckerna har. Beskriv översiktligt hur du skulle modifiera systemet för att möjliggöra även lån av skivor och tidskrifter. Vilka klasser vill du införa, och hur förhåller de sig till varandra? Vilka operationer vill du ha i de nya klasserna? Hur skulle du beräkna övertidsavgifterna? Du behöver inte skriva någon programkod i denna uppgift. 4

Del 2 Denna del av tentamen behöver bara behandlas av dem som eftersträvar 5:a. Om du känner dig osäker på uppgifterna i del 1 är det bättre att du ägnar mer tid till dem innan du börjar arbeta med denna del (om din lösning av del 1 är tillräckligt bra kan du få en 4:a utan att göra del 2 för 5:a måste du dock göra även del 2). På denna del kommer vi att ställa högre krav på att programmet är skrivet i god stil än vi gör i del 1. Biblioteket vill göra en sammanställning över hur stora skulder låntagarna har de vill därför kunna skriva ut ett histogram som visar antalet låntagare med skulder i intervallen 0-24 kronor, 25-49 kronor, 50-74 kronor, 75-99 kronor, samt minst 100 kronor. Man vill dessutom kunna skriva ut en lista över samtliga icke utlånade böcker, sorterade efter i första hand författare, och därefter titel. Uppgift 4 (10 poäng) Implementera i klassen Library operationerna printdebts, som skriver ut ett histogram över låntagarnas skulder enligt beskrivningen ovan, och printavailable, som skriver ut listan över tillgängliga böcker enligt beskrivningen ovan. God Jul och Gott Nytt År! 5