Java M1 V2 L2 K2 TM W. Tentamen i Programmering 2004-04-17, kl 08.00-13.00. LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap.



Relevanta dokument
Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDA501 Programmering M L TM W K V

Tentamen i Programmering grundkurs och Programmering C

Tentamen, EDAA10 Programmering i Java

Tentamen i EDA011 Programmeringsteknik

Idag: Dataabstraktion

Tentamen i Programmering

ELEV- HANDLEDNING (Ansökan via webben)

Utveckla arbetsmiljö och verksamhet genom samverkan

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

Tentamen, EDA017, Programmeringsteknik för C, E, I och Pi

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Tillträde MANUAL. Mäklarsamfundet system i Sverige AB

Administration Excelimport

Arbetsbeskrivning, att förbereda för studenternas registrering kommande termin. 1. Studenter antagna på fristående kurs 2

Tentamen, EDA011/EDA017 Programmeringsteknik BME C E F I N Pi

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

Skriva B gammalt nationellt prov

Tentamen, EDAA20/EDA501 Programmering

Föreläsning 5: Rekursion

Vi skall skriva uppsats

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

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Det andra alternativet är att ladda upp filer genom att klicka på plustecknet nere till vänster. Man klickar sig in på den mapp som man vill att

Lathund, procent med bråk, åk 8

Institutionen för matematik Envariabelanalys 1. Jan Gelfgren Datum: Fredag 9/12, 2011 Tid: 9-15 Hjälpmedel: Inga (ej miniräknare)

Tentamen, EDA501 Programmering M L TM W K V

729G04 - Hemuppgift, Diskret matematik

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

INMATNING AV CITAT VIA NOTISFÖNSTRET.

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

( ostream ) << ( annan datatyp ) : ostream

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

Kurs: HF1012, Matematisk statistik Lärare: Armin Halilovic Datum: Måndag 30 mars 2015 Skrivtid: 8:15-10:00

Administrera utskick på utbildningstillfälle

Senaste Nytt. Läs sida 2. I detta nummer. Lite information. Har det någon gång hänt att någon har stulit något? Ja... (Susanne Wahlgren svarar)

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

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

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

Träning i bevisföring

Laganmälan & Laghantering

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

FORTNOX SMÅFÖRETAGENS BÄSTA VÄN. Fortnox kom igång guide Praktisk bokföring. En guide för dig som vill komma igång med bokföring i Fortnox

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

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

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

Tentamen EDA501/EDAA20 M L TM W K V

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

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

Tentamen, EDAA20/EDA501 Programmering

Sammanfattning av kursdag 2, i Stra ngna s och Eskilstuna

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

Nämnarens adventskalendern 2007

Programexempel: tärningsspel

Anva ndarhja lp IMYR -Myndighetsrapportering

CAEBBK01 Drag och tryckarmering

OPTIMIZING THE LINE. CAB Group AB Stortorget 11, SE Örebro, Sweden Phone:

Föreningen Nordens lokala hemsidor

Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

L(9/G)MA10 Kombinatorik och geometri Gruppövning 1

Tentamen i Linjär algebra (TATA31/TEN1) ,

Program Handledning Förutsättningar: Träningar Teori

Kom-igång VictorReader Stratus 4 H som taltidningsspelare

Tentamen i Objektorienterad programmering

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

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

Hemsida Arbetsrum. Skapa arbetsrumslista

Närvarande Jan Hasselkvist JH Hus Johanna Orescovic JO Styrelse Mårten Johansson MJ Styrelse Magnus Vesterhav MV Styrelse

Programmera en NXT Robot

DATASAMORDNING NYHETERNA I CHAOS Utbildning Chaos/Handledning - Nyheterna i Chaos 3/

Manual fö r kursspecifika ansö kningsförmula r Fölkhö gsköla.nu

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

Mål Blå kurs Röd kurs

Studiehandledning för kurs:

Att komma igång. Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

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

Felanmälan eller Arbetsorder

Svenska Du kan med flyt läsa texter som handlar om saker du känner till. Du använder metoder som fungerar. Du kan förstå vad du läser.

Snabbslumpade uppgifter från flera moment.

LATHUND DIETIST XP (Version FKH, VT14).

Ansökan till svenska högskolor och universitet. 5 april 2016

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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.

Examensarbete är det en kurs? Inst. för Samhällsbyggnad 2009

Kom-igång VictorReader Stratus 4 H som taltidningsspelare Ver

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Lathund för validering av avhandlingar i LUCRIS

Att visa kunskap genom argumentation Muntlig examination inom etik

Din Guide till Second Life

Användarmanual för kod- proxläsare MAX

Manual. Rapportera väntetider i systemet Utbudstjänst SLL

Tentamen, EDAA20/EDA501 Programmering

Ämnesprov för grundskolan

UPPVÄRMNING. Ta med styrketräningen på semestern:

Anpassad symbolpalett till teknikövningar i OCAD. Installera symbolpaletten i din dator

Klasser och objekt i C#

excellence PRO Butiksdatasystem

Två konstiga klockor

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

Transkript:

LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap 1(5) M1 V2 L2 K2 TM W Java Tentamen i Programmering 2004-04-17, kl 08.00-13.00 Anvisningar Tillåtna hjälpmedel: Holm, Objektorienterad programmering och Java. Java snabbreferens. Skrivningen innehåller fem uppgifter. Vid varje uppgift står en preliminär maxpoäng för uppgiften. OBS! För att du skall vara tentamensberättigad på denna kurs skall alla övningar och inlämningsuppgifter vara godkända före tentamen. Om du tenterar utan att vara tentamensberättigad annulleras din skrivning. För att undvika att någon skrivning annulleras av misstag anslås vilka som, enligt institutionens noteringar, tenterat utan att vara tentamensberättigade. Namnen anslås senast en vecka efter tentamen på institutionens anslagstavla. Felaktigheter i institutionens noteringar kan därefter påtalas fram till nästa tentamenstillfälle (se nedan) då resterande skrivningar annulleras. Närmaste tentamenstillfällen i kursen: Fredag 20 augusti 2004, kl 14-19 Januari 2005

Uppgift 1 (4 poäng) 2(5) Klassen Article nedan beskriver ett varuslag i en affär. Implementera klassen fullständigt. specification Article { /** Skapar ett varuslag där: ean: är varuslagets artikelnummer (ett unikt heltal) name: är varuslagets namn (max 15 tecken) price: är varuslagets pris i affären (i öre) */ Article(int ean, String name, int price); /** Returnerar varuslagets artikelnummer */ int getean(); /** Returnerar varuslagets namn */ String getname(); /** Returnerar varuslagets pris i öre */ int getprice(); Uppgift 2 (12 poäng) Klassen ArticleReg nedan beskriver ett register där alla varuslag i en affär finns lagrade i godtycklig ordning i en Article-vektor. Implementera klassen fullständigt. class ArticleReg { private Article[] reg; // Osorterad vektor med alla registrets varuslag /** Skapar ett tomt varuslagsregister som kan innehålla maxsize varuslag */ public ArticleReg(int maxsize) { /** Lägger till ett nytt varuslag till registret. Det förutsätts att varan inte redan finns i registret */ public void addarticle(article art) { /** Tar reda på om det finns ett varuslag med artikelnumret ean i registret. Returnerar varuslaget om det finns, annars returneras null */ public Article findarticle(int ean) { /** Tar bort varuslaget med artikelnumret ean ur registret. Varuslaget förutsätts finnas i registret */ public void removearticle(int ean) {

Uppgift 3 (6 poäng) 3(5) Lägg till en metod uploadreg i klassen ArticleReg från uppgift 2. Metoden fyller på registret med affärens varuslag enligt nedan. Implementera metoden. /** Fyller på varuslagsregistret med affärens varuslag */ public void uploadreg() { Varuslagen som skall läggas in i registret läses från tangentbordet (i verkligheten hade man naturligtvis läst från en fil istället). Indata har formen: Först en rad där antalet varuslag står (n) Därefter kommer n st rader med ett varuslag per rad bestående av: varuslagets artikelnummer, varuslagets pris (i öre) samt varuslagets namn Exempel på indata (jfr med kvittoexemplet i uppgift 5): 3 27900 24950 Skjorta, Herr 43500 2630 Mascara 33987 1495 Strumpor, Barn Inledning till uppgift 4 5 Tiffany Persson som äger H&M:s nya klädbutik i Staffanstorp har köpt ett datoriserat kassasystem av enklare modell som består av en kassaapparat, en streckkodsläsare och en datorenhet. Systemet är uppbyggt kring att varje varuslag har ett unikt artikelnummer som finns som en streckkod på alla varor. Artikelnumret används sedan av kassasystemet för att ta reda på priset på ett varuslag (som finns lagrat i datorenheten). För att ta reda på ett varuslags artikelnummer använder man normalt streckkodsläsaren, men i nödfall kan man även knappa in ett artikelnummer manuellt. Kassaapparaten har följande knappsats: 7 8 9 Korr Betalt Ny kund 4 5 6 Manuell 1 0 2 3, OK Nr Total Register ON/OFF Not. Knappen Manuell har ingen funktion i detta kassasystem.

4(5) Man sätter igång kassasystemet genom att trycka på ON/OFF-knappen. Kassasystemet har sedan 8 funktioner, numrerade A H enligt: A) Man kan ta betalt för en vara med hjälp av streckkodsläsaren. Läs av varans streckkod (dvs artikelnumret) med streckkodsläsaren. * B) Man kan ta betalt för en vara utan hjälp av streckkodsläsaren. Tryck in varans artikelnummer, tryck Nr. * C) Man kan korrigera (stryka från kvittot) en vara med hjälp av streckkodsläsaren. Tryck Korr, läs av varans streckkod med streckkodsläsaren. * D) Man kan korrigera (stryka från kvittot) en vara utan hjälp av streckkodsläsaren. Tryck Korr, tryck in varans artikelnummer, tryck Nr. * E) Man kan sammanräkna en kunds totalbelopp. Tryck Total. * F) Man kan beräkna växelbelopp (hur mycket kunden skall ha tillbaka). Tryck in betalt belopp, tryck Betalt, * G) Man kan börja behandla en ny kund. Tryck Ny kund. * H) Man kan stänga av kassaapparaten. Tryck ON/OFF. * *) För varje funktion är detta en beskrivning av hur man går tillväga rent praktiskt för att utföra operationen. Delar av denna information behövs för att lösa uppgift 4. Följande klass för kassaapparaten finns färdigskriven: specification CashRegister { // Kassaapparat heter CashRegister på engelska /** Skapar ett kassaapparatssystem kopplat till kassaapparatens knappsats och streckkodsläsare */ CashRegister(); /** Returnerar kassaapparatens nästa knapptryckning, ett heltal enligt: */ En 1:a returneras om streckkodsläsaren användes En 2:a returneras om knappen Korr användes En 3:a returneras om knappen Manuell användes En 4:a returneras om knappen Nr användes En 5:a returneras om knappen Betalt användes En 6:a returneras om knappen Total användes En 7:a returneras om knappen Ny kund användes En 8:a returneras om knappen ON/OFF användes */ int getlatestbutton(); /** Returnerar senast inmatade artikelnummer(antingen via streckkodsläsaren eller via knappsatsen) */ int getlatestean(); /** Returnerar senast inmatade belopp på knappsatsen (i öre) */ int getlatestamount(); /** Låter kassaapparaten ge ifrån sig en felsignal */ void beep(); /** Skriver ut en rad (som är exakt 30 positioner) på kassaapparatens kvitto enligt: 1. Strängen text vänsterjusterad 2. Om price<0 strängen KORR direkt efter text 3. Ett antal blanktecken (beroende på värdena av text och price) 4. Priset i kronor högerjusterat med exakt två decimaler (price är priset öre)*/ void printreceiptrow(string text, int price);

Uppgift 4 (12 poäng) 5(5) Klassen CRC (CashRegisterController) nedan är kassasystemets hjärta. Det är den klassen som styr expeditens arbete med kassaapparaten. Där finns alla de operationer som expediten behöver för att handha kassaapparaten, t ex behandla en kund. class CRC { private ArticleReg ar = new ArticleReg(10000); private CashRegister cr = new CashRegister(); /** Behandlar en kund och producerar ett kvitto. Anropas när någon tryckt på knappen Ny kund */ public void servecustomer() { // m fl Implementera metoden servecustomer i klassen CRC, dvs producera ett kvitto för kunden (se kvittoexemplet i uppgift 5). Lösningen på denna uppgift kan lätt bli rörig och svår att följa. För full poäng måste lösningen vara lättläst och tydlig. Behandlingen av en kund sker i följande ordning: Ett antal varor behandlas, dvs expediten utför ett antal av funktionerna A D (från sid 2) blandade i godtycklig ordning. Inmatningen av varor avslutas med att expediten trycker på knappen Total (funktion E på sid 2). Därefter tar expediten betalt och beräknar växelbelopp (funktion F på sid 2). Om en felaktig knapptryckning används vid något tillfälle skall felsignal/pip ges. Därefter skall programmet fortsätta som om ingenting hade hänt. Uppgift 5 (6 poäng) Implementera metoden printreceiptrow från klassen CashRegister som finns beskriven i inledningen. Utskriften på kvittot görs genom att skriva till standard output som vanligt. Denna uppgift är främst till för de som eftersträvar betyg 5 och uppgiften kommer att rättas därefter. Exempel på ett kvitto: Skjorta, Herr 249.50 Solkräm (faktor 7) 123.50 Mascara 26.30 Mascara KORR -26.30 Strumpor, Barn 14.95 3 VAROR ATT BETALA --> 387.95 BETALT --> 500.00 TILLBAKA --> 112.05