Taso ja pistearvo: | A 240 |
---|---|
Lyhyesti: | Täydennetään toimivaksi opiskelijoiden excujonoista huolehtiva luokka. |
Mitä opitaan: | Silmukoiden käyttöä algoritmien rakennusvälineinä, merkkijonojen yhdistelyä, listojen käyttöä. |
Toteuttamisen vapaus: | Keskitasoa. Ohjelman rakenteen isot linjat ja ratkaistava ongelma on ennalta määrätty tarkasti, mutta ongelman ratkaisutavan voi ja pitääkin päättää itse. |
Realistisuus: | Työskentelytavan osalta korkea. Tässä pyritään luomaan spesifikaation mukaisesti toimiva luokka, mikä on tyypillinen oikeankin elämän ohjelmointitehtävä. |
Haastavuus: | Haastava. Tässä laadittavat algoritmit ovat useimpia aiempia tehtäviä hieman mutkikkaampia. Kannattaa pitää huoli siitä että esitiedot (aiemmat listoja ja silmukoita käyttävät tehtävät) ovat kunnossa. |
Työläys: | Suhteellisen aikaavievä tehtävä. Vaikka kirjoitettavaa koodia ei ole erityisen paljon, vaadittujen metodien suunnitteluun, kirjoittamiseen ja testaukseen menee aikaa. Useimmat aloittelijat selviävät tästä alle viidessä tunnissa, mutta aikaa kannattaa varata varmuuden vuoksi enemmänkin. |
Annettu projekti on puutteellinen. Iso osa luokan Excursion
toteutuksesta puuttuu.
Täydentäkää luokka vastaamaan annettua Epydoc-dokumentaatiota.
Palauttakaa muokattu tiedosto Gobliniin.
excursion_test
löytyvää käynnistysfunktiota
tutkimaan, miten luokka Excursion
toimii.
Huomatkaa, että vaikka luokka Excursion
ei vielä kaikin osin olekaan
kunnossa, niin siinä on "dummy-toteutukset" kaikille metodeille, joten annetun käynnistysmoduulin
voi ajaa vaikkapa heti aluksi.
excursion_test
-moduulin main -funktioon
ihan vapaasti -- annettu versio ei testaa kaikkea!
sign_up
-metodin lopullinen toteutus on tämän peruskurssin mittapuulla varsin mutkikas,
koska nuorempia opiskelijoita pitää suosia excu-ilmoittautumisessa.
Tarvitsette jonkinlaisen silmukan, jonka avulla löydetään ilmoittautumisjonosta se oikea kohta,
johon uusi ilmoittautuja sijoitetaan. Kannattaa kiinnittää erityistä huomiota siihen, miten
sign_up
-metoditoteutuksenne toimii erikoistapauksissa (esim. jos uusi ilmoittautuja
on nuorempi kuin kaikki aiemmin ilmoittautuneet, jos uusi ilmoittautuja on vanhempi kuin aiemmin
ilmoittautuneet, jos opiskelija on jo ennestään ilmoittautunut). if
-valintalauseille
voi löytyä käyttöä ja break
-keskeytyslausettakin voi harkita. Älkää unohtako
käyttää debuggeria, jos homma hämmentää.