Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Fjernet JavaFX-del fra RPNCalc

...

Bruk av Exercise-panelet er obligatorisk for denne øvingen. Du må ha panelet åpent med RPNCalc.ex-filen (tests > encapsulation > RPNCalc.ex) i før du begynner med oppgaven. For mer informasjon/hjelp, se nederst på forrige side, altså hovedsiden for Øving 23.

Del 1 - Tilstandsdiagram

Tegn objekttilstandsdiagram for en tenkt bruk av RPNCalc-klassen. Velg selv passende start-tilstand og sekvens av kall.

Del 2 - Java-kode

...

Lag en main-metode, hvor du leser inn tester sekvenser av operander og operatorer fra tastaturet, og kaller henholdsvis push og performOperation-metodene på et RPNCalc-objekt og skriver ut stacken. Test RPNCalc-klassen og sjekk at oppførselen stemmer med tilstandsdiagrammet.

Del 3 -

...

Teori

Til nå har det blitt spesifisert at peek()- og pop()-metodene skal returnere Double.NaN hvis stacken er tom. Alternativet er å utløse et unntak.

...

  • Hva vil tilsvarende verdi for manglende operand for '*'-operasjonen (multiplikasjon) være? Hva med for '/' (divisjon)?
  • Hvordan kan du endre (evt. har du endret)  API-et grensesnittet for stack-operasjonene for å gjøre implementasjonen av disse enklere?
  • Også her er et alternativ å utløse unntak. Hva tror du om det?

Del 4 - JavaFX

Kjør den tilhørende JavaFX-applikasjonen (kjør RPNCalc.fxml som FXML Application) og observer hva som skjer. Åpne RPNCalcController.java og finn ut hvor RPNCalc-klassen din blir brukt, og kommenter hva som skjer med den. Det er ikke et krav at du forstår resten av koden i RPNCalcController, du skal kun forklare hvordan klassen din blir brukt.

...


Testkode for denne oppgaven finner du her: encapsulation/RPNCalcTest.java. Original-koden (jextest) finner du her: encapsulation/RPNCalc.jextest.

...