Øvingsmål

  • Lære å tenke ut en oppdeling av et program i flere interagerende klasser

  • Lære å tenke rundt og programmere et program som skaper flere objektinstanser under kjøring

Øvingskrav

  • Kunne programmere meningsfulle og fungerende objektstrukturer

  • Kunne teste et større program og sikre seg at det fungerer i alle tilfeller

  • Kunne grunnleggende konfigurere en JavaFX-controller til å fungere med programmet

Dette må du gjøre

Filene for denne øvingen skal du lagre i ovinger/src/app. Her ligger det allerede en App-klasse og en FXML-fil som utgangspunkt. 

I denne øvingen skal du lage en app som du skal fortsette å jobbe med i øving 7 og 10. Denne oppgaven er veldig åpen, men har følgende minstekrav:

  • Appen må ha et brukergrensesnitt (realisert i en FXML-fil).
  • Appen må ha to eller flere interagerende dataklasser som står for logikken/databehandlingen i appen. Her stilles det også krav til at det må være noe kalkulasjoner av et eller annet, altså kan du ikke ha to rene dataklasser.
  • Appen må ha en controller-klasse som kobler sammen brukergrensesnittet og dataklassene.
  • Du må også ha en app-klasse som kun brukes til å starte appen. 

I øving 7 skal du utvide appen med noe ekstra funksjonalitet og en form for persistens, altså at appen lagrer og/eller henter data utenfor appen. Ha dermed i bakhodet at det bør være noe data i appen som er naturlig å lagre/lese fra fil. Eksempler på dette kan være valutakurser, tilstanden til et spill slik at du kan fortsette å spille neste gang du starter appen, events i en kalender-app eller alarmer i en klokke-app.
I øving 10 skal du skrive tester som validerer oppførselen til appen.

Det kan være lurt å lese App-programmering og Enkel app-programmering med JavaFX og FXML-sidene før du begynner.
Du bør også Installere SceneBuilder. Scenebuilder er et program som gjør det veldig lett å lage brukergrensesnittet til appen. 

Eksempler på apper man kan lage:

  • Kalkulatorer (lånekalkulator, valutakalkulator, kvotekalkulator, vanlig regnekalkulator etc.)

  • Spill
  • Standard mobilapper som kalender, klokke, påminnelser etc.
  • App basert på en tidligere øving

I denne øvingen legger oppgavetekstene mindre føringer for hvordan koden din skal struktureres enn tidligere. Det er meningen du skal få øvelse i å tenke ut objektstrukturer som passer til å løse oppgaven selv. Det er også mer fritt hva slags metoder du vil ha og form på input. Derfor kan det være lurt å starte med øvingen tidlig, slik at du rekker å få hjelp hos studass dersom du sitter fast.

Hjelp / mistanke om bugs

Ved spørsmål eller behov for hjelp konsulter studassen din i saltiden hans / hennes. Du kan også oppsøke andre studasser på sal eller legge ut et innlegg på Piazza.

Godkjenning

Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for stud.ass innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.