Tee Eclipseen uusi projekti, jonka nimi on tehtava5_3, ja tähän projektiin moduuli palkkakulut.
Kirjoita moduuliin palkkakulut ohjelma, joka laskee erään yrityksen työntekijöiden yhteispalkan viikon ajalta, kun myös ylityökorvaukset otetaan huomioon.
Työntekijän päiväpalkka lasketaan kertomalla tuntipalkka päivän työtuntien määrällä, jos työntuntien määrä on korkeintaan 7,5. Jos työtuntien määrä on yli 7,5 mutta korkeintaan 9,5, maksetaan 7,5 tunnilta normaali tuntipalkka ja sen jälkeisiltä tunneilta 1,5-kertainen tuntipalkka. Jos työtuntien määrä on yli 9,5, maksetaan 7,5 tunnilta normaali tuntipalkka, kahdelta seuraavalta tunnilta 1,5-kertainen tuntipalkka ja lopuilta tunneilta kaksinkertainen tuntipalkka.
Työntekijän viikkopalkka saadaan laskemalla työntekijän viikon päiväpalkat yhteen. Jos siis työntekijä tekee yhtenä päivänä viikossa työtunteja 5,0 ja toisena 9,5, saa hän toisesta päivästä ylityökorvaukset, vaikka kahden päivän työtunnit yhteensä ovat vain 14,5.
Kirjoita ohjelmaan seuraavat funktiot:
Kirjoita lisäksi pääohjelma, joka kysyy ensin työntekijöiden lukumäärän. Tämän jälkeen pääohjelma kutsuu jokaiselle työntekijälle erikseen funktiota palkka_viikossa ja laskee kaikkien työntekijöiden kokonaispalkan. Lopuksi ohjelma tulostaa lasketun kokonaispalkan kahden desimaalin tarkkuudella. Katso tarkemmin esimerkkiajoista, millaisia tulostusten pitää olla.
Voit olettaa, että käyttäjä antaa lukuja pyydettäessä lukuja eikä esimerkiksi tekstiä. Funktio palkka_viikossa tarkistaa, että työntekijän tuntipalkka ei ole negatiivinen ja että jokaisen päivän työtunnit ovat välillä 0-24. Tarvittaessa funktio ilmoittaa virheestä ja pyytää tuntipalkkaa tai työtunteja uudelleen niin kauan, että käyttäjä antaa oikealla välillä olevan arvon. Katso tarkemmin viimeisestä esimerkkiajosta.
Testaa jälleen ohjelmaasi ajamalla sitä itse Eclipsessä useilla eri arvoilla ja tarkistamalla, että ohjelman tulostama kokonaispalkka on oikea. (Voit halutessasi lyhentää testiajoja pienentämällä väliaikaisesti viikonpäivien lukumäärää. Muuta kuitenkin muuttaa päivien lukumäärä takaisin oikeaksi, ennen kuin palautat ohjelmasi Gobliniin.) Kun ohjelmasi näyttää toimivan oikein, palauta Gobliniin palkkakulut.py.
[ohjelman suoritus alkaa] Ohjelma laskee yrityksen tyontekijoiden viikon palkkasumman. Montako tyontekijaa yrityksessa on? 2 Anna seuraavan tyontekijan tiedot. Tuntipalkka: 12.0 Tyotunnit viikon eri paivina, kukin omalla rivillaan: 7.5 6.2 9.0 11.5 5.5 Anna seuraavan tyontekijan tiedot. Tuntipalkka: 10.0 Tyotunnit viikon eri paivina, kukin omalla rivillaan: 7.5 7.0 7.5 6.5 6.0 Palkkakustannukset ovat 866.40 eur / vko. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa] Ohjelma laskee yrityksen tyontekijoiden viikon palkkasumman. Montako tyontekijaa yrityksessa on? 0 Palkkakustannukset ovat 0.00 eur / vko. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa] Ohjelma laskee yrityksen tyontekijoiden viikon palkkasumman. Montako tyontekijaa yrityksessa on? 3 Anna seuraavan tyontekijan tiedot. Tuntipalkka: -5.0 Tuntipalkan pitaa olla positiivinen tai 0. Tuntipalkka: -2.0 Tuntipalkan pitaa olla positiivinen tai 0. Tuntipalkka: 8.20 Tyotunnit viikon eri paivina, kukin omalla rivillaan: 5.5 4.5 3.5 -25.0 Tyotuntien pitaa olla valilla 0-24! Edellisen paivan tyotunnit uudelleen: 25.0 Tyotuntien pitaa olla valilla 0-24! Edellisen paivan tyotunnit uudelleen: 7.5 6.5 Anna seuraavan tyontekijan tiedot. Tuntipalkka: 0.0 Tyotunnit viikon eri paivina, kukin omalla rivillaan: 7.7 7.5 7.5 7.5 7.5 Anna seuraavan tyontekijan tiedot. Tuntipalkka: 10.0 Tyotunnit viikon eri paivina, kukin omalla rivillaan: 0.0 9.9 9.5 10.5 12.0 Palkkakustannukset ovat 723.50 eur / vko. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta