T-106.1210 Ohjelmoinnin peruskurssi, osa 1

Kierros 7, tehtävä 1

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.

Tehtävänanto

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:

  1. Lukekaa projektin sisältämä luokkadokumentaatio alihakemistosta 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.
  2. Verratkaa spesifikaatiota annettuun lähdekoodiin (Python-koodiin tiedostossa account.py). Huomatkaa puutteet ja virheet.
  3. Korjatkaa olemassaolevat metodit sellaisiksi, että ne vastaavat spesifikaatiota.
  4. Jos teitte kierroksen 4 tehtävän 3 aiemmin, käyttäkää luomaanne moduulia 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.
  5. Lisätkää korkoprosenttien käsittely Account-luokkaan.
  6. Muokatkaa 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ä.
  7. Lopuksi palauttakaa muokattu account.py-tiedosto Gobliniin. Palauttakaa myös testaamiseen käytetty account_test.py.

Ohjeita ja vinkkejä