Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:
Tee Eclipseen uusi projekti, jonka nimi on tehtava7_3, ja siihen moduuli menokirjanpito. Kirjoita moduuliin ohjelma, jonka avulla käyttäjä voi pitää kirjaa siitä, kuinka paljon hän on käyttänyt rahaa erityyppisiin menoihin (esim. asunto, ruoka, opiskelu, vapaa-aika jne.)
Kirjanpito toteutetaan sanakirjarakenteen avulla. Siinä avaimena toimii menolajin nimi (esim. asuminen) ja avaimeen liittyvänä arvona ko. menolajiin liittyvät kokonaismenot (desimaaliluku) tähän mennessä. Sinun tehtävänäsi on kirjoittaa ohjelma, jonka avulla käyttäjä voi syöttää rekisteriin uusia menotietoja, kysyä haluamansa menolajin kokonaismenoja, kysyä sitä menolajia, johon liittyvät suurimmat menot, ja kysyä kaikkien rekisterissä olevien menolajien yhteismenoja.
Ohjelman alussa luodaan kirjanpitoa varten tyhjä sanakirjarakenne. Tämän jälkeen ohjelma pyytää käyttäjää valitsemaan toiminnon seuraavasta listasta:
1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. LopetaKäyttäjän valinnan mukaan ohjelma suorittaa halutun toiminnon. Eri toiminnot kuvataan tarkemmin alla.
Mahdolliset toiminnot:
Käyttäjälle annettava valikko kannattaa tulostaa
print
-käskyllä. Tämän jälkeen käyttäjän valinta luetaan
raw_input
-käskyllä, jolle ei ole annettu lainkaan
tulostettavaa kehotetta (ei edes rivinvaihtomerkkiä). Voit katsoa
mallia esimerkiksi 2.2. pidetyn luennon luentokalvojen
valikko-ohjelmaesimerkistä. (Tosin luettua valintaa ei tarvitse
välttämättä muuttaa kokonaisluvuksi, kuten esimerkissä oli tehty, koska
tuossa vaiheessa kurssilla ei oltu vielä opetettu merkkijonojen vertailua.)
Ohjelma tallentaa menolajien nimet siinä muodossa kuin käyttäjä on ne antanut. Jos esimerkiksi käyttäjä on antanut nimen muodossa "asuminen", niin sitä ei löydetä haettaessa menolajia "Asuminen".
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. Esimerkiksi eri toimintoja (menon lisäys jne.) varten kannattaa kirjoittaa omat funktionsa, jotka saavat parametrina käytettävän sanakirjarakenteen.
Testaa ohjelmaasi ajamalla sitä monta kertaa itse ennen palautusta. Palauta Gobliniin tiedosto menokirjanpito.py.
Vinkki: halutessasi voit testausvaiheessa lisätä ohjelmaan
ylimäräisen valinnan, joka vain tulostaa sanakirjan sisällön
yhdellä print
-käskyllä. Tämän avulla on helpompi testata
sitä, onko rekisterin sisältö eri vaiheissa se, mikä sen pitäisi
olla. Poista kuitenkin tämä valinta ennen kuin palautat ohjelman
Gobliniin.
Huomautus: ohjelmasta tulee huomattavasti käyttökelpoisempi, jos kirjanpidon tiedot luetaan ohjelman alussa jostain tiedostosta ja tallennetaan ohjelman päätyttyä tiedostoon. Näin tiedot säilyvät ohjelman eri suorituskertojen välillä. Tätä ei kuitenkaan vaadita tässä tehtävässä.
[ohjelman suoritus alkaa] Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 3 Kirjanpidossa ei ole menoja. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 4 Kaikki menot yhteensa ovat 0.00 euroa. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. asuminen Anna menon rahasumma euroina. 325.0 Lisattiin kirjanpitoon uusi menolaji. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. ruoka Anna menon rahasumma euroina. 5.0 Lisattiin kirjanpitoon uusi menolaji. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. ruoka Anna menon rahasumma euroina. 12.8 Arvo lisattiin lajin ruoka kokonaismenoihin. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. vaatteet Anna menon rahasumma euroina. 56.8 Lisattiin kirjanpitoon uusi menolaji. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. vaatteet Anna menon rahasumma euroina. 23.0 Arvo lisattiin lajin vaatteet kokonaismenoihin. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. ruoka Anna menon rahasumma euroina. 43.7 Arvo lisattiin lajin ruoka kokonaismenoihin. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 3 Suurimmat menot: asuminen: 325.00 euroa Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 2 Minka menolajin kokonaiskulut haluat tietaa? Ruoka Menolajille ei ole kirjattu menoja. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 2 Minka menolajin kokonaiskulut haluat tietaa? ruoka Lajin kokonaismenot ovat 61.50 euroa. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 4 Kaikki menot yhteensa ovat 466.30 euroa. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. huvit Anna menon rahasumma euroina. 15.0 Lisattiin kirjanpitoon uusi menolaji. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 1 Anna menolajin nimi. ruoka Anna menon rahasumma euroina. 32.6 Arvo lisattiin lajin ruoka kokonaismenoihin. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 7 Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 2 Minka menolajin kokonaiskulut haluat tietaa? ruoka Lajin kokonaismenot ovat 94.10 euroa. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 2 Minka menolajin kokonaiskulut haluat tietaa? opiskelu Menolajille ei ole kirjattu menoja. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 3 Suurimmat menot: asuminen: 325.00 euroa Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 4 Kaikki menot yhteensa ovat 513.90 euroa. Menokirjanpito - valitse toiminto: 1. Lisaa meno 2. Kerro menolajin kulut 3. Etsi suurin menolaji 4. Laske menot yhteensa 5. Lopeta 5 Ohjelma paattyy. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta