OPPGAVE 5b og 8b Java Kode



Like dokumenter
Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

INF Seminaroppgaver til uke 3

Løsningsforslag til eksamen i INF1000 våren 2006

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

Kapittel 9: Sortering og søking Kort versjon

INF1010 våren januar. Objektorientering i Java

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

import java.util.arraylist;

TDT4100 Objektorientert programmering

TOD063 Datastrukturer og algoritmer

Norges Informasjonsteknologiske Høgskole

INF Løsning på seminaropppgaver til uke 8

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

INF1010 våren Grensesnitt

Løsningsforslag EKSAMEN

INF2100. Oppgaver 26. september til 1. oktober 2007

UNIVERSITETET I OSLO

Repetisjon. INF gruppe 13

LO191D/LC191D Videregående programmering

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

Kapittel 14, Hashing. Tema. Definere hashing Studere ulike hashfunksjoner Studere kollisjonsproblemet 17-1

IN1010 våren januar. Objektorientering i Java

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

Dagens tema: Mer av det dere trenger til del 1

Kapittel 7: Mer om arv

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

import java.io.*; import java.util.*; import javagently.text;

INF1010, 21. januar Klasser med parametre = Parametriserte klasser = Generiske klasser

Løsningsforslag Test 2

Algoritmer og Datastrukturer

INF106 Objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

INF2100. Oppgaver 23. og 24. september 2010

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

Objektorientert Programmering Ekstraordinær eksamen 2014

INF1010 våren Grensesnitt

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

INF 1010, vår 2005 Løsningsforslag uke 11

INF1010, 15. januar time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

UNIVERSITETET I OSLO

INF1010 Sortering. Marit Nybakken 1. mars 2004

IN våren 2019 Onsdag 16. januar

HØGSKOLEN I SØR-TRØNDELAG

IN våren 2018 Tirsdag 16. januar

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Gjennomgang av eksamen H99

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Fra krav til objektdesign

Kapittel 9: Sortering og søking Kort versjon

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

Eksempel 1 Eksempel 2 Dramatisering. INF1000 uke 3. Sundvollen 7. september 2015 Dag Langmyhr. INF1000 Sundvollen

Klasser, objekter, pekere og UML. INF gruppe 13

Kapittel 8: Sortering og søking

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Kapittel 8: Sortering og søking INF100

MED TIDESTIMATER Løsningsforslag

INF1010 våren Grensesnitt (interface)

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

INF1010. Grensesnittet Comparable<T>

UNIVERSITETET I OSLO

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

UNIVERSITETET I OSLO

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Løse reelle problemer

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

HØGSKOLEN I SØR-TRØNDELAG

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8

Del 3: Evaluere uttrykk

UNIVERSITETET I OSLO

Seminaroppgaver IN1010, uke 2

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

UNIVERSITETET I OSLO

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

INF1010. grensesni-et Comparable<T> grensesni-et Iterable<T> rekursjon

Sortering med Comparable og Comparator

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

INF våren 2017

UNIVERSITETET I OSLO

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

BOKMÅL Side 1 av 12. Fakultet for informasjonsteknologi,

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

Inf 1000 høst 2005 Løsningsforslag ordinær eksamen

Transkript:

OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene fra brukergrensesnittet (ikke implementert) behandler.returnerbil(regnr, kmstand, tanknivaa, erskadet); void printregning(string regning) boolean erbetalt() // return true hvis kundebehandler opplyser at regningen er betalt public class BehandleReturAvBil BehandleReturAvBil(Kant kanten) kantobjektet = kanten; boolean returnerbil(string regnr, int kmstand, int tanknivaa, boolean erskadet) BilUtleieFirma firmaet; LeieKontrakt lk; lk = firmaet.finnleiekontrakt(regnr); lk.settnykmstand(kmstand); lk.settnytttanknivaa(tanknivaa); if (erskadet == false) String utskriften = lk.lagregning(); kantobjektet.printregning(utskriften); boolean erbetalt = kantobjektet.erbetalt(); lk.avslutt(erbetalt); public class BilUtleieFirma //assosiasjoner: private LeieKontrakt[] leiekontraktene; // alternativ for de som vil implementere assosiasjonen skikkelig: // private Collection leiekontraktene; (evt. Vector eller en annen implementasjon) LeieKontrakt finnleiekontrakt(string regnr) // itererer over settet LeieKontraktene til den siste leiekontrakten for //gitt regnr finnes

public class LeieKontrakt //assosiasjoner private Bil bilen; private Kunde kunden; private Regning regningen; //attributter private int gammelkmstand, nykmstand; private int gammelttanknivaa, nytttanknivaa; private int avtaltkmpris; private int avtaltbensinpris; private int avtaltkjoerelengde; private int avtaltpris; private boolean bleskadet = false; //metoder void settnykmstand(int kmstand) nykmstand = kmstand; bilen.settkmstand(kmstand); private int beregnbeloep() int tilleggspris = 0; int overskredetkm = ((nykmstand - gammelkmstand) - avtaltkjoerelengde); if (overskredetkm > 0) tilleggspris = overskredetkm * avtaltkmpris; int bensinmanko = nytttanknivaa - gammelttanknivaa; if (bensinmanko < 0) tilleggspris = tilleggspris + bensinmanko*avtaltbensinpris; return avtaltpris + tilleggspris; void settnytttanknivaa(int tanknivaa) nytttanknivaa = tanknivaa; bilen.setttanknivaa(tanknivaa); String lagregning() int beloep; regningen = new Regning(); String utskriften = regningen.lagregning(kunden, bilen, beloep); return utskriften; void avslutt(boolean erbetalt) regningen.settbetalt(erbetalt); bilen.settstatus(bil.ledig);

public class Bil private String regnr; private int kmstand, tanknivaa; private int status = LEDIG; static public int LEDIG = 1; static public int UTLEID = 2; static public int SKADET = 3; void settkmstand(int nykmstand) kmstand = nykmstand; void setttanknivaa(int nytttanknivaa) tanknivaa = nytttanknivaa; void settstatus(int nystatus) status = nystatus; String giregnr() return regnr; public class Regning private boolean betalt; String lagregning(kunde kunden, Bil bilen, int beloep) String kundenavn = kunden.ginavn(); String bilregnr = bilen.giregnr(); // lag regningen for kunden for gitt bil void settbetalt(boolean erbetalt) betalt = erbetalt; public class Kunde private String kundeid, navn; String ginavn() return navn;

OPPGAVE 6b og 9b Java kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene fra brukergrensesnittet (ikke implementert) behandler.returnerbil(regnr, kmstand, tanknivaa, erskadet); void printregning(string regning) boolean erbetalt() String giskadeinfo() public class BehandleReturAvBil private Kant kantobjektet; BehandleReturAvBil(Kant kanten) kantobjektet = kanten; boolean returnerbil(string regnr, int kmstand, int tanknivaa, boolean erskadet) BilUtleieFirma firmaet; LeieKontrakt lk; lk = firmaet.finnleiekontrakt(regnr); lk.settnykmstand(kmstand); lk.settnytttanknivaa(tanknivaa); if (erskadet == true) String skadeinfo = kant.giskadeinfo(); lk.settskade(skadeinfo); String utskriften = lk.lagregning(); kantobjektet.printregning(utskriften); boolean erbetalt = kantobjektet.erbetalt(); lk.avslutt(erbetalt); //else // String utskriften = lk.lagregning(); // kantobjektet.printregning(utskriften); // boolean erbetalt = kantobjektet.erbetalt(); // lk.avslutt(erbetalt); // public class BilUtleieFirma private LeieKontrakt[] leiekontraktene; // private Collection leiekontraktene; LeieKontrakt finnleiekontrakt(string regnr)

public class LeieKontrakt //assosiasjoner private Bil bilen; private Kunde kunden; private Regning regningen; private Forsikring forsikringen; private Skade skaden; private int gammelkmstand, nykmstand; private int gammelttanknivaa, nytttanknivaa; private int avtaltkmpris, avtaltbensinpris, avtaltkjoerelengde, avtaltpris; private boolean bleskadet = false; void settnykmstand(int kmstand) nykmstand = kmstand; bilen.settkmstand(kmstand); private int beregnbeloep() int tilleggspris = 0; int overskredetkm = ((nykmstand - gammelkmstand) - avtaltkjoerelengde); if (overskredetkm > 0) tilleggspris = overskredetkm * avtaltkmpris; int bensinmanko = nytttanknivaa - gammelttanknivaa; if (bensinmanko < 0) tilleggspris = tilleggspris + bensinmanko*avtaltbensinpris; return avtaltpris + tilleggspris; void settnytttanknivaa(int tanknivaa) nytttanknivaa = tanknivaa; bilen.setttanknivaa(tanknivaa); String lagregning() int beloep; int egenandel = 0; regningen = new Regning(); if ((bleskadet == true) && (forsikringen!= null)) egenandel = forsikringen.giegenandel(); // beloep = egenandel + beregnbeloep(); String utskriften = regningen.lagregning(kunden, bilen, beloep); return utskriften; void avslutt(boolean erbetalt) regningen.settbetalt(erbetalt); bilen.settstatus(bil.ledig); void settskade(string skadeinfo) bleskadet = true; skaden = new Skade(); skaden.settbeskrivelse(skadeinfo); bilen.registrerskade(skaden);

public class Bil // assossiasjoner private Skade[] skadene; // private Collection skadene; private String regnr; private int kmstand, tanknivaa; private int status = LEDIG; static public int LEDIG = 1; static public int UTLEID = 2; static public int SKADET = 3; void settkmstand(int nykmstand) kmstand = nykmstand; void setttanknivaa(int nytttanknivaa) tanknivaa = nytttanknivaa; void settstatus(int nystatus) status = nystatus; String giregnr() return regnr; void registrerskade(skade skaden) // legg til skaden i lista skadene public class Regning boolean betalt; String lagregning(kunde kunden, Bil bilen, int beloep) String kundenavn = kunden.ginavn(); String bilregnr = bilen.giregnr(); // lag regningen for kunden for gitt bil void settbetalt(boolean erbetalt) betalt = erbetalt; public class Skade private String beskrivelse; void settbeskrivelse(string skadebeskrivelse) beskrivelse = skadebeskrivelse;

public class Kunde private String kundeid; private String navn; String ginavn() return navn; public class Forsikring private int egenandel; int giegenandel() return egenandel;