Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Klassen skal implementere logikken ofte funnet på stoppeklokker på smarttelefoner.

For å holde styr på tiden som går vil StopWatch-klassen bli kalt utenfra (altså noe du slipper å implementere i denne oppgaven) på en tick(int)-metode. I dataverdenen er et tick (tikk på norsk) minste målbare diskret tidsenhet. I denne oppgaven er 1 tikk = 1 millisekund. F.eks. vil et kall tick(3) fortelle en StopWatch-instans at 3 tikk har gått siden sist gang tick() ble kalt.

StopWatch skal fungere på følgende måte:

  • Klokken startes når man ønsker å starte tidtakningen.
  • Alle tikk etter at klokken har blitt startet skal medregnes i tidtakningen.
  • Klokken stoppes når man ønsker å stoppe tidtakningen. Da er tidtakningen helt ferdig. Det er ikke en pause i tidtakningen - klokken skal ikke startes igjen.
  • Det skal være mulig å ta rundetider.
  • Første rundetid startes når klokken starter.
  • Under tidtakningen kan man starte en ny rundetid, og dermed implisitt avslutte den nåværende.
  • Siste rundetid avsluttes når klokken stoppes.

Image Modified

StopWatch-klassen må ha metoder for å spørre om tilstanden og metoder for å endre tilstanden.

...

  • void tick(int ticks) - forteller klokken at ticks antall tikk har gått siden sist gang metoden ble kjørt.
  • void start() - starter klokken.
  • void lap() - avslutter nåværende rundetid og starter en ny.
  • void stop() - stopper klokken.

Del 1 -

...

Tilstandsdiagram

Tegn et objekttilstandsdiagram for en tenkt bruk av StopWatch-klassen. Velg en sekvens av kall som både starter klokken, tar rundetider og stopper klokken.

...