Les gjennom hele oppgavesettet før du begynner å b,svare deloppgavene.

Like dokumenter
. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

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

ANTDAGER = 358; I Ifra nyttår 08 til 08 1ed julaften

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

Ol Emnekode: Faglig veileder: I L~~25 A - E!8 Viho~d~.1. F ntall oppga~ forsiden): ;;;handskr~vn-;

Les gjennom hele oppgavesettet før du begynner å besvare deloppgavene.

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

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

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

UNIVERSITETET I OSLO

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

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; }

HØGSKOLEN I SØR-TRØNDELAG

LO191D/LC191D Videregående programmering

UNIVERSITETET I OSLO

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

Antall sider (inkl. forsiden): 6

2 Om statiske variable/konstanter og statiske metoder.

HØGSKOLEN I SØR-TRØNDELAG

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

UNIVERSITETET I OSLO

Introduksjon til objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

INF1000 Metoder. Marit Nybakken 16. februar 2004

INF106 Objektorientert programmering

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Seminaroppgaver IN1010, uke 2

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

Eksamensoppgave i IFUD1025 Programmering i Java

UNIVERSITETET I OSLO

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000: Forelesning 7

Eksamen IN1010/INF1010 våren 2018

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

INF1000: Forelesning 7. Konstruktører Static

UNIVERSITETET I OSLO

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

Endret litt som ukeoppgave i INF1010 våren 2004

LC191D/LO191D Videregående programmering mai 2010

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

UNIVERSITETET I OSLO

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

EKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG ENTREPRENØRSKAP

UNIVERSITETET I OSLO

Dagens tema Kapittel 8: Objekter og klasser

INF1000 Behandling av tekster

2 Om statiske variable/konstanter og statiske metoder.

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

HØGSKOLEN I SØR-TRØNDELAG

INF1010 Binære søketrær ++

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

UNIVERSITETET I OSLO

INF1000 : Forelesning 4

Oblig4 - forklaringer. Arne og Ole Christian

INF1000: Forelesning 6. Klasser og objekter del 1

INF Uke 10. Ukesoppgaver oktober 2012

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

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000: Forelesning 4. Mer om arrayer Metoder

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000

Oblig 4Hybelhus litt mer tips enn i oppgaven

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

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

Kontinuasjonseksamen

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 Avdeling for informatikk og e-læring - AITeL

INF1000 oppgaver til uke 38 (17 sep 23 sep)

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Transkript:

Les gjennom hele oppgavesettet før du begynner å b,svare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i o pgaveteksten, dog med unntak av metodenes parameternavn som n velges fritt.. Dersom det er en deloppgave du ikke får til, bør du gå videre til den neste. Får du bruk for en metode fra en deloppgave d ikke har gjort, kan du gjøre kall på metoden selv om du ikke har pro rammert den. Du forutsetter da at den utfører det den er tiltenkt å gjør. Det er viktig at du svarer (i alle fall litt) på alle deloppgavene.. Merk deg at svært mye av programmeringen går ut p å gjøre kall på passende metoder av dem som er omtalt i oppgaven. Merk deg derfor o hva de omtalte metodene utfører. Pass pa ved metod kall at argumenter er av riktig type og sørg for å gjøre bruk v dataene som metodene returnerer.. Svar nøyaktig på det du blir spurt om. Dersom du me er at oppgaveteksten ikke gir deg tilstrekkelig informasjon lier er uklar, kan du gjøre dine egne forutsetninger. Gjør i så fall rede f r disse.. Ved sensur vil alle bokstaverte deloppgaver (a, b, c,.. ) telle like mye. 4

Lotteri Oppgaven g~r ut p~ ~ lage deler av et program for et lite p gelotteri. Programmet skal kunne registrere loddsalg, bestemme gev stenes størrelse og utføre trekning. Klassen Lodd representerer ett enkelt lo d. Klassen Lotteri inneholder en array av slike. Dessuten inneholder den blant annet en array av Premie-objekter. Disse representerer lotteriets premier. Kla sen Lotterivindu definerer et brukervindu som skal brukes blant annet i forbi deise med loddsalg og trekning. Nærmere detaljer for de nevnte klass ne er forklart i de enkelte deloppgavene. Metodene som du blir bedt om ~ pro rammere, skal i den grad det faller naturlig gjøre bruk av de konstanter so er definert i oppgaveteksten. Oppgave 1 Klassen Lodd representerer ett enkelt lodd. Den skal ha dat felt (instansvariable) for loddkjøperens navn, adresse og telefo nummer. Dessuten skal hvert Lodd-objekt ha et loddnummer {heltall og en variabel som indikerer om loddet er et vinnerlodd eller ikke. Dette bl r først avgjort ved trekningen. I utgangspunktet er det derfor ikke et vinnerlod. a) Programmer klassen Lodd. Klassen skal ha konstruktørf m initialiserer alle instansvariable. Konstruktøren må ha de nødvendige p rametre for dette. Klassen skal ha følgende metoder: public void setvunneto{.) Metoden registrerer at loddet er et vinnerlodd public boolean vunneto { Returverdien indikerer om dette er et vinnerlodd eller ikke. public String tostringo { } Den returnerte teksten skal inneholde opplysninger om lod*ts nummer, samt loddkjøperens navn, adresse og telefonnummer. I Oppgave 2 Klassen Premie som er skissert i det følgende, representeret en enkelt premie i lotteriet. 2.

skal initialisere premiesum og plassering via parametre. public class Premie private Lodd vinnerlodd; / /Ioddet som har vunnet premien, / /bestemmes når treknin blir foretatt t pr!vate ~ouble pre.miesum; / /hvor m.ange \~oner premien ut jør private Int plassering; / /nummeret til premien <Konstruktør> public void setvinner( Lodd vinner) public Lodd getvinnero } public String tostringo~ J. a) Programmer konstruktør og metoder for klassen premie.! Konstruktøren Metodene setvinner og getvinner er set- og get-metoder (m tator- og aksessor-metoder) for instansvariabelen vinnerlodd. tostrin -metoden skal returnere en tekst som forteller hvilken premie dette er (nu meret på premien) og hvor mange kroner den er på (fortrinnsvis for attert til to desimaler). Oppgave 3 I det følgende finner du en skisse av klassen Lotteri. public class Lotteri { public static final int MAXANTLODD = 100, ANTPREMIER = 6 public static final double LODDPRIS = 50.0, RØDEKORSAND L = 0.1; private Lodda loddbok = new Loddr MAXANTLODD ]; private Premier] premieliste = new Premie[ ANTPREMIER ]; private int ants"olgte = O; Ilantall solgte lodd private double sumloddsalg = 0.0; Ilsummen det er solgt I d for totalt private double rødekors = 0.0; Ilsummen som skal gå tit Rø e Kors private boolean trekningforetatt = false; Ilindikerer om trek ng er foretatt <Metoder du skal programmere i de følgende deloppgavene.1 a) Programmer metodene public int getantsolgteo { public boolean trukketo { } / /returverdi indikerer antall sol~e lodd } / /returverdi indikerer om det e~ foretatt trekning b) Programmer metoden public double loddsalg( String n, String adr, String tlf, int ant~odd ) {...} Metoden registrerer salg av et antall nye lodd, forutsatt at et er nok usolgte lodder igjen. Parametrene angir loddkjøperens navn, adres og telefonnummer, samt antall lodd som ønskes kjøpt. Loddnu meret for hvert lodd skal settes lik array-indeksen for hvor Lodd-objektet bl r plassert. Ved loddsalg skal det holdes rede på hvor mange lodd som er so gt hittil og hvor stor sum det er solgt lodd for. Returverdien skal indikere sk Idig beløp for loddsalget, eller 0.0 om det var for få usolgte lodder igjen. 3

c) Programmer metoden public void beregnpremiero { } Metoden skal foreta beregning av premier I samt hvor stor p ngesum som skal g~ til Røde Kors. Beregningene skal gjøres etter følgen e regler: En andel lik RØOEKORSANOEL av summen det er solgt lodd r skal g~ til Røde Kors. Av det resterende beløpet skal halvparten g~ til første remien. De fem neste premiene får like mye hver av den andre halvparten. etoden skal registrere premiene i arrayen premieliste. d) Programmer metoden public String premieprognosero,..} Den returnerte teksten skal opplyse om summen det er SOlg r lodd for, hvor mye som har gått til Røde Kors, samt premienummer og pe gebeløp for de seks premiene. e) Programmer metoden public void trekning() ) Metoden skal foreta selve trekningen og registrere at trekni g er foretatt. Vinnerloddene skal trekkes ved at det trekkes et tilfeldig tall blant de loddnumrene som er solgt. Det registreres at det uttrukne I ddet n~ er et vinnerlodd. Vinnerne skal registreres i Premie-objektene ve at pekeren vinnerlodd settes til ~ peke p~ vinnerloddet. Metoden m~ pa se p~ at et lodd ikke kan være vinnerlodd mer enn en gang. f) Programmer metoden public String vinnerlisteo ",I.. Den premienummer returnerte teksten og pengebeløp, skal for hver samt av nummeret de seks premiene til vinnerio in f det eholde og vinnerens navn, adresse og telefonnummer. Oppgave 4 I det følgende ser du et bilde av programmets brukergrense~nitt, samt en skisse av klassen Lotterivindu som definerer brukergrenses~ittet. 4

Navn -.-J Adresse TelefonI --j Antall lodd D Sum å betale ~="=~.~~=~ I Registrerlodds8g II VispremieprOgnose' Foretatre'.j ~Iott;rr t Resultater public class Lotterivindu extends JFrame private Lotteri lotteriet; private JTextField navnefelt, adressefelt. telefonfelt, antallfelt,t sumfelt; private JButton regknapp, prognoseknapp, trekningsknapp, n knapp; private JT extarea utskrift; private Lotterilytter lytter; public LotterivinduO super( "Pengelotteri" ); lotteriet = new Lotteri(); lytter = new Lotteri Iytter(); regknapp = new JButton( "Registrer loddsalg" ); regknapp.addactionlistener( lytter ); prognoseknapp = new JButton( "Vis premieprognose' prognoseknapp.addactionlistener( lytter ); trekningsknapp = new JButton( "Foreta trekning" ); trekningsknapp.addactionlistener( lytter ); nyknapp = new JButton( "Nytt lotteri" ); nyknapp.addactionlistener( lytter ); <Metoder du skal programmere i de følgende deloppgavene' private class Lotterilytter... {... } / / som du skal programmere under punkt 4 e) 1 I de følgende deloppgavene skal all kommunikasjon med bt keren foreg~ via komponentene som er vist i brukergrensesnittet. a) Programmer metoden public void registrerloddsalg{) { Metoden skal registrere salg av et antall nye lodd, forutsatt t t det er nok utsolgte lodder igjen. Det skal gis passende tilbakemelding il brukeren. Skyldig beløp for loddsalget skal skrives ut i tekstfeltet bere net for dette, 5

b) Programmer metoden public void vispremieprognoseo { t Metoden skal, forutsatt at det er solgt minst like mange IOdd f som det er premier i lotteriet, be~egne hvor store premi~ne vil bli. Den ndelen av loddsalget som skal ga til Røde Kors skal og sa beregnes. Re ultatene av beregningene skal skrives ut i programvinduet. c) Programmer metoden public void foretatrekningo { Metoden skal, forutsatt at det er solgt minst like mange lod som det er premier i lotteriet, og forutsatt at det ikke allerede er foreta trekning, foreta trekning og premieberegning. I brukervinduet skal vinnerlis a skrives ut med det innhold som er nevnt i oppgave 3 f), eller eventuelt oppi sning om hvorfor trekning ikke lot seg utføre. d) Programmer metoden public void nyttlotteri() Metoden skal, forutsatt at det er foretatt trekning i nåvære~e lotteri klargjøre for et nytt lotteri. I e) Programmer den indre klassen Lotterilytter slik at den fa1ger opp de hendelsene som finner sted i brukergrensesnittet, og sørger for at de tilhørende oppgavene blir utført. f) inneholdende Til slutt skal en du main-metode programmere som applikasjonskiassen starter hele programme. Lotterif rogramt Klassen skal programmeres slik at applikasjonen avsluttes n~r man klikk r p~ lukkeknappen i vinduets øvre høyre hjørne. SLUTT b