Kierros 7, tehtävä 2

Myyntirekisteri (200 p)

Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:

Tee Eclipseen uusi projekti, jonka nimi on tehtava7_2, ja siihen moduuli myyntirekisteri. Kirjoita moduuliin ohjelma, jonka avulla yritys voi pitää kirjaa eri myyntiedustajiensa myyntien kokonaissummista.

Myyntirekisteri toteutetaan sanakirjarakenteen avulla. Siinä avaimena toimii myyntiedustajan nimi (oletetaan, että yrityksessä ei ole useita samannimisiä myyntiedustajia) ja avaimeen liittyvänä arvona ko. edustajan kokonaismyynti tähän mennessä. Sinun tehtävänäsi on kirjoittaa ohjelma, jonka avulla käyttäjä voi syöttää rekisteriin uusia myyntitapahtumia, kysyä yhden edustajan kokonaismyyntiä ja kaikkien rekisterissä olevien myyntiedustajien yhteismyyntiä.

Ohjelman alussa luodaan myyntirekisteriä varten tyhjä sanakirjarakenne. Tämän jälkeen ohjelma pyytää käyttäjää valitsemaan toiminnon seuraavasta listasta:

1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
Käyttäjän valinnan mukaan ohjelma suorittaa halutun toiminnon. Eri toiminnot kuvataan tarkemmin alla.

Mahdolliset toiminnot:

Katso esimerkkiajosta tarkemmin, millainen ohjelman tulostuksen pitää olla eri tilanteista. Jos käyttäjä valitsee halutuksi toiminnoksi jotain muuta kuin jonkin luvuista 1-4, ohjelma vain tulostaa mahdolliset vaihtoehdot uudelleen.

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 3.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 nimet siinä muodossa kuin käyttäjä on ne antanut. Jos esimerkiksi käyttäjä on antanut nimen muodossa "pekka", niin sitä ei löydetä haettaessa nimeä "Pekka".

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 (myyntitapahtuman 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 myyntirekisteri.py.

Vinkki: halutessasi voit testausvaiheessa lisätä ohjelmaan ylimäräisen valinnan, joka vain tulostaa myyntirekisterin 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 myyntirekisterin 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ä.

Esimerkki ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
1
Anna myyntiedustajan nimi.
Essi Edustaja
Anna myyntitapahtuman arvo.
5000.0
Lisattiin rekisteriin uusi myyntiedustaja.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
1
Anna myyntiedustajan nimi.
Essi Edustaja
Anna myyntitapahtuman arvo.
8000.0
Arvo lisattiin edustajan Essi Edustaja kokonaismyyntiin.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
1
Anna myyntiedustajan nimi.
Markku Myyntitykki
Anna myyntitapahtuman arvo.
10000.0
Lisattiin rekisteriin uusi myyntiedustaja.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
2
Kenen kokonaismyynnin haluat tietaa?
Markku Myyntitykki
Edustajan kokonaismyynti on 10000.00 euroa.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
2
Kenen kokonaismyynnin haluat tietaa?
Mika Myyja
Myyjaa ei ole rekisterissa.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
1
Anna myyntiedustajan nimi.
Markku Myyntitykki
Anna myyntitapahtuman arvo.
3500.0
Arvo lisattiin edustajan Markku Myyntitykki kokonaismyyntiin.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
2
Kenen kokonaismyynnin haluat tietaa?
Essi Edustaja
Edustajan kokonaismyynti on 13000.00 euroa.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
3
Kaikkien edustajien yhteismyynti on 26500.00 euroa.
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
5
Myyntirekisteri - valitse toiminto:
1. Lisaa myyntitapahtuma
2. Kerro edustajan myynti
3. Laske kaikkien yhteismyynti
4. Lopeta
4
Ohjelma paattyy.
[ohjelman suoritus päättyy]

Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta