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



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

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

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

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

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

Antall sider (inkl. forsiden): 6

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

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato:

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

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

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

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

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

UNIVERSITETET I OSLO

EKSAMEN. Objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

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

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

LO191D/LC191D Videregående programmering

EKSAMEN. Algoritmer og datastrukturer

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

EKSAMEN med løsningsforslag

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

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

UNIVERSITETET I OSLO

INF106 Objektorientert programmering

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

UNIVERSITETET I OSLO

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

UNIVERSITETET I OSLO

Eksamensoppgave i IFUD1025 Programmering i Java

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Eksamen IN1010/INF1010 våren 2018

Gjennomgang av eksamen H99

INF1000 Metoder. Marit Nybakken 16. februar 2004

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

Informasjon Prøveeksamen i IN1000 høsten 2018

OPPGAVE 5b og 8b Java Kode

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

UNIVERSITETET I OSLO

Eksamen Objektorientert Programmering 2011

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løsningsforslag EKSAMEN

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Kontinuasjonseksamen

UNIVERSITETET I OSLO

Løse reelle problemer

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

UNIVERSITETET I OSLO

EKSAMEN. Emne: Algoritmer og datastrukturer

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Emnekode: I-Dato: I ~ Antall oppgaver: I I Aiie -sk:i=rftlige - bme trykte og håndskrevne, samt alle typer

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

TOD063 Datastrukturer og algoritmer

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

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

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

INF Seminaroppgaver til uke 3

UNIVERSITETET I OSLO

Introduksjon til objektorientert programmering

Eksamensoppgave i IFUD1025 Programmering i Java

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

UNIVERSITETET I OSLO

INF1000: noen avsluttende ord

Algoritmer og Datastrukturer

INF Uke 10. Ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

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

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

Transkript:

Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte og håndskrevne Emnekode: LO 127 A Dato: 15.12.2004 Antall oppgaver: 4 Faglig veileder: Eva Vihovde Eksamenstid: 09.00-14.00 Antall vedlegg: O Kandidaten må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle uklarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger til grunn for løsningen. Les gjennom hele oppgavesettet før du begynner å besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt I oppgaveteksten, dog med unntak av metodenes parameternavn som kan 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 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 vii alle bokstaverte deloppgaver (a, b, c,...) telle Ilke mye, bortsett fra Oppgave 1 som teller dobbelt. file:1 /H: \prog\legekontor\xdes04.html 13.12.2004

Side 2 av 7 Du skal lage et program som skal brukes ved en legevakt. Programmet skal hsndtere mottak av pasienter som kommer til legevakten i løpet aven dag ved S henvise hver pasient til en ledig lege. I tillegg skal programmet lagre paslentjoumaler for legenes pasienter. (Med paslentjoumal mener vi en tekst som inneholder data om pasienten og pasientens sykdom(mer).) Programmet vii besta av fire klasser; Pasient, Lege, LegeVakten og PasientMottak. Objekter av typene Pasient og Lege viiioppgaveteksten bli omtalt som henholdsvis pasienter og leger. Av hensyn til oppgavens størrelse er programmet svært forenklet I forhold til det som normalt ville kreves av et slikt program, men er bygget opp slik at det er mulig legge til ønsket funksjonalltet ved senere anledninger. OPPGAVE 1 I denne oppgaven skal du programmere klassen Pasient. Klassen skal ha følgende datafelt:. Pasientens navn. Pasientens personnummer / / Bør være heltall av hensyn til resten av oppgaven. Pasientens diagnose Du ma selv avgjøre hvilke datatyper som skal brukes, og hvilken aksessform datafeltene skal ha. Klassen skal ha en konstruktør som InitIaliserer datafeltene. Konstruktøren skal kun ha pasientens navn og personnummer som parametre. Klassen skal i tillegg ha get-metoder for pasientens navn og personnummer, samt en setmetode for å sette diagnose p& pasienten. Til slutt skal klassen ha en tostring-metode. Metoden skal returnere en tekst som inneholder alle data om pasienten. Aett Inn forklarende ord slik at den returnerte teksten ligner p en paslentjournal. Hvis det Ikke er stilt noen diagnose, skal dette fremg~ av teksten. OPPGAVE 2 I denne oppgaven skal du programmere flere av lege-klassens metoder. Nedenfor ser du en skisse av klassen: public class Lege ( private pri vate String static navn; final int MAX c 14; / / max antall pasienter som legen kan behandle / / I løpet aven dag private Pasient [J pasienter; / / array som kan lagre legens pasienter I løpet aven dag private int antall - O; / / antall pasienter som legen behandler I løpet av dagen private int neste - O; / / indeksen til neste pasient som legen skal behandle public Leqe(Strinq n) navn - n; pasienter - new Pasient[MAX]; antall - O; neste - O; file:/ /H:\prog\Legekontor\xdes04.html 13.12.2004

Side 3 av 7 ) public String getnavn return navn; public int qetantall( return antall; < metoder du skal programmere> Pasient-objektene skal settes Inn i arrayen pasienter etter hvert som pasientene bestiller time hos legen, og du kan anta at disse objektene ligger kontinuerlig etter hverandre. Variabelen antall skal til enhver tid holde rede p~ hvor mange pasienter legen har. Variabelen neste skal.peke ut. den neste pasienten som skal behandles, slik at objektene med Indeks mindre enn neste representerer pasienter som allerede er behandlet av legen, mens de med Indeks større eller Ilk neste, og samtidig mindre enn antall, venter p~ ~ bli behandlet. I hver deloppgave far du oppgitt metodens signatur og returverdl, men du ma selv programmere metodekroppen. Denne er beskrevet I pseudo-kode I hver metode: a) public Strinq bestilltime(pasient p < Pasienten p skal settes inn I arrayen av pasienter tilhørende denne legen, o under forutsetning av at det er plass. I sa fall skal nødvendig oppdatering av et eller flere datafelt finne sted og metoden skal s~ returnere legens navn. Hvis legen Ikke har plass til pasienten, skal metoden returnere null. > b) public Pasient nestepasient() < Metoden skal returnere den pasienten som star for tur til A bli behandlet av legen. Hvis Ingen venter pa tur, skal metoden returnere null. c) public Pasient finnpasient(int pnr < Hvis pasienten med personnummer Ilk pnr er en av legens pasienter, skal dette pasientobjektet returneres av metoden. I motsatt fall skal metoden returnere null. > d) public boolean setdiaqnose(string d,int pnr < Hvis pasienten med personnummer Ilk pnr er en av legens pasienter I file:! /H: \prog\legekontor\xdes04.html 13.12.2004

Side 4 av 7 skal diagnosen til pasienten settes Ilk d, og metoden skal returnere true. Hvis legen Ikke har pasienten, skal metoden returnere false. > e) public Strinq journal(int pnr < Metoden skal returnere en tekst som Inneholder navnet pa legen og journalen til pasienten (se pasientens tostring-metode) med personnummer Ilk pnr, under forutsetning av at hun/han er en av legens pasienter. I motsatt fall skal metoden returnere en tekst som forteller at denne pasienten Ikke blir behandlet av legen. > OPPGAVE 3 I denne oppgaven skal du programmere metodene til klassen LegeVakten. Nedenfor ser du en skisse av klassen: public clas8 LegeVakten f private Leqe[ legene; public LegeVakten (Lege ( l legene - l; < metoder du skal programmere> Konstruktøren tar Imot en array som inneholder Lege-objekter. Du kan anta at arrayen er full dvs. Ingen av elementene har verdien null. I hver deloppgave f~r du oppgitt metodens signatur og returverdl, men du m~ selv programmere metodekroppen. Denne er beskrevet I pseudo-kode I hver metode: a) public Lege finnlege(strinq n) < Hvis det finnes en lege med navn lik n p~ legevakten, skallegeobjektet for denne returneres av metoden. I motsatt fall skal metoden returnere null. > b) public Lege finnlediglege() o Metoden skal returnere den legen pa legevakten som har færrest pasienter (uavhengig av om disse er behandlet eller Ikke). Ved likt antall spiller det Ingen rolle hvem som velges. > rue:/ /H:\prog\Legekontor\xdes04.html 13.12.2004

c) public String bestilllegetime Pasient p) < Metoden skal bestille time for pasienten p hos den legen som har færrest pasienter (uavhengig av om disse er behandlet eller Ikke). Returverdien skal være navnet p~ legen som pasienten har f5tt time hos. Hvis denne legen Ikke har plass til flere pasienter, skal metoden returnere null. (Denne situasjonen kan kun oppst~ hvis Ingen av legene kan ta imot flere pasienter.) > d) public Pasient nestepasient(string n) < Metoden skal returnere den neste pasient som skal behandles av legen med navn Ilk n, under forutsetning av at denne legen jobber ved legevakten. Hvis denne legen ikke jobber der, eller vedkommende ikke har noen pasienter som skal behandles, skal metoden returnere null e) public Pasient søkpasient int pnr) ) < Metoden skal returnere pasienten som har personnummer Ilk pnr. Hvis Ingen av legene ved legevakten har en slik pasient, skal metoden returnere null. > f) public String pasientjournal ( int pnr) < Metoden skal returnere pasient journalen til pasienten som har personnummer Ilk pnr. Hvis Ingen av legene ved legevakten har en slik pasient, skal metoden returnere null. > g) public boolean setpasientdiaqnose(strinq d, int pnr) ( < Metoden skal sette diagnose p~ pasienten med personnummer Ilk pnr og returnere true. Diagnosen er gitt av parameteren d. Dersom Ingen av legene ved legevakten har en slik pasient, skal metoden returnere false. > OPPGAVE 4 Klassen PasientMottak definerer brukergrensesnittet til programmet: file:/ /H:\prog\Legekontor\xdes04.html 13.122004

Side 6 av 7 Nedenfor ser du en skisse av klassen: < import-setninger> public class PasientHottak extends JApplet implements ActionListener private JTextField legefelt, pasientnavnfelt, pasientnrfelt; private JTextArea utskriftsområde; private JButton nytime, nestepasient,,diagnose; private LegeVakten legevakten; private static final int EGENANDEL - 150; public vold init() < oppretter brukergrensesnittet> nytime.addactionlistener(this); nestepasient.addactionlistener(this); diagnose.addactionlistener(this); Lege[] legene - opprettlegevakt() i legevakten - new LegeVakten (legene) i < Metoder du skal programmere> Din oppgave blir Sprogrammere klassens metoder, bortsett fra init-metoden. I hver deloppgave fsr du oppgitt metodens signatur og returverdl, men du ms selv programmere metodekroppen. Denne er beskrevet I pseudo-kode I hver metode: a) public Lege[] opprettlegevakt() < Følgende leger skal jobbe p~ legevakten: "Kristiansen", "UeR, RVogt", "Haug" og RBrunR. Metoden skal returnere en array som Innholder lege-objekter tilsvarende disse legene. Arrayen skal Ikke være lengre enn antallet leger. > file:1 /H:\prog\Legekontor\xdes04.html 13.12.2004

Side 7 av 7 b) public void bestilllegetime() l < N&r brukeren klikker p& "Bestill timen-knappen skal denne metoden kalles. Du kan forutsette at navnet og personnummeret til pasienten da er fylt ut av brukeren. Metoden skal bestille legetime, under forutsetning av at det finnes en ledig lege som har plass. J så fall skal metoden skrive en tekst I utskrlftsomr&det som forteller hvem pasienten har f&tt time hos. J motsatt fall skal det skrives en melding om at -Ingen leger har ledige timer i dag-. > } c) public void nestepasient() < NAr brukeren klikker pa "Neste pasient"-knappen skal denne metoden kalles. Du kan forutsette at brukeren av programmet har fylt ut navnet pa en lege i tekstfeltet legefelt. Metoden skal finne neste pasient som venter pa denne legen, for sa A skrive pasientens navn og personnummer I henholdsvis pasientnavnfelt og pasientnrfeit. I tillegg skal utskrlftsomradet "blankes ut". Hvis Ingen pasienter venter p~ tur eller legenavnet er ukjent (skrevet feil, eller legen ikke jobber p~ legevakten), skal det skrives melding om det i utskriftsomr det. > d) pubilc vold setdlaqnose( < Når brukeren klikker på "Dlagnose"-knappen skal denne metoden kalles. Du kan forutsette at brukeren av programmet har skrevet en diagnose i utskriftsområdet og at personnummeret til pasienten den gjelder for st~r I tekstfeltet pasientnrfel t. Diagnosen skal så lagres I pasientobjektet med dette personnummeret. Hvis dette gikk bra, skal pasientens journal skrives til utskriftsområdet. Journalen skal Inneholde navnet på legen som har behandlet pasienten, og ellers alle data som er lagret om vedkommede pasient. I tillegg skal det gis opplysninger om egenandelen som pasienten må betale. Hvis det Ikke finnes en lege med det aktuelle navnet, eller det Ikke finnes noen pasient med det aktuelle personnummeret, skal det skrives melding om det til utskriftsområdet. > e) Du skal ns programmere den metoden som gjør klassen PasientMottak til et lytteobjekt og som kreves Implementert av interface ActionListener. Sørg for at denne metoden kaller opp de riktige metodene av de du har definert over, alt etter som hvilken hendelse som finner sted. SLUTT file:/ /H: \prog\legekontor\xdes04.html 13.12.2004