Tässä tehtävässä harjoitellaan erityisesti seuraavia asoita:
split
-metodin
käyttö.
Tee Eclipseen uusi projekti, jonka nimi on tehtava7_2. Luo sitten tähän projektiin moduli arvosanalaskuri ja kirjoita siihen ohjelma, jonka avulla käyttäjä voi laskea suorittamiensa kurssien opintopistemäärällä painotetun keskiarvon.
Käyttäjä syöttää kurssien suoritustiedot niin, että yhdellä rivillä on aina kurssikoodi, kurssin opintopistemäärä (desimaaliluku) ja arvosana (kokonaisluku) toisistaan kauttaviivalla erotettuna. Katso mallia esimerkkiajoista. Käyttäjä lopettaa kurssitietojen antamisen tyhjällä rivillä. Ohjelma osaa selvittää annetuista riveistä kunkin kurssin opintopistemäärän ja arvosanan. Se laskee ja tulostaa kurssien opintopistemäärällä painotetun keskiarvon. Keskiarvo tulostetaan kahden desimaalin tarkkuudella.
Ohjelman alussa käyttäjälle annettavat ohjeet kannattaa tulostaa
print
-käskyllä. Tämän jälkeen suoritustietoja luetaan
raw_input
-käskyllä, jolle ei ole annettu lainkaan
tulostettavaa kehotetta (ei edes rivinvaihtomerkkiä). Voit katsoa
mallia esimerkiksi 16.2. pidetyn luennon luentokalvojen
puhelinluettelo-esimerkistä.
Voit olettaa, että käyttäjän syöte on annetun kuvauksen mukainen ja että annetut arvosanat ovat välillä 1-5. Tätä ei siis tarvitse tarkistaa eikä ohjelman tarvitse selvitä virheellisestä syötteestä. Kaikilla kursseilla on kokonaislukuarvosana eli arvosanoja "hyväksytty" tai "hylätty" ei käytetä. Ohjelman ei tarvitse myöskään tarkistaa sitä, että saman kurssin tiedot annetaan vain yhteen kertaan. Jos käyttäjä ei kuitenkaan anna yhdenkään kurssin tietoja, vaan syöttää heti aluksi tyhjän rivin, ohjelma tulostaa "Ei kurssisuorituksia."
Ohjelman rakennetta ei ole tässä määrätty sen tarkemmin, vaan saat itse suunnitella, mitä funktioita kirjoitat ohjelmaasi. Älä kuitenkaan kirjoita koko ohjelmaa yhdeksi pääohjelmaksi, vaan käytä myös muita funktioita järkevästi.
Palauta Gobliniin tiedosto arvosanalaskuri.py.
Huomautus: ohjelmaa on helppo laajentaa niin, että kurssien suoritustiedot luetaan tiedostosta. Sitä ei kuitenkaan vaadita tässä tehtävässä.
[ohjelman suoritus alkaa] Ohjelma laskee kurssisuoritustesi painotetun keskiarvon. Anna suoritustietosi muodossa kurssikoodi/opintopistemaara/arvosana Lopeta tyhjalla rivilla. T-106.1208/5.0/4 Mat-1.1110/10.0/3 Tfy-3.1241/3.0/2 Mat-1.2600/5.0/1 Painotettu keskiarvo on 2.65. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa, käyttäjä antaa heti aluksi tyhjän rivin] Ohjelma laskee kurssisuoritustesi painotetun keskiarvon. Anna suoritustietosi muodossa kurssikoodi/opintopistemaara/arvosana Lopeta tyhjalla rivilla. Ei kurssisuorituksia. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta