innledning eksamen inf1010 våren 2017 - universitetet i oslo · eksamen inf1010 våren 2017 1/12...

Post on 03-Mar-2021

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

EksamenINF1010våren2017

1/12

Innledning

EksamenINF1010våren2017Totalt100poengmulige+5bonuspoeng(ioppgave5G)PRAKTISKINFORMASJONHvisdusynesnoendeleravoppgaveneruklarkanduleggedineegneforutsetningertilgrunnoggjøredineegnerimeligeantagelser.Gjørisåfallredefordisseforutsetningeneogantagelsene.Unngååbrukeenstordelavtidendinpåoppgaversomgirdegfåpoeng.Faglærerprøveråbesøkereksamenslokaletmellomklokka10og11foråoppklareeventuelleuklarheterogfeilioppgaveteksten.TillattehjelpemidlerEnestetillattehjelpemiddelerlæreboken,samtutdeltekstrakapittelomtråder.TegningpåpapirIoppgave1Askalsvarettegnespåpapir(skisseark).Instruksjonomutfyllingavskissearkfinnerdupåpultendin.Huskånoterekodenummeretoganneninformasjonmedéngang;duvilikkefåtidtilågjøredetteetterateksamenerover.DetblirIKKEgittekstratidforåfylleutinformasjonsboksenepåskisseark(engangskoder,kand.nr.o.l.).OBS:denneoppgavenermerketsomtype"muntlig"ioppgaveoversiktenavtekniskeårsaker.Omduharbehovforåtegneandredatastrukturer(tilhørendeandreoppgaverenn1A)foråvisesensorhvordandutenkernårduskriveralgoritmer,såtegnerdudetteettersvaretpåoppgave1A,skrivertydeligpåtegningenhvilken/hvilkeoppgave(r)tegningentilhører,oglevereraltsomsvarpåoppgave1A.Blandedetekst/kodesvarInoenoppgaverskaldubådeskrivetekstogprogram.Dukandaskriveteksteninni”programboksen”utenåpassepåriktigJava-syntaks,dvs.dubehøverikkekommentereuttekstenduskriver.EkstraoppgaveOppgave5Gerenekstraoppgave.Duvilikketapepoenghvisduikkeløserdenne,mendukanfåekstrapoengvedågjøredet.(Eventuellepoengover100vilikketellevedfastsettelseavkarakter).INNLEDNINGDuharsøktjobbikonsulentselskapetSykehusDataogerblittkaltinntiletintervjuderdublirbedtomåviseatduerengodJava-programmerer.SykehusDataleggervektpåatdeansatteergodeiobjektorientertprogrammering,ogdumåderforløseoppgaveneidetteoppgavesettetforåvisedette.Heleoppgavesettethandleromålagedeleravetdatasystemforsykehus.Duskalikkeutvikleetfullstendigkjørbartprogram,oghellerikkeetprogramsomgjørsåmye.Duskalbarelagedeleravdetsomkunnetenkesåblietprogramietsykehus.Duvilnokogsåseatdetkanværetingdublirbedtomåprogrammeresomkanværenoksåunaturligogurealistiskietvirkeligsykehus.GrunnentildetteeratSykehusDataønskeratduskalviseatduergodiåprogrammerepåforskjelligemåter.Påsykehuseterdetansatteogpasienter,menoppgave1handlerhovedsakeligomansatte.Ioppgave2skaldulagebeholdereforpasienter,mensioppgave3skaldulageavdelingerpåsykehuset.Ioppgave4skaldusettedethelesammentiletfulltsykehus.Tilsluttskalduioppgave5bruketrådertilåanalyseresykdomsbildethosnoenpasienter.

OmklassenPasient.

Imangeavoppgaveneskalduprogrammeremedpasienter.DuskalbrukedendefinisjonenavklassenPasientsomduserunder.DukanantaatalleprogrammenedulageridetteoppgavesettetliggerisammepakkeellerkatalogsomklassenPasient,ogprogrammenehardermedtilgangtilåleseogskriveiallevariableiklassen.

EksamenINF1010våren2017

2/12

classPasient{finalStringfnr;finalStringnavn;Pasientneste;finalstaticintMAXPASPRIO=10;intprioritet;//0<=prioritet<=MAXPASPRIOintsengNr=-1;Pasient(Stringnavn,Stringfnr,intprio){this.navn=navn;this.fnr=fnr;prioritet=prio;}}Deternaturligatallepasienterharenprioritetavhengigavhvormyesmerterdeharoghvorsykedeer.Mangepasientervilogsåbliinnlagtogdeterderfornaturligatdeharenidentifikasjonavdensengenellerdensengeplassendeliggeri,oghererdetteangittsometheltall(sengNr,sengnummer).Deandrevariableneogkonstanteneiklassenvilbliforklartetterhvert.NB:vedkopieringoglimingavkodevilkodeboksensetteinnekstrablankelinjermellomhverkodelinje.Vierklaroverdetteproblemetsomdessverreskyldestekniskeårsakerutenforvårkontroll.Duvilikkeblitrukketforeventuelleformatteringsproblemerrelaterttildette.

1(a) Oppgave1AIdenneoppgavenskaldubrukedigitalhåndtegning.Brukegetskisseark(utdelt).Seinstruksjonforutfyllingavskissearkpåpult.Tegnoppklassehierarkietforansattepåsykehuset.Ikketamedvariable,konstanterellermetoder.Hvisdueritvilomnoekandethendedufårnoentipsvedålesevidereomdeenkelteansatte.

Makspoeng:2

1(b) Oppgave1BSkriviJavaalledeleravdetteklassehierarkietsomharmedlegerågjøre(ogsomfølgerbeskrivelsenioppgave1Aoginnledningentiloppgave1B).Sagtpåenannenmåte:Duskalskrivealledeleneavdetteklassehierarkietunntattdetsomharmedsykepleiereågjøre.

Skrivdittsvarher...

EksamenINF1010våren2017

3/12

Skrivdittsvarher...

Makspoeng:9

2(a) Oppgave2ASkrivklassenPasientAdm.Skrivdittsvarher...

Makspoeng:4

2(b) Oppgave2B

1

1

EksamenINF1010våren2017

4/12

SkrivklassenPasientPrio.Skrivdittsvarher...

Makspoeng:16

2(c) Oppgave2CSkrivklassenPasientTabell.Skrivdittsvarher...

Makspoeng:12

1

1

EksamenINF1010våren2017

5/12

3(a) Oppgave3ASkrivklassenAvdeling.Skrivdittsvarher...

Makspoeng:10

3(b) Oppgave3BSkrivdetoklasseneAkuttenogSengepost.Skrivdittsvarher...

Makspoeng:10

1

1

EksamenINF1010våren2017

6/12

4(a) Oppgave4ASkrivdetremetodenesomklassenSykehusskalinneholde.Skrivdittsvarher...

Makspoeng:5

4(b) Oppgave4BSkrivklassenSykehusmedtoavdelinger,enakuttavdelingogensengepostmed100sengerogenmain-metodesom:

Opprettertopasienterogskriverdeminnpå(setterdeminni)akutt-avdelingen.Overførerenavpasientenefraakutt-avdelingentilsengepostenSkriverdenandrepasientenutfra(henterpasientenutfra)akutt-avdelingen.

Skrivdittsvarher...

1

EksamenINF1010våren2017

7/12

Skrivdittsvarher...

Makspoeng:7

5(a) Oppgave5A1. Forklarkorthvilkeforandringerdumågjøreiprogrammenedulagetsomsvarpåoppgavene2,3og4nårklassenPasientblirabstrakt?

2. SkrivdenabstraktesuperklassenPasientogdetosubklasseneKvinneligPasientogMannligPasient.3. Beskrivhvordanprogrammetdittirestenavoppgave5skalkalledefirestatiskemetodeneiSykehuspåenmestmuligobjektorientertmåte.Skrivgjerneenellerflerekortekodebitersomviserdetteogsomdukanbrukesenereioppgave5.

NB:vedkopieringoglimingavkodevilkodeboksensetteinnekstrablankelinjermellomhverkodelinje.Vierklaroverdetteproblemetsomdessverreskyldestekniskeårsakerutenforvårkontroll.Duvilikkeblitrukketforeventuelleformatteringsproblemerrelaterttildette.

Skrivdittsvarher...

1

EksamenINF1010våren2017

9/12

Oppgave5CSkrivtråd-klassenSil.ParametrenetilkonstruktørenskalinneholdereferansertilPasientPrio-objektetogAnalyseBuffer-objektet.Entrådterminerernårdenikkefårreturnertetpasient-objektfraPasientPrio-objektet.Skrivdittsvarher...

Makspoeng:5

5(d) Oppgave5DSkrivklassenAnalyseBuffer.Rekkefølgenpåinnsetingoguttakbørværeførst-inn-først-ut,menellerskanduvelgehvaslagsdatastrukturduvilbruke,ogdeterlovåhentenoefraJava-biblioteket.Skrivdittsvarher...

Makspoeng:5

1

1

EksamenINF1010våren2017

10/12

Makspoeng:5

5(e) Oppgave5ESkrivtråd-klassenAnalyse.Ikketenkpåattrådeneskalterminere.Skrivdittsvarher...

Makspoeng:2

5(f) Oppgave5FSkrivenmetodekaltutforAnalyse(utføranalyse)somhartoparametre.DeneneerenreferansetiletPasientPrio-objekt,denandreerantallanalysetrådersomskalopprettes.Metodenskal:

OppretteetAnalyseBuffer,oppretteogstarteMAXPASPRIO+1tråderavklassenSilogoppretteogstartetråderavklassenAnalyse

Huskatidenneoppgavenskalduikkeprøveåterminereanalyse-trådenepåenfornuftigmåte

Skrivdittsvarher...

1

EksamenINF1010våren2017

11/12

Skrivdittsvarher...

Makspoeng:5

5(g) Ekstraoppgave5GNB!Detteerenekstraoppgave.Hvisduikkeløserdenneoppgavenkandufortsattfå100poengogfullpott.Forklarogbegrunnmegetkorthvordandetteprogrammetkanmodifiseresslikatalletrådeneallikevelterminererpåenfornuftigmåte?Taenkopiavprogramkodendinfrabesvarelsenavoppgavene5C–5FogmodifiserdenslikatalletrådeneterminererfornuftigogutforAnalyse-metodenførstterminerernåralletrådeneogsåharterminert.Foratsensorskalsehvilkeforandringerduhargjortpåprogrammetdittskalduskriveenen-bokstavskommentar(Fforforandring)påsluttenavallelinjenedumodifisererellerleggerinn,foreksempelslik://FNB:vedkopieringoglimingavkodevilkodeboksensetteinnekstrablankelinjermellomhverkodelinje.Vierklaroverdetteproblemetsomdessverreskyldestekniskeårsakerutenforvårkontroll.Duvilikkeblitrukketforeventuelleformatteringsproblemerrelaterttildette.

Skrivdittsvarher...

1

EksamenINF1010våren2017

12/12

Skrivdittsvarher...

Makspoeng:5

1

Question 1.aAttached

Exercise1(11pointsintotal)Introductiontoexercise1ATherearetwokindsofemployeesatthehospital:doctorsandnurses.Somedoctorsareconsultants(chiefphysician).Someconsultantsandsomenurseshavespecialtrainingsothattheyhaveanadditionalroleasadministrators.Theprogrammustbeabletodealwiththisroleinthesamewayindependentlyofwhetheranemployeeisaconsultantoranurse.Introductiontoexercise1BAllemployeeshaveanemployeeidentifier(aString)andaname(alsoaString).Bothattributesareconstantsandarespecifiedasanobjectisbeingcreated.Itshouldnotbepossibletocreateanyobjectsofthisclass.Doctorshaveanadditionaldoctoridentificationnumber(aninteger).Allconsultantshaveaspecialtytype(String).Alloftheseattributesareconstantsaswellandarespecifiedwhencreatingobjectsoftheseclasses.Donotwritemethodsforreadingtheconstants.Thoseconsultantsandnurseswhoarealsoadministratorshaveadepartmentcode(aString),andwemustbeabletoretrievethedepartmentcodeofanyadministrator.Thiscodeisalsospecifiedatobjectcreationtime.

Question 1.aAttached

Oppgave1(totalt11poeng)Innledningtiloppgave1ADetertotyperansattepåsykehuset:Legerogsykepleiere.Noenlegereroverleger.Noenoverlegerognoensykepleierehartattenegenutdanningsomgjøratdeitillegghardenekstrarollenatdeeradministratorer.Detteerenrollesomprogrammetskalkunnebehandlepåsammemåteuavhengigomdeteroverlegerellersykepleiere.Innledningtiloppgave1BAlleansatteharenansattidentifikasjon(enString)ogetnavn(ogsåenString).Beggedelererkonstanterogoppgisidetetobjektopprettes.Detskalikkekunnelagesobjekteravdenneklassen.EnlegeharitilleggetlegeNummer(etheltall).Alleoverlegerharenspesialiseringstype(String).Alledisseegenskapeneerogsåkonstanterogskaloppgisidetdetlagesobjekteravdisseklassene.Ikkelagmetoderforåleseavkonstantene.Deoverlegeneogsykepleiernesomitilleggeradministratorerharenansvarskode(enString),ogforalleadministratorerskalvikunnefinneutderesansvarskode.Ogsådennekodenskaloppgisnårdetopprettesobjekteravdisseklassene.

Question 1.bAttached

Exercise1(11pointsintotal)Introductiontoexercise1ATherearetwokindsofemployeesatthehospital:doctorsandnurses.Somedoctorsareconsultants(chiefphysician).Someconsultantsandsomenurseshavespecialtrainingsothattheyhaveanadditionalroleasadministrators.Theprogrammustbeabletodealwiththisroleinthesamewayindependentlyofwhetheranemployeeisaconsultantoranurse.Introductiontoexercise1BAllemployeeshaveanemployeeidentifier(aString)andaname(alsoaString).Bothattributesareconstantsandarespecifiedasanobjectisbeingcreated.Itshouldnotbepossibletocreateanyobjectsofthisclass.Doctorshaveanadditionaldoctoridentificationnumber(aninteger).Allconsultantshaveaspecialtytype(String).Alloftheseattributesareconstantsaswellandarespecifiedwhencreatingobjectsoftheseclasses.Donotwritemethodsforreadingtheconstants.Thoseconsultantsandnurseswhoarealsoadministratorshaveadepartmentcode(aString),andwemustbeabletoretrievethedepartmentcodeofanyadministrator.Thiscodeisalsospecifiedatobjectcreationtime.

Question 1.bAttached

Oppgave1(totalt11poeng)Innledningtiloppgave1ADetertotyperansattepåsykehuset:Legerogsykepleiere.Noenlegereroverleger.Noenoverlegerognoensykepleierehartattenegenutdanningsomgjøratdeitillegghardenekstrarollenatdeeradministratorer.Detteerenrollesomprogrammetskalkunnebehandlepåsammemåteuavhengigomdeteroverlegerellersykepleiere.Innledningtiloppgave1BAlleansatteharenansattidentifikasjon(enString)ogetnavn(ogsåenString).Beggedelererkonstanterogoppgisidetetobjektopprettes.Detskalikkekunnelagesobjekteravdenneklassen.EnlegeharitilleggetlegeNummer(etheltall).Alleoverlegerharenspesialiseringstype(String).Alledisseegenskapeneerogsåkonstanterogskaloppgisidetdetlagesobjekteravdisseklassene.Ikkelagmetoderforåleseavkonstantene.Deoverlegeneogsykepleiernesomitilleggeradministratorerharenansvarskode(enString),ogforalleadministratorerskalvikunnefinneutderesansvarskode.Ogsådennekodenskaloppgisnårdetopprettesobjekteravdisseklassene.

Question 2.aAttached

Introductiontoexercise2.(29pointsintotal)Inthisexercise,youwillcreateanabstractsuperclasswithtwosubclasses.TheseclassesshouldbeabletoadministratePatientobjects.Youwillneedtomakeuseoftheseinexercise3,soweencourageyoutoreadexercise3beforesolvingexercise2.TheabstractsuperclassshallbenamedPatientAdm(shortforpatientadministration)andismeanttoadministratepatientswhoarehospitalized.Theclassshouldhavethreemethods:voidinsertPatient(Patientp),Patientretrieve(Patientp)andPatientretrieve(inti),whereiisapatientpriority.Bothretrievemethodsmustremovethepatientfromthecontainer.

Question 2.aAttached

Innledningtiloppgave2.(totalt32poeng)Duskalidenneoppgavenlageenabstraktsuperklassemedtosubklasser.DisseklasseneskalkunneadministrerePasient-objekter.Duvilfåbrukfordisseioppgave3,sålesgjerneoppgave3førdubegynneråbesvareoppgave2.DenabstraktesuperklassenskalhetePasientAdm(forkortelseforpasientadministrasjon)ogbrukestilåadministrerepasientersomerpåsykehuset.Klassenskalhatremetoder:voidsettInnPasient(Pasientp),PasienthentUt(Pasientp)ogPasienthentUt(inti),derierenpasientprioritet.BeggehentUt-metodeneskalfjernepasientenfrabeholderen.

Question 2.bAttached

Introductiontoexercise2BTheclassPatientPrio(patientpriority)shallbeasubclassofPatientAdm.UsingthePatientPrioclass,theprogramshallbeabletoinsertpatientsaccordingtopriority,observingaFirst-In-First-Out(FIFO)orderingwithinthesamepriority.Themotivationforthisclassisthatwhenpatientsarriveatthehospital,anurseassignsthemaprioritydependingonhowurgentlythepatientsneedtreatment.Tofacilitatethis,theprogramshallcontainonelistperpriority.YoumustwritealinkedlistsimplementationyourselfthatadherestothisFIFOprinciplewithinthesameprioritybyusingthenext-referencethatalreadyexistswithinthePatientobjects.PatientPriomustcontaintwoarraysoflengthMAXPATPRIO+1andoftypePatient,wherethearrayindexdenotespriority.Onearraycontainstheheadsofthelists,theotherthetailsofthelists,seetheillustrationforaMAXPATPRIOvalueof3below.Sincewealsoemploypriority0theprogramwillthuslycontainMAXPATPRIO+1lists.Wheninsertingapatient,theprogrammustusethepatient'sprioritytofindtheappropriatelisttoinsertherinto.Themethodretrieve(i)retrievesrecordsfromthelistofindexiaccordingtotheFIFO-principle.Themethodretrieve(p)mustusethepatient'sprioritytoselecttheappropriatelist,andretrievetheobjectthatpreferstofromthelist.Thismethodmustalsoreturnareferencetotheretrievedpatient,ornullincasethespecifiedpatientisnotfoundinthelist.

Illustrationwithtwoarraysoflength4andafewpatientobjectsthatarelinkedtogether.

(Admittedly,weprobablywouldn'tusetwoarraysinthismannertomanagethesequeuesinarealprogram.Werequireyoutodoitthiswaysoastoallowyoutodemonstrateyourabilitytoprogramlinkedlists).

0 1 2 3

0 1 2 3

null

null

null

null

null

Question 2.bAttached

Innledningtiloppgave2BKlassenPasientPrio(pasientprioritet)skalværeensubklasseavPasientAdm.IklassenPasientPrioskalprogrammetkunnesettinnpasienteretterprioritet,ogdetskalværeførst-inn-først-ut(first-in-first-out,FIFO)rekkefølgeinnensammeprioritet.Motivasjonenbakdenneklasseneratnårpasienterkommertilsykehusetvilensykepleiergipasientenenprioritetavhengigavhvorfortpasientenmåbehandles.Derforskalprogrammetinneholdeenlisteperprioritet.DuskalselvskrivelenketelistersomimplementererdetteFIFO-prinsippetinnensammeprioritetvedåbrukeneste-referansensomaltfinnesiPasient-objektene.PasientPrioskalinneholdentoarrayeravlengdeMAXPASPRIO+1ogavtypePasient,derindeksenangirprioritet.Denenearrayeninneholderpekeretilstarteneavlistene,denandrearrayeninneholderpekeretilobjektenesomliggerbakerstilistene,sefigurmedMAXPASPRIOlik3nedenfor.Sidenviogsåbrukerprioritet0vilprogrammetfølgeliginneholdeMAXPASPRIO+1antalllister.Nårenpasientsettesinnskalprogrammetbrukepasientensprioritettilåfinneriktiglisteåsetteinni.MetodenhentUt(i)henterutfralistenmedindeksietterFIFO-prinsipp.MetodenhentUt(p)skalbrukepasientensprioritettilåfinneriktigliste,oghenteobjektetppekerpåutavlisten.Densistemetodenskalogsåreturnereenreferansetilpasientensombletattut,menomdennepasientenikkeblirfunnetilistenskalmetodenereturnerenull.

Figurmedtoarrayeravlengde4ognoenpasientobjektersomerlenketsammen.

(Iparentesbemerkesdetatvinokikkevillebruketoslikearrayerpådennemåtenietvirkeligprogram,mendetgjøresherforatduskalviseatdubeherskeråprogrammerelenkedelister)

0 1 2 3

0 1 2 3

null

null

null

null

null

Question 2.cAttached

Introductiontoexercise2CThePatientTableclassshallbeasubclassofPatientAdm.ObjectsofthePatientTableclassshallcontainanarrayoftypePatient.Thelengthofthisarrayisspecifiedwhencreatinganewobject.Themotivationforthisclassisthateveryindexinthearrayrepresentsabedorbedlocationwithinthehospital.Whenanelementinthearrayisnull,thatbedisconsideredvacant.Whenanelementcontainsa(non-null)referencetoapatient,thenthatpatientisoccupyingthelocation.Wheninsertingpatients,priorityshallnotbetakenintoconsideration.However,inordertoensurethatalllocationsmaybetakenintouse,youmaynotstarttosearchforavacantlocationstartingatindex0,butratherstartingwherethelastpatientwasinserted(uponthepreviouscalltoinsertPatient).Programmingthiscorrectlyisanimportantpartofthisexercise.Whenapatienthasbeenassignedalocationinthearray,theidentifier(index)ofthislocationmustbeassignedtothevariablebedNointhepatientobject.

Question 2.cAttached

Innledningtiloppgave2CKlassenPasientTabellskalværeensubklasseavPasientAdm.ObjekteravklassenPasientTabellskalinneholdeenarrayavtypenPasient.Lengdenpådennearrayenoppgisnårdetopprettesetnyttobjekt.Motivasjonenbakklassenerathverindeksiarrayenkananginummeretpåensengellerensengeplasspåsykehuset.Nårenreferanseiarrayenernull,erdennesengenellersengeplassenledig.Nårreferansenikkeernullpekerdenpåpasientensomliggerpådenneplassen.Nårdusetterinneenpasientspillerikkeprioritetennoenrolle.Menforatallesengerellersengeplasserskalbrukes,skalduikkestarteletingetterledigsengeplassfra0,menfradersistepasientblesattinn(vedforrigekallpåsettInnPasient).Atduprogrammererdetteriktigerenviktigdelavdenneoppgaven.NårenpasientharfåttenplassiarrayenskalnummeretpådenneplassentilordnesvariabelensengNripasient-objektet.MetodenhentUt(i)skalfinneogtauten(vilkårlig)pasientmedprioritetliki.Letgjernefraindeks0ogoppover.Omdetikkefinnesnoenpasientmeddenneprioritetenreturneresnull.MetodenhentUt(p)skalbrukepasientenssengNrtilåfjernepasientenfrabeholderen.NårenpasienttasutsettessengNrtil-1.

Question 3.aAttached

Exercise3(20pointsintotal)Theprogramyouwritetosolvethisexercisemaybeshortcomparedtotheamountofpointsatstake.Therefore,itisimportantthatyoutakeyourtimeconsideringhowtowriteagoodsolution.InthisexerciseyouwillstartoffbydefiningaWardclassthatwillbethesuperclassofallhospitalwards(departments).Thenyouwilldefinetwosubclasses,EmergencyDeptandInpatientWard.ThemannerinwhichallwardsreceiveandretrievepatientsmustbedefinedintheWardsuperclass.Anywardmustbeabletoadministratethepatientsthatarepresentintheward,thereforeallwardsmustcontainanobjectwhichisasubclassofPatientAdm.TheWardclassshallcontainthreemethods:

• voidinsert(Patientp)• Patientretrieve(Patientp)• Patientretrieve(inti),whereiisapriority.

Thesemethodsmustnotbeabstract,butrathercontainfullimplementationswhichshouldnotbeoverridableinsubclasses.TheclassesEmergencyDeptandInpatientWardshallbothbesubclassesofWard.IntheEmergencyDeptclassallpatientswillbeinsertedandremovedaccordingtotheirpriority.UsethePatientPrioclasstoadministratethepatientsofthisward.IntheInpatientWardclassallpatientswillbeinsertedandremovedwithrespecttotheavailablebedsontheward.Aninpatientwardisawardwithagivennumberofbeds,specifiedwhencallingtheconstructoroftheclass.UsethePatientTableclasstoimplementthis.(Itissomewhatartificialthatpatientscanberetrievedbasedonprioritywithinthisward,butthatishowitworksforthepurposeofthisexercise).

Question 3.aAttached

Oppgave3(totalt20poeng)Idenneoppgavenkanprogrammetdulagerværekortiforholdtilantallpoeng.Deterderforviktigatdubrukertidpååskjønnehvordanengodløsningskalprogrammeres.DuskalidenneoppgavenførstdefinereenklasseAvdelingsomskalværesuperklassentilalleavdelingenepåsykehuset.Deretterskaldudefineretosubklasser,AkuttenogSengepost.MåtenalleavdelingertarimotogtarutpasienterskaldefineresisuperklassenAvdeling.Enhveravdelingmåkunneadministreredepasientenesomerpådenneavdelingen,derformåalleavdelingerinneholdeetobjektsomerensubklasseavPasientAdm.KlassenAvdelingskalinneholdetremetoder:

• voidsettInn(Pasientp)• PasienthentUt(Pasientp)• PasienthentUt(inti),derierenprioritet.

Detremetodeneskalikkeværeabstrakte,menderimotinneholdefullkodesomikkeskalkunneredefineresisubklasser.KlasseneAkuttenogSengepostskalbeggeværesubklassertilAvdeling.IklassenAkuttenskalallepasientertasimotogsettesinnbasertpåprioritet.BrukklassenPasientPriotilåadministrerepasientenepådenneavdelingen.IklassenSengepostskalallepasientertasimotogsettesinnbasertpåledigesengerellersengeplasser.Ensengeposterenavdelingmedetantallsengersomangissomenkonstruktørtilavdelingen.BrukklassenPasientTabelltildette.(Deterlittkunstigatpasienterkanblitattutfraensengepostbasertpåprioritet,mendeterslikdeteridenneoppgaven).

Question 3.bAttached

Exercise3(20pointsintotal)Theprogramyouwritetosolvethisexercisemaybeshortcomparedtotheamountofpointsatstake.Therefore,itisimportantthatyoutakeyourtimeconsideringhowtowriteagoodsolution.InthisexerciseyouwillstartoffbydefiningaWardclassthatwillbethesuperclassofallhospitalwards(departments).Thenyouwilldefinetwosubclasses,EmergencyDeptandInpatientWard.ThemannerinwhichallwardsreceiveandretrievepatientsmustbedefinedintheWardsuperclass.Anywardmustbeabletoadministratethepatientsthatarepresentintheward,thereforeallwardsmustcontainanobjectwhichisasubclassofPatientAdm.TheWardclassshallcontainthreemethods:

• voidinsert(Patientp)• Patientretrieve(Patientp)• Patientretrieve(inti),whereiisapriority.

Thesemethodsmustnotbeabstract,butrathercontainfullimplementationswhichshouldnotbeoverridableinsubclasses.TheclassesEmergencyDeptandInpatientWardshallbothbesubclassesofWard.IntheEmergencyDeptclassallpatientswillbeinsertedandremovedaccordingtotheirpriority.UsethePatientPrioclasstoadministratethepatientsofthisward.IntheInpatientWardclassallpatientswillbeinsertedandremovedwithrespecttotheavailablebedsontheward.Aninpatientwardisawardwithagivennumberofbeds,specifiedwhencallingtheconstructoroftheclass.UsethePatientTableclasstoimplementthis.(Itissomewhatartificialthatpatientscanberetrievedbasedonprioritywithinthisward,butthatishowitworksforthepurposeofthisexercise).

Question 3.bAttached

Oppgave3(totalt20poeng)Idenneoppgavenkanprogrammetdulagerværekortiforholdtilantallpoeng.Deterderforviktigatdubrukertidpååskjønnehvordanengodløsningskalprogrammeres.DuskalidenneoppgavenførstdefinereenklasseAvdelingsomskalværesuperklassentilalleavdelingenepåsykehuset.Deretterskaldudefineretosubklasser,AkuttenogSengepost.MåtenalleavdelingertarimotogtarutpasienterskaldefineresisuperklassenAvdeling.Enhveravdelingmåkunneadministreredepasientenesomerpådenneavdelingen,derformåalleavdelingerinneholdeetobjektsomerensubklasseavPasientAdm.KlassenAvdelingskalinneholdetremetoder:

• voidsettInn(Pasientp)• PasienthentUt(Pasientp)• PasienthentUt(inti),derierenprioritet.

Detremetodeneskalikkeværeabstrakte,menderimotinneholdefullkodesomikkeskalkunneredefineresisubklasser.KlasseneAkuttenogSengepostskalbeggeværesubklassertilAvdeling.IklassenAkuttenskalallepasientertasimotogsettesinnbasertpåprioritet.BrukklassenPasientPriotilåadministrerepasientenepådenneavdelingen.IklassenSengepostskalallepasientertasimotogsettesinnbasertpåledigesengerellersengeplasser.Ensengeposterenavdelingmedetantallsengersomangissomenkonstruktørtilavdelingen.BrukklassenPasientTabelltildette.(Deterlittkunstigatpasienterkanblitattutfraensengepostbasertpåprioritet,mendeterslikdeteridenneoppgaven).

Question 4.aAttached

Exercise4(12pointsintotal)Inthisexercise,youwilldefineaHospitalclasswithtwowards:anemergencydepartmentandaninpatientward.Youwillwriteamainmethodsuchthatanemergencydepartmentandaninpatientwardarecreated,beforecreating2patientswhoaretheninsertedintotheemergencydepartment.Then,apatientwillbetransferredfromtheemergencydepartmenttotheinpatientward,andfinallyanotherpatientwillbedischargedfromtheemergencydepartment.TheHospitalclassshallcontainthreemethodssothat:oneadmitsapatienttoaward(i.e.insertsthepatientintothatward),anothermethodtransfersapatientfromonewardtoanotherandathirdmethodthatdischargesapatientfromaward(removesapatientfromthatward),respectively.Allofthesemethodsreceiveareferencetothepatientinquestionasaparameter.Theadmissionanddischargemethodsmustalsoreceiveareferencetothewardinquestion,whilstthetransferalmethodmustreceivereferencestobothwardsconcerned.

Question 4.aAttached

Oppgave4(totalt12poeng)IdenneoppgavenskalduskriveenklasseSykehusmedtoavdelinger,enakutt-avdelingogensengepost.Tilsluttskalduskriveenmain-metodeslikatdetopprettesenakutt-avdelingogensengepost-avdeling,videreskaldetopprettes2pasientersomsettesinnpåakutten.Deretterskalenpasientoverføresfraakuttentilsengeposten,ogtilsluttskalenpasientskrivesutfraakutten.KlassenSykehusskalinneholdetremetodersomhhv.skriverenpasientinnpåenavdeling(dvssetterpasienteninnpådenneavdelingen),overførerenpasientfraenavdelingtilenannenogskriverenpasientutfraenavdeling(tarpasientenutavavdelingen).Allemetodeneskalhaenreferansetilenpasientsomparameter.Skrivinnogskrivutskalhaenreferansetildenaktuelleavdeling,menoverførskalhatoparametreitilleggtilpasienten(referansertildetoaktuelleavdelingene)

Question 4.bAttached

Exercise4(12pointsintotal)Inthisexercise,youwilldefineaHospitalclasswithtwowards:anemergencydepartmentandaninpatientward.Youwillwriteamainmethodsuchthatanemergencydepartmentandaninpatientwardarecreated,beforecreating2patientswhoaretheninsertedintotheemergencydepartment.Then,apatientwillbetransferredfromtheemergencydepartmenttotheinpatientward,andfinallyanotherpatientwillbedischargedfromtheemergencydepartment.TheHospitalclassshallcontainthreemethodssothat:oneadmitsapatienttoaward(i.e.insertsthepatientintothatward),anothermethodtransfersapatientfromonewardtoanotherandathirdmethodthatdischargesapatientfromaward(removesapatientfromthatward),respectively.Allofthesemethodsreceiveareferencetothepatientinquestionasaparameter.Theadmissionanddischargemethodsmustalsoreceiveareferencetothewardinquestion,whilstthetransferalmethodmustreceivereferencestobothwardsconcerned.

Question 4.bAttached

Oppgave4(totalt12poeng)IdenneoppgavenskalduskriveenklasseSykehusmedtoavdelinger,enakutt-avdelingogensengepost.Tilsluttskalduskriveenmain-metodeslikatdetopprettesenakutt-avdelingogensengepost-avdeling,videreskaldetopprettes2pasientersomsettesinnpåakutten.Deretterskalenpasientoverføresfraakuttentilsengeposten,ogtilsluttskalenpasientskrivesutfraakutten.KlassenSykehusskalinneholdetremetodersomhhv.skriverenpasientinnpåenavdeling(dvssetterpasienteninnpådenneavdelingen),overførerenpasientfraenavdelingtilenannenogskriverenpasientutfraenavdeling(tarpasientenutavavdelingen).Allemetodeneskalhaenreferansetilenpasientsomparameter.Skrivinnogskrivutskalhaenreferansetildenaktuelleavdeling,menoverførskalhatoparametreitilleggtilpasienten(referansertildetoaktuelleavdelingene)

Question 5.aAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.aAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

Question 5.bAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.bAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

Question 5.cAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.cAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

Question 5.dAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.dAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

Question 5.eAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.eAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

Question 5.fAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.fAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

Question 5.gAttached

Exercise5.(25pointsintotal+5bonuspoints)Femaleandmalepatients,andprocessingofpatientdatausingthreads.ThefirstpartofthisexerciserevolvesaroundturningtheclassPatientintoanabstractclass,subsequentlydefiningtwosubclasses,FemalePatientandMalePatient.Thenyouwillprocesspatientdatausingmultiplethreads.Youwillwritetwothreadclasses,oneclasstofilterout(classSieve)patientsthatareintheriskgroupforcontractingadisease,andaclass(classAnalysis)thatfurtheranalysesthesepatients.Thereshallbeonesieve(filter)threadforeachpriority,thatisMAXPATPRIO+1sievethreads.Sievethreadno.imustreaddatafromanobjectofthePatientPrioclassbycallingtheretrieve(i)method.YoumustusethePatientPrioclassevenifyouhavenotsolvedexercise2.Foreverypatientretrieved,astaticmethodintheHospitalclassshouldbecalled.Thesemethodsreturntrueifthispatientisintheriskgroupandthusrequiresfurtherattention,orfalseintheinversecase.Wewillassumethatthesearepreexistingmethods,writtenalongtimeagoandthatyoumaynotmodify.Formales,themethodiscalledpublicstaticbooleaninRiskGroupMale(Patientp),forwomenthemethodispublicstaticbooleaninRiskGroupFemale(Patientp).AllpatientsfoundtobeintheriskgroupareplacedinabufferoftheclassAnalysisBuffer.Thesievethreadsterminatewhentheretrieve()methodsreturnnull.Theanalysisthreadsmustretrievepatientsfromtheanalysisbuffer.Foreachretrievedpatient,astaticmethodintheHospitalclassshouldbecalled.Inthemalecase,thismethodispublicstaticvoidpotentiallyInfectedMale(Patientp),inthefemalecaseitiscalledpublicstaticvoidpotentiallyInfectedFemale(Patientp).Asabove,thesemethodswerewrittenalongtimeagoandcannotbemodified,onlycalledfromyourprogram.Furtherprocessingoftheseriskpatientstakesplacewithinthesemethods.Consequently,theanalysisthreadsdonotneedtotakeanyfurtheractionafterthesemethodsreturnandmayretrievethenextpatientatthattime.Introductiontoexercise5A(Exercise5Adoesnotinvolveanythreads).CopythecodeforthePatientclassfromthemainintroductionsectionandmodifyitsothatPatientbecomesanabstractclass.Further,writetwosubclasses,FemalePatientandMalePatient.Inlaterpartsofexercise5youwillneedtocallthefourstaticmethodsinHospitaltoprocesspatientdata.Yourprogramneedstocalldifferentmethodsformenandwomen,andyoumaynowassumethatyouwillbedealingwithobjectsoftheclassesFemalePatientandMalePatient.Itmaybewisetounderstand(andperhapsevensolve)therestofexercise5beforeansweringexercise5A.

Question 5.gAttached

Oppgave5(totalt25poeng+5bonuspoeng)KvinneligeogMannligepasienterogbehandlingavpasientdatavedhjelpavtråder.StartenavdenneoppgavendreiersegomålageklassenPasientabstrakt,ogderetterlagetosubklasseravdenneklassen,kaltKvinneligPasientogMannligPasient.Deretterskaldubehandlepasientdatavedhjelpavtråder.Duskallagetotrådklasser,enklasseforåsileut(classSil)pasientersomerifaresonenforåfåensykdom,ogenklasse(classAnalyse)somanalysererdissepasientene.Detskalværeensil-trådforhverprioritet,altsåMAXPASPRIO+1sil-tråder.Sil-trådnriskallesedatafraetobjektavklassenPasientPriovedåkallemetodenhentUt(i).DuskalbrukeklassenPasientPrioselvomduikkeharsvartpåoppgave2.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehussomreturnerertruehvisdetteerenpasientsomerifaresonenogderforskalanalyseres,falsehvisikke.Detteermetodersomalleredefinnes,somblelagetforlengesidenogsomduikkekanforandre.FormennhetermetodenpublicstaticbooleaniFaresonenMann(Pasientp),forkvinnerhetermetodenpublicstaticbooleaniFaresonenKvinne(Pasientp).AllepasientersomerifaresonenskalleggesinnietbufferavklassenAnalyseBuffer.Sil-trådeneterminerernårhentUt-metodenereturnerernull.Analyse-trådeneskalhentepasienterfraanalysebufferet.ForhverpasientsomhentesutskaldetkallesenstatiskmetodeiklassenSykehus.FormennskalmetodenpublicstaticvoidkanHaSykdomMann(Pasientp)kalles,forkvinnerskalmetodenpublicstaticvoidkanHaSykdomKvinne(Pasientp)kalles.Detteerogsåmetodersomblelagetforlengesiden,ogsomduikkekangjørenoemed,barekallefradittprogram.Viderebehandlingavdepasientenesomkanhasykdommenskjeridissemetodene.Detbetyratnårdissemetodenereturnererskalanalyse-trådeneikkegjørenoemermeddennepasienten,menbarehenteutennypasientfraanalysebufferet.Innledningtiloppgavene5A(Oppgave5Aharikkenoemedtråderågjøre).DuskalkopiereklassenPasientfraoppgavesettetsinnledningogmodifiseredenslikatdenblirabstrakt.DeretterskaldulagetosubklasserKvinneligPasientogMannligPasient.Idetotrådklassenesomduskalskrivesenereioppgave5skaldukalledefirestatiskemetodeneiSykehusforåbehandlepasientdata.ProgrammetmåkalleforskjelligemetoderforkvinnerogmennognåkanduantaatduharmedobjekteravklasseneKvinneligPasientogManneligPasientågjøre.Detkanderforværelurtåforstå(ogkanskjetilåmedløse)restenavoppgave5førdubesvareroppgave5A.

top related