Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:
Tämän tehtävän tarkistuksessa ollut virhe on nyt korjattu, ja tehtävän voi palauttaa Gobliniin normaalisti.
Tee Eclipseen uusi projekti, jonka nimi on tehtava8_1, ja tähän projektiin moduuli myyntiraportti. Kirjoita sitten moduuliin ohjelma, joka lukee tiedostosta myyntiraportin, jossa myyntisummat on annettu dollareina. Ohjelma tulostaa myyntisummat sekä dollareina että euroina. Tarkempi selostus ohjelmasta on alla.
Yritys saa sen USAn konttoriltaan sopivin väliajoin tiedoston,
joka sisältää konttorin päivittäiset myyntisummat dollareina.
Myyntisummat on tallennettu teksitiedostoon niin, että kunkin päivän
kokonaismyynti (yksi desimaaliluku) on tallennettu omalle
rivilleen. Rivillä ei ole mitään muuta tietoa. (Olisi järkevää, jos rivillä
olisi ennen myyntisummaa päivämäärä, mutta se on jätetty tässä tehtävän
helpottamiseksi pois.) Yrityksen johtaja haluaa kuitenkin nähdä
myyntisummat euroina. Sinun tehtävänäsi on kirjoittaa ohjelma, joka
lukee myyntisummat käyttäjän haluamasta tiedostosta ja tulostaa
sitten kunkin päivän myynnin sekä dollareina että euroina. Käytettävä
vaihtokurssi valuutan muuntamiseen pyydetään käyttäjältä (jokaisen
päivän kohdalla käytetään samaa vaihtokurssia).
Voit katsoa mallia tiedostoston muodosta tiedostosta
myyntilukuja1.txt ja
vähän virheellisestä tiedostosta
myyntilukuja2.txt. Tallenna nämä
tiedostot samaan hakemistoon ohjelmakoodisi kanssa ohjelmasi testaamista
varten. Oikea hakemisto on Unix-koneissa
tyohakemisto/tehtava8_1/src/
,
missä tyohakemisto on Eclipsessä käyttämäsi työtilan (workspace) hakemisto.
Jos tiedoston lukemisessa tapahtuu virhe (esimerkiksi haluttua tiedostoa ei ole olemassa), ohjelma tulostaa, että tiedoston lukemisessa on tapahtunut virhe ja lopettaa toimintansa. Jos tiedoston jollain rivillä on jotain muuta kuin yksi kokonaisluku, ohjelma tulostaa ilmoituksen virheellisestä luvusta ja lopettaa toimintansa. Ohjelma kuitenkin tulostaa ennen virheellistä riviä olleet myyntiluvut ja niiden muunnokset euroiksi normaalisti. Jos käyttäjän antamaa valuutan vaihtokurssia ei voi tulkita desimaaliluvuksi, ohjelma ilmoittaa virheestä ja lopettaa toimintansa.
Ohjelman ei tarvitse kuitenkaan tarkistaa, että luetut myyntisummat ovat järkevällä välillä, vaan kaikki rivit, jotka voidaan tulkita desimaaliluvuiksi (vaikka luku olisi negatiivinen), hyväkstytään ja muunnetaan euroiksi samalla kertoimella.
Ohjelman rakennetta ei ole tässä määrätty sen tarkemmin. Ohjelmaa ei tarvitse jakaa useampaan funktioon, vaan saat kirjoittaa koko koodin yhteen pääohjelmaan.
Tarkista, että ohjelmasi tulostus on esimerkkiajon mallin mukainen. Sekä dollari- että euromääräiset rahasummat on tulostettu kahden desimaalin tarkkuudella yhdeksän merkin levyisiin kenttiin. Kenttien välillä on lisäksi yksi välilyönti. Testaa ohjelmaasi ajamalla sitä itse ja käyttämällä eri luettavia tiedostoja (voit tehdä niitä helposti myös itse) ennen ohjelman palautusta Gobliniin. Palauta Gobliniin tiedosto arvosanoja.py.
[ohjelman suoritus alkaa] Mista tiedostosta myyntitiedot luetaan? myyntilukuja1.txt Anna kaytettava vaihtokurssi (euron arvo dollareina). 1.341 Myynti dollaria euroa 12000.00 8948.55 147000.00 109619.69 28000.00 20879.94 12654.00 9436.24 [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa, tiedostossa virheitä] Mista tiedostosta myyntitiedot luetaan? myyntilukuja2.txt Anna kaytettava vaihtokurssi (euron arvo dollareina). 1.454 Myynti dollaria euroa 45000.00 30949.11 120000.00 82530.95 34000.00 23383.77 Virheellinen luku vaihtokurssina tai tiedostossa. Ohjelma paattyy. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa, tiedostoa ei löydy] Mista tiedostosta myyntitiedot luetaan? olematon.txt Virhe tiedoston olematon.txt lukemisessa. Ohjelma paattyy. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa, vaihtokurssi ei ole luku] Mista tiedostosta myyntitiedot luetaan? myyntilukuja1.txt Anna kaytettava vaihtokurssi (euron arvo dollareina). ei luku Virheellinen luku vaihtokurssina tai tiedostossa. Ohjelma paattyy. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta