Taso ja pistearvo: | A 150 |
---|---|
Lyhyesti: | Muokataan aiemmassa tehtävässä kohdattua tililuokkaa. |
Mitä opitaan: | Muokkaamaan luokan koodia, if -valintalauseen käyttöä, tuoreimman säilyttäjä-roolisen muuttujan hyödyntämistä, paikallisten muuttujien käyttöä tilapäissäilöinä. |
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: | Keskitasoa. Luokan rakenteen ja metodien ymmärtäminen vaatii monien olio-ohjelmoinnin käsitteiden kunnollista ymmärtämistä. |
Työläys: | Keskitasoa. Useimmilla aloittelijoilla mennee tähän noin kolme tuntia tai alle. |
Tehkää ensin kierroksen 4 tehtävä 4 tai tutustukaa ainakin siihen huolella. Tämä tehtävä on jatkoa tuolle tehtävälle.
Lukekaa projektin ohesta löytyvä Epydoc-dokumentaatio (alihakemistosta doc/
). Palauttakaa mieleen
myös kierroksen 4 tehtävän 4 Account
- ja Customer
-luokat. Tässä kuten monessa
muussakin tehtävässä Epydoc-kuvaus toimii spesifikaationa, jonka mukainen Python-toteutus teidän on laadittava.
Jos luette dokumentaation riittävän huolellisesti, huomaatte, että annetun luokan Account
toiminta ei
vastaa dokumentaatiota. Osa metodeista ei toimi niin kuin dokumentaatiossa väitetään ja myös parametreissa ja
palautusarvoissa on korjattavaa. Lisäksi luokasta puuttuu kokonaan korkoprosentteihin (interest rate) liittyvä
toiminnallisuus. Tehtävänne on korjata nämä virheet ja puutteet.
Suosittelemme seuraavaa toimintasuunnitelmaa:
doc
. Dokumentaation etusivu on
doc/index.html
. Dokumentaation voi avata joko Eclipsessä tai webiselaimessa ja löytyy myös
kurssin kotisivuilta. Tämä dokumentaatio toimii spesifikaationa sille, mitä tässä tehtävässä pitää saada
aikaan.
account.py
).
Huomatkaa puutteet ja virheet.
account_test
ja testatkaa sen avulla toimivatko tekemänne korjaukset. Jos tuo aiempi tehtävä jäi tekemättä,
voitte kirjoittaa käynnistysmoduulin testauskäyttöön nyt joko itse tai käyttää account_test
-moduulin
malliratkaisua (löytyy Goblinista kierroksen sulkeuduttua). Muistakaa, että voitte muokata myös
account_test
-moduulia ja sen sisältämää pääfunktiota ja kokeilla erilaisia käyttötapauksia.
Account
-luokkaan.
account_test
-moduulia siten, että se testaa myös korkoprosentteihin
liittyviä metodeja. (Tässä ei tarvitse noudattaa mitään tiettyä käskysarjaa kuten tehtävässä 4.3. vaan voitte
itse päättää millaisia metodikutsuja käynnistysmetodiin laitatte.) Testatkaa luokkaanne uudestaan
käynnistysmetodin avulla. Älkää palauttako koodianne Gobliniin ennen kuin olette itse vakuuttuneet siitä,
että se toimii. Koodin testaaminen on osa ohjelmoijan työtä.
account.py
-tiedosto Gobliniin. Palauttakaa myös testaamiseen käytetty
account_test.py
.
Account
-luokan metodien ja konstruktorin parametreihin.