SKISENTER

Dere har fått i oppdrag å lage et datasystem for et skisenter. (Dere kan selv velge hvilket skisenter det skal være og hva det skal hete.) Skisenteret har flere skiheiser, flere typer billetter og heiskort, og diverse rabattordninger. Oppdragsgiveren ønsker at systemet skal kunne

Nærmere krav og detaljer er spesifisert nedenfor. Oppdragsgiveren har planer om å utvide tilbudet, så dere må regne med at det vil dukke opp nye ønsker og behov etter hvert som systemet er i drift. Det er derfor viktig at datasystemet er bygget opp slik at det lett lar seg vedlikeholde og bygges ut med ny funksjonalitet.

Oppgavens størrelse vil være avhengig av hvor mye av oppdragsgiverens krav og ønsker dere implementerer. For mange vil den bli for omfattende hvis alt skal implementeres fullt ut. En av utfordringene blir derfor å gjøre fornuftige valg mht. hva som implementeres og hva som kan utelates. Det er imidlertid viktig at programmet kan kompletteres på et senere tidspunkt (for eksempel av en annen programmerer) uten at det må gjøres vesentlige forandringer i den eksisterende koden.

Kravene fra oppdragsgiver er veiledende. Dere kan legge til og trekke fra alt etter som dere finner det hensiktsmessig. Oppdragsgiver ønsker imidlertid at dere skal komme med forslag til utvidelser av programmet. Dere står også fritt til å implementere mer funksjonalitet enn det som er beskrevet i det følgende. Dersom dere implementerer mindre enn det som er beskrevet, må det gå klart fram av dokumentasjonen hva som er utelatt og hvordan dere har prioritert.

For å få noen ideer om hva som kan være med i datasystemet, kan det være lurt å ta en titt på tilbudet i eksisterende skisentre, for eksemplel Tryvann vinterpark i Oslo eller Gautefall skisenter i Telemark. Det er ikke meningen at dere skal lage et et datasystem for så store anlegg som disse, men ved å studere deres tilbud, kan dere kanskje få ideer om hvilke tilbud dere ønsker at deres skisenter skal ha.

Programmet skal ha fire forskjellige moduler/vinduer som skal brukes forskjellige steder:

Informasjonsvinduet
Dette vinduet er tenkt å ligge på nettet (NB! skal programmeres i Java) og skal gi informasjon om skianlegget til publikum:

Salgsvinduet
Dette vinduet er beregnet på personell som selger heiskort eller billetter til publikum. I forbindelse med salg av heiskort, skal det opprettes tilsvarende objekter som settes inn i datastrukturen. Det er et krav at systemet skal tilby minst tre forskjellige typer kort, både saldo-baserte (klippekort) og tidsbaserte (dagskort/sesongkort). For å kunne generere informasjon om bruken av heis(ene) samt salg og inntjening, må summene det selges for registreres. (Se avsnittet om registrering.)

Kontrollvinduet
Vinduet skal simulere heiskontrollen og er tenkt å stå ved heisen. For hver tur, skal det skjekkes om kortet/billetten er gyldig, og kun de med gyldig kort/billett skal slippe igjennom. Av hensyn til statistikken som skal genereres, vil det være nødvendig å registrere alle passeringer, og eventuelt tidspunktene for dem. (Se avsnittet om registrering.)

Administrasjonsvinduet
Dette vinduet er beregnet på de ledelsen/administrativt ansatte på skisenteret. Her skal det være mulig å hente ut forskjellig type informasjon og statistikk. (Se avsnittet om informasjon og statistikk.)

Med unntak av informasjonsvinduet, som er beregnet på publikum, skal alle vinduene bruke samme datastruktur. I denne skal alle personopplysninger og heiskort lagres, uavhengig av type. De forskjellige korttypene må derfor være i samme klassesierarki.

I det følgende står en nærmere spesifikasjon av oppdragsgivers ønsker.

REGISTRERING

Alle kort som skal registreres må ha

Hva slags informasjon de andre kortene trenger vil være avhengig av typen. For klippekort må det lagres et antall klipp eller en saldo, mens det for tidsbegrensede kort, som dagskort eller sensorgkort, må lagres informasjon om start- og utløpstidspunkt. Enkelte korttyper er personlige og kan ikke overdras til andre, og for disse må det i tillegg lagres personopplysninger om eieren av kortet.

Informasjonsdata

For å kunne generere forskjellig type informasjon og statistikk (se avsnitt i under) trengs det forskjellige variabler/datastrukturer som må oppdateres under kjøringen av programmet. Tips: Mange steder vil det være nyttig å bruke datafelt av typen static!

SLETTING AV DATA

Det skal være mulig å fjerne registrert informasjon fra systemet:

INFORMASJON OG STATISTIKK

Informasjon som det kan være nyttig å hente ut av systemet er:

Aktuell statistikk som kan hjelpe ledelsen å planlegge årets og neste års sesong kan være:

LAGRING

Skrive data til fil

For at dataene som ligger lagret i programmets interne datastruktur ikke skal gå tapt når programmet avsluttes, må alle data lagres på fil. Lagring på fil må foretas i forbindelse med hver programavslutning. Det kan dessuten være ønskelig å kunne foreta lagring på fil også under programmets kjøring.

Lese data fra fil

Hver gang programmet startes, må alle dataene som ligger lagret på fil leses inn i programmets interne datastruktur.

EVENTUELLE UTVIDELSER

Som nevnt innledningsvis, er oppdragsgiver interessert i forslag til utvidelser av programmet. Det er også tillatt å legge til utvidelser, men det er ikke noe krav.