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



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

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

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

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

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

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

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

Antall sider (inkl. forsiden): 6

UNIVERSITETET I OSLO

LO191D/LC191D Videregående programmering

UNIVERSITETET I OSLO

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

Gjennomgang av eksamen H99

HØGSKOLEN I SØR-TRØNDELAG

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

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

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

INF1000 Metoder. Marit Nybakken 16. februar 2004

INF106 Objektorientert programmering

2 Om statiske variable/konstanter og statiske metoder.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oblig 4Hybelhus litt mer tips enn i oppgaven

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

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

UNIVERSITETET I OSLO

LC191D/LO191D Videregående programmering mai 2010

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

INF1000 Prøveeksamen Oppgave 7 og 9

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Eksamen. Objektorientert Programmering IGR 1372

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

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

INF Uke 10. Ukesoppgaver oktober 2012

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

Grafiske brukergrensesnitt med Swing og AWT

UNIVERSITETET I OSLO

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

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til Ant. oppgaver 6

import javax.swing.*; import java.awt.*;

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1

UNIVERSITETET I OSLO

Eksamen IN1010/INF1010 våren 2018

Grafisk Brukergrensesnitt

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Introduksjon til objektorientert programmering

HØGSKOLEN I SØR-TRØNDELAG

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

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

UNIVERSITETET I OSLO

OPPGAVE 5b og 8b Java Kode

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

JPanel. Komponent hieraki. Window/JWindow. Applet/JApplet. JDialog. JFrame

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

Eksamensoppgave i IFUD1025 Programmering i Java

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

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

6108 Programmering i Java. Leksjon 8. GUI: Grafisk brukergrensesnitt. Del 2: Roy M. Istad 2015

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Argumenter fra kommandolinjen

Endret litt som ukeoppgave i INF1010 våren 2004

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

UNIVERSITETET I OSLO

EKSAMEN. Objektorientert programmering

Seminaroppgaver IN1010, uke 2

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

UNIVERSITETET I OSLO

INF1000: Forelesning 7

Enkle generiske klasser i Java

HØGSKOLEN I SØR-TRØNDELAG

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

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

TOD063 Datastrukturer og algoritmer

Transkript:

~KSAMENSOPPGA VE Les gjennom hele oppgavesettet før du begynner A besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i oppgaveteksten, dog med unntak av metodenes parametemavn som kan velges fritt.. Dersom det er en deloppgave du ikke ~r til, bør du g~ videre til den neste. F~r du bruk for en metode fra en deloppgave du ikke har gjort, kan du gjøre kall p~ metoden selv om du ikke har programmert den. Du forutsetter da at den utfører det den er tiltenkt ~ gjøre. 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 hva de omtalte metodene utfører. Pass p~ ved metodekall at argumenter er av riktig type og sørg for ~ gjøre bruk av dataene som metodene returnerer.. Svar nøyaktig p~ det du blir spurt om. Dersom du mener at oppgaveteksten ikke gir deg tilstrekkelig informasjon eller er uklar, kan du gjøre dine egne forutsetninger. Gjør i så fall rede for disse.. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye. 1 of? 16.02.04 15:56

FILMUTLEIE I denne oppgaven skal du lage deler av et program som skal administrere utleie av filmer til personlige kunder. (Det kan dreie seg om DVD- eller videofilmer, men programmet gjør ikke noe skille mellom disse.) Programmet skal kunne registrere filmer, med et antall kopier av hver film, registrere kunder, registrere utleie av filmer til kunder, og registrere innlevering. (For at oppgaven ikke skal bli for omfattende eller for komplisert, er programmet gjort en del enklere enn det som normalt ville kreves av et slikt program. Blant annet er det ikke tatt med noe om datoer og leietid. Det blir heller ikke foretatt noe lagring p~ fil.) De enkelte deloppgavene nedenfor inneholder nærmere detaljer om hva du skal programmere. NB! Du skal bare programmere de metoder (og konstruktører) som det konkret spørres om i de enkelte deloppgaver. Foran hver metode står en kommentar om hvilken virkning vedkommende metode skal ha. Merk deg denne nøye. Oppgave 1 Klassen Film som er skissert nedenfor skal representere en film som kan leies. ~lic class Film private String tittel; II Filmens tittel private double leiepris; II Hva det koster & leie (en kopi av) denne filmen. private int antallinne; II Antall kopier (eksemplarer) av denne filmen som II er inne (det vil si ikke er utleid) for øyeblikket < Konstruktør som initialiserer datafeltene via parametre > < get-metoder for tittel og pris > II Registrerer den økning I antall kopler Inne som 'parameteren indikerer. public void registrernyekopier( int antall) {... } II Returverdlen indikerer om det er noen kopler inne av filmen. public boolean ledig() {... } II Registrerer at det n& blir leid ut en kopi av filmen. public void leiut() { 000 } II Registrer at det n& blir levert Inn en kopi av filmen. public void leverlnn() {...} / / Returnerer filmens tittel, antall kopier inne, og leiepris. public String tostring() {...} a) Programmer klassens konstruktør, de nevnte get-metodene, samt metoden registrernyekopier. b) Programmer de resterende metodene som er nevnt. )f7

Oppgave 2 Klassen Filmarkiv som er skissert nedenfor inneholder en samling av Film-objekter, samt metoder for & administrere disse. public class Filmarkiv { private Film[] filmregisteri < eventuelle andre nødvendige datafelter < Konstruktør som foretar nødvendig initialisering Det skal være parameter for arrayens kapasitet. : I1 Registrerer et nytt objekt, i tilfelle det er plass. I1 Returverdlen indikerer dette. public boolean regnyfilm( Film ny ) { 000 }. I I Returnerer arraylndeks for filmen med gitt tittel, II -11 tilfelle den ikke finnes. private int finnfilm( String tittel) {.. II Returverdlen indikerer om det er noen kopier Inne av filmen II med gitt tittel. public boolean ledig( String tittel) {...} I1 Registrerer økning i antall kopier inne av filmen med gitt tittel. I1 Returverdien indikerer om filmen ble funnet, slik at dette lot seg gjøre, public boolean regnyekopier( String tittel, int antall) {.. J II Registrerer utleie (aven kopi) av filmen med gitt tittel. public void leiut( String tittel) {...} II Registrerer innlevering (aven kopi) av filmen med gitt tittel. II Returverdien indikerer leieprisen som skal betales. I I Dersom filmen ikke blir funnet, skal metoden returnere 0.0. public double leverlnn( String tittel) {... } I1 Returnerer for alle registrerte filmer opplysninger om filmens tittel, I1 anta.!1 kopler inne, og leiepris. public String tostring() { 000 } a) Programmer klassens konstruktør, samt metodene regnyfilm og finnfilm. b) Programmer metodene ledig og regnyekopier. c) Programmer metodene lei Ut, leverinn og tostring. Oppgave 3 Klassen Kunde som er skissert nedenfor representerer en kunde som kan leie filmer. yublic class Kunde public static final int MAKS - Si I1 Det maksimale antall filmer kunden kan I1 ha p& leie samtidig. p~ivate static int nestenr = li I1 For automatisk generering av kundenummer. private String navni I1 Kundens navn. p~ivate int kundenummer i I1 Kundens unike kundenummer. private String[] filmer; I1 Inneholder tittene p& filmene kunden har p~ utleie. private int antleid; I1 Antall filmer kunden har p~ utleie. of?

~AMENSOPPGA VE Konstruktør som foretar nødvendig initialisering. Kundens navn mottas som parameter. Kundenummer skal genereres automatisk fortløpende. > I1 Returnerer kundenummer. Skal Ikke programmeres, men kan brukes public int getkundenummer() { 000 } I1 Returnerer kundenavn. Skal Ikke programmeres, men kan brukes public String getnavn() {... } I1 Returverdlen Indikerer om kunden for øyeblikket har I1 leid filmen med den tittel som parameteren angir. public boolean harfilm( String tittel) { 000.} I1 Registrerer at kunden leier filmen med gitt tittel, forutsatt at kunden I1 Ikke allerede har leid det maksimalt tillatte antall filmer. I1 Returverdlen Indikerer om leie av filmen ble godtatt. public boolean leifilm( String tittel) {... } II Registrerer Innlevering av filmen med gitt tittel. Dersom denne finnes, II skal tittelen fjernes fra arrayen filmer. FIlmtItlene som arrayen II Inneholder, skal til enhver tid ligge etter hverandre uten "huller" II fra starten av arrayen. II Returverdlen skal indikere om Innlevering ble registrert. public boolean leverlnn( String tittel) {... } I1 Returnerer kundens navn, kundenummer og titlene p filmene som kunden I1 har p~ utleie for øyeblikket. public String tostring() {... } a) Programmer klassens konstruktør, samt metodene harfilm og leifilm b) Programmer metodene leverinn og tostring. Oppgave 4 Klassen Kunderegister som er skissert nedenfor inneholder et kundeobjekt for hver kunde som er registrert av programmet, samt metoder for blant annet utleie og Innlevering. ~ublic claes Kunderegister public static final int MAXANTKUNDER - 1000; II Maksimalt antall kunder I I som kan registreres. private Kunde[] kunder; < Eventuelle andre nødvendige datafelter < Konstruktør som foretar nødvendig initialisering I1 Registerer en ny kunde, I tilfelle det er plass. 1/ Returverdlen Indikerer om registrering ble foretatt. I/Metoden skal Ikke programmeres, men kan brukes public boolean regnykunde( Kunde ny ) {... } II Returnerer Kunde-objekt med gitt kundenummer. II Returnerer null dersom dette Ikke finnes. II Metoden skal Ikke programmeres, men kan brukes. private Kunde finnkunde( int kundenr) { 000 J\ I1 Returnerer registrerte data for kunden med gitt kundenummer, eller II eventuelt melding om at denne Ikke finnes. public String kundeinfo( int kundenr) { 000 } 4of7 16.02.0415:45

I1 Registrerer utleie av film med gitt tittel til kunde med gitt I1 kundenummer. Returverdien indikerer om dette gikk i orden. public boolean leiutfilm( String tittel, int kundenr I1 Registrerer innlevering av film med gitt tittel fra kunde med gitt I1 kundenummer. Returverdien indikerer om dette lot seg utføre. public boolean leverlnnfilm( String tittel, int kundenr ) / / Returnerer en array som inneholder Kunde-objektene / / for alle kunder som for øyeblikket har leid filmen med den tittel / / som parameteren angir. public Kunde[] leietakere ( String tittel) a) Programmer klassens konstruktør, samt metodene kundeinfo og leiutfilm. b) Programmer metodene leverinnfilm og leietakere. Oppgave 5 Nedenfor kan du se et bilde av programmets brukergrensesnitt. Vinduet er definert av klassen Filmvindu som er skissert nedenfor. pub.ic class Filmvindu extends JFrame private public Filmarkiv static final filmer; int MAXFILMTITLER - 100; private Kunderegister kunder;. pr1vate JTextField knavn, knr, ftittel., prisfelt, kopifelt; pl'ivate JButton regkunde, kinfo, leiut, levinn, regfilm, regkopier, leietakere; p~ivate JTextArea utskrift;,f7

~lic Filmvindu() { < oppretter objekter for skjermkomponentene Container c a getcontentpane(); c.setlayout( new FlowLayout() ) c.add( new JLabel( " Kundenavn" c.add( knavn ); c.add( regkunde ); c.add( new JLabel( " Kundenunwner " )..,, c.add( knr ); c.add( klnfo ); c. add ( new JLabel ( "Filmtittel" c.add( ftittel ); c.add( new JLabel( "Leiepris" ) p.add( pris felt ); c.add( new JLabel ( I"Antall kopier" c.add( kopifelt ); c.add( leiut ); c.add( levinn ); c.add( regfilm ); c.add( regkopier ); c.add( leietakere ); c.add( new JScrollPane( utskrift) ); < oppretter lytteobjekt og registrerer dette for knappene filmer = new Filmarkiv ( MAXFILMTITLBR kunder = new Kunderegister(); / / Metodene som er listet opp nedenfor blir aktivert n~r brukeren klikker / / p~ de forskjellige knappene som er vist i programvinduet ovenfor. I I Registrerer en ny kunde I datasystemet. Kundens navn leses inn. I I Kundens tildelte kundenummer skal skrives ut i tekstfeltet for dette. public void registrerkunde().000 1 I1 Skriver ut i tekstområdet all registrert informasjon for kunden med det 1/ kundenummer som leses Inn. public vold viskundeinfo() { 000 } II Registrerer utleie aven film (forutsatt at den er ledig). Kundenummer II og fl I mtittel leses inn. I tekstomr~det skal det skrives ut relevant II tilbakemelding til brukeren. public void leiutfilm() {... } I I Registrerer innlevering aven film. Kundenummer og filmtittelleses inn. I I I tekstomr~det skal det skrives ut leieprisen som kunden m~ betale, I I eller eventuelt annen relevant tilbakemelding i tilfelle innleveringen I I ikke lot seg registrere. public void leverlnnfilm() {... } I I Registrerer nye kopier aven film som allerede er registrert. II FilmtIttelog antall kopier leses inn. I I I tekstomradet skrives det ut relevant tilbakemelding til brukeren public void registrernyekopier() {... } II I tekstomr~det skrives det ut kundenumrene og navn for alle I I kundene som har leid filmen som det leses Inn tittel for. public void visleietakere() {... } )(7

,KSA1vIENSOPPGA VE file:/ / /li :/Prog/xfeb04/xfeb04e.htrnl ~r~vate class Knappelytter implements ActionListener l < Definerer lytteobjekt for vinduets knapper Skal ikke programmeres. > a) Programmer metodene registrerkunde og viskundeinfo. b) Programmer metodene leiutfilm og leverinnfilm. c) Programmer metodene registrernyekopier og visleietakere. SLUTT PÅ OPPGAVEN! For ordens skyld nevner vi at det som er beskrevet ovenfor ikke representerer noe fullstendig program. Det mangler en main-metode som inneholder nødvendig kode for ~ f~ kjørt programmet. Denne skal du imidlertid Ikke programmere., )f7