...
- void setFirstOperand(double) - lagre den angitte argumentverdien som første operand.
- void setSecondOperand(double) - lagre den angitte argumentverdien som andre operand.
- void setOperand(char) - lagre den angitte argumentverdien som operator.
- double calculateResult() - beregn den matematiske operasjonen ved å anvende operatoren på de to operandene og returner resultatet.
- void calculateAndSetFirstOperand() - beregn den matematiske operasjonen og sett resultatet som firstOperand i objektet. Bruke eksisterende metoder der dette er mulig.
Alle metodene ovenfor må kunne håndtere ulovlige argumentverdier, for eksempel ikke-eksisterende matematiske operasjonstegn. Tenk også over at det ikke går an å dele på null o.l.
...
Lag en passende toString()-metode og et hovedprogram, slik at du kan sjekke at oppførselen stemmer med tilstandsdiagrammet (bruk samme start-tilstand og sekvens av kall). Hovedprogrammet skal lese uttrykk fra tastaturet med alternerende operand og operator (for eksempel 1 + 2 * 3 - 2) og bruke metodene i Calculator for å beregne resultatet. Du trenger ikke å tenke på operator-prioritet.
Ekstraoppgave
- Hvordan vil du håndtere operator-prioritet (multiplikasjon skal utføres før addisjon osv.)?