Kierros 9, tehtävä 2
Olioiden luonti ja käyttö (150 p)
Tässä tehtävässä
harjoitellaan erityisesti seuraavia asioita:
- olion luonti
- olion luokan metodien kutsuminen
Opetusmonisteen ja luentojen lisäksi voit tutustua aiheeseen
katsomalla olio-ohjelmointia käsitteleviä videoita
sivulla
http://www.cse.hut.fi/fi/opetusmateriaali/videoprojekti/python.html
Tutustu alla kuvattuun luokkaan
Kurssilainen. Tee Eclipseen uusi projekti,
jonka nimi on
tehtava9_2. Luo
sitten tähän projektiin moduuli kurssilainen (huomaa pieni alkukirjain)
ja kopioi siihen annettu
Kurssilainen-luokan koodi.
Sinun ei siis tarvitse
kirjoittaa luokkaa itse. Sinä et myöskään saa tehdä Kurssilainen-luokaan
mitään muutoksia tai lisäyksiä.
Luokka Kurssilainen kuvaa erään harjoitustehtävillä suoritettavan
kurssin yhtä osanottajaa.
Luokka sisältää seuraavat metodit
- __init__(self, annettu_nimi)
- Metodi, jonka avulla luodaan uusi Kurssilainen-olio.
Metodille annetaan parametrina luotavan kurssilaisen nimi.
Luodun kurssilaisen harjoituspisteet ovat 0.
- kerro_nimi(self)
- Metodi, joka palauttaa kurssilaisen nimen.
- kerro_harjoituspisteet(self)
- Metodi, joka palauttaa kurssilaisen harjoituspisteet.
- lisaa_harjoituspisteita(self, lisays)
- Metodi, joka lisää kurssilaiselle harjoituspisteitä. Lisättävät
pisteet annetaan
metodin parametrina. Pisteet annetaan kokonaislukuna.
Jos pisteet eivät ole sallitulla välillä 0-10,
metodi ei tee mitään, vaan kurssilaisen vanhat pisteet säilyvät
sellaisenaan.
- laske_arvosana(self)
- Metodi, joka laskee kurssilaisen arvosanan hänellä olevien
harjoituspisteiden
perusteella. Pisteillä 0-17 saa arvosanan 0, pisteillä 18-25 arvosanan
1, pisteillä 26-33 arvosanan 2, pisteillä 34-41 arvosanan 3,
pisteillä 42-49 arvosanan 4 ja 50:llä ja sitä suuremmilla pisteillä
arvosanan 5.
Metodi palauttaa lasketun arvosanan.
- __str__(self)
- Metodi palauttaa merkkijonon, joka sisältää kurssilaisen nimen,
harjoituspisteet ja arvosanan.
Luo samaan projektiin (tehtava9_2) moduuli kurssilaisia ja kirjoita siihen
pääohjelma, joka tekee seuraavat asiat (samassa järjestyksessä kuin
alla):
- Luo uuden Kurssilainen-olion, jonka nimi on Tiina Niemi.
- Lisää Tiinalle 9 harjoituspistettä.
- Tulostaa Tiinan arvosanan.
- Lisää Tiinalle vielä 10 harjoituspistettä.
- Tulostaa Tiinan uuden arvosanan.
- Pyytää käyttäjältä toisen kurssilaisen nimen ja lukee sen.
- Luo uuden Kurssilainen-olion, jolla on käyttäjän antama nimi.
- Pyytää käyttäjältä viisi kertaa (käytä toistokäskyä)
toiselle kurssilaiselle lisättäviä pisteitä, lukee ne ja lisää
ne toiselle kurssilaiselle.
- Tulostaa toisen kurssilaisen nimen (käytä Kurssilainen-luokan
kerro_nimi-metodia).
- Laskee ja tulostaa toisen kurssilaisen arvosanan.
- Pyytää ensiksi luodulle kurssilaiselle (Tiina) annettavat lisäpisteet,
lukee ne ja lisää ne Tiinan harjoitustehtäväpisteisiin.
- Laskee ja tulostaa ensiksi luodun kurssilaisen (Tiina) uuden arvosanan.
- Tulostaa molempien luotujen kurssilaisten tiedot (ensin Tiinan ja
sitten toisen kurssilaisen) käyttämällä hyväksi
Kurssilainen-luokan __str__-metodia.
Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä
myöten) alla olevan mallin mukainen. Ohjelmasi ei tarvitse tarkistaa sitä, että
käyttäjän antamat pisteet ovat järkevällä välillä. Kurssilainen-luokka
tekee tarvittavan tarkistuksen. Voit olettaa, että käyttäjän antama
syöte on virheetöntä (käyttäjä antaa kokonaislukuja silloin, kun
häneltä pyydetään harjoituspisteitä).
Huomaa, että import-käskyssä moduulin nimi pitää kirjoittaa pienellä
alkukirjaimella. Vastaavasti luokan nimi pitää kirjoittaa isolla
alkukirjaimella. Muuten Goblinin tarkistukset eivät toimi.
Palauta Gobliniin tiedosto kurssilaisia.py
Esimerkki ohjelman suorituksesta:
[ohjelman suoritus alkaa]
Tiinan arvosana: 0
Tiinan uusi arvosana: 1
Anna uuden kurssilaisen nimi.
Pekka
Anna lisattavat pisteet.
7
Anna lisattavat pisteet.
2
Anna lisattavat pisteet.
5
Anna lisattavat pisteet.
6
Anna lisattavat pisteet.
4
Uuden kurssilaisen nimi: Pekka
Uuden kurssilaisen arvosana: 1
Anna Tiinalle lisattavat pisteet.
7
Tiinan arvosana nyt: 2
Kurssilaisten tiedot lopuksi:
Tiina Niemi, harjoituspisteet 26, arvosana 2.
Pekka, harjoituspisteet 24, arvosana 1.
[ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta