Heldagsprøve IT2 - 11.05.17 - 09:00 -14:00

Hjelpemidler: Alle, untatt kommunikasjon og Internett


Internett vil være åpent til 09:15 slik at de som ønsker det kan laste ned materiell de ønsker å bruke i oppgave 1.

Du skal arbeide som konsulent for bystyret i den lille, idylliske kystbyen Lilleby. Bystyret ønsker å sette ut elektriske sykler på forskjellige steder i byen som innbyggere og turister kan bruke gratis.

Bystyret ønsker også å utvikle nettsider og mobil- og nettbrett-applikasjoner som gjør det lett for innbyggere og turister å finne ut hvor syklene er til enhver tid.

Oppgave 1:

Du skal utvikle en animasjon som viser en sykkel som beveger seg. Animasjonen skal kunne startes og stoppes med en knapp.

Oppgave 2:

Vi skal utvikle en protoype for en applikasjon som senere skal konverteres til bruk på mobiltelefoner og nettsider.

I første omgang regner vi med at det blir utsatt 6 sykler (med navn A, B, C, D, E og F) på tre steder i Lilleby; Torvet, Schrøders plass og Bryggeplassen.

Vi tenker oss at signaler fra sykkelstativene sendes til et sentralt program som administrerer hele systemet og vedlikeholder tabeller som holder orden på hvor syklene befinner seg.
Du kan regne med at applikasjonen har lastet ned disse tabellene fra nettet og lagret dem i lokale tabeller som i utgangspunktet kan se ut slik:

plassering:
   [   [ "A", "B" ],          // A og B på Torvet
       [ "C", "D" ],          // C og D på Schrøders plass
       [ "E", "F" ]           // E og F på Bryggeplassen
   ];
stedsnavn:
   [ "Torvet", "Schrøders plass", "Bryggeplassen" ];

a) Lag en applikasjon der brukeren velger en av de tre stedene i Lilleby og får returnert antall sykler som befinner seg på dette stedet.

b) Vi tenker oss at sykkelstativene sender et signal når en sykkel plasseres i et stativ slik at programmet som administrerer hele systemet utfører en funksjon

function oppdater( sykkelnavn: String, nyttsted: String): void { ...}

hver gang en sykkel blir plassert i et stativ.

Skriv nødvendig kode i denne funksjonen slik at funksjonen flytter sykkelen fra der den står til dit den ble plassert i tabellen plassering.

Skriv også inn testkode for å teste funksjonen:

function visplassering():void {
   for each(var linje in plassering) {
      trace(linje);
   };//for
};
oppdater("A","Bryggeplassen");
visplassering();
oppdater("E",Schrøders plass");
visplassering();

Hvis funksjonen oppdater() fungerer skal testkoden gi følgende i Output-dialogen:

B
C, D
E, F, A
B
C, D, E
F, A

Oppgave 3 - Planlegging og utvidelse

Programmet som administrerer hele systemet skal i tillegg holde orden på hvor langt syklene har gått, slik at de kan få nødvendig service og ettersyn når det er nødvendig.
Vi må derfor utvide koden vi lagde i oppgave 2 b).

Vi regner forenklet med at syklene går en distanse som er 3 ganger større enn distansen mellom uttaks-sted og leverings-sted.

Disse avstandene er:

Torvet - Schrøders plass: 1.5 km
Torvet - Bryggeplassen: 1 km
Bryggeplassen - Schrøders plass: 2 km

For å teste ut koden lager vi en test-applikasjon der vi kan velge en sykkel og stedet vi leverer sykkelen i et brukergrensesnitt.
Da skal koden, i tillegg til å oppdatere tabellen plassering, også oppdatere hvor langt sykkelen har gått og vise dette i grensesnittet.

a) Dokumenter planlegging av data- og programstruktur for denne test-applikasjonen.

b) Lag test-applikasjonen.