wiki:kesa2014/suunnitelmat/jajotany7
Last modified 3 years ago Last modified on 2014-07-31 11:33:25

1. Elintarvikkeiden lista

1.1. Tarvittavat tiedot

  • Elintarvike
  • Hinta
  • Milloin lisätty
  • Milloin muutettu

1.2. Ominaisuudet

  • Elintarvikkeiden lisäys ja muokkaus
  • Tietyn elintarvikkeen tietojen muokkaus
  • Aiempien hintojen etsiminen tietylle elintarvikkeelle
  • Tehdyn listan tallentaminen
  • Elintarvikkeisiin liittyviä laskentoja (keskiarvo, keskihajonta?)
  • Tallentaa aiempia hintoja joillekin elintarvikkeille? -> Hinnankehityksen seuranta

1.3. Tiedostot, joihin tallennetaan

elintarvikkeet.dat

Sisältää elintarvikkeisiin liittyvän tiedon muotoa:

;elintarvikkeet.dat
;id|elintarvike|lisatty|muokattu 
1|banaani    |25.2.2014|29.2.2014
2|appelsiini |26.2.2014|30.2.2014

elintarvikkeetHinnat.dat

Tiedostoon kootaan elintarvikkeiden hintoja, joita käyttäjä on syöttänyt.

;elintarvikkeetHinnat.dat
;id|elintarvikeID|hinta|lisatty
1|1|1.5|25.2.2014
1|1|2.5|25.2.2014
2|2|3.5|26.2.2014
2|2|5.45|26.2.2014

Ohjelmassa pyritään näyttämään valittuun elintarvikkeeseen liittyvät hinnat.

2. Ohjelma

https://svn.cc.jyu.fi/srv/svn/ohj2ht/k2014/jajotany/trunk/kuvia/alku.png Käyttäjä saa seuraavanlaisen aloitusikkunan, kun hän suorittaa ohjelman.

https://svn.cc.jyu.fi/srv/svn/ohj2ht/k2014/jajotany/trunk/kuvia/virhe.png Jos jostain syystä käyttäjän tiedostoa ei löydetä, niin annetaan tämä viesti.

2.2. Pääikkuna

Kun käyttäjä on luonut uuden tiedoston tai ladannut aiemman, niin hänelle avautuu seuraavanlainen ikkuna pääikkunaksi.

https://svn.cc.jyu.fi/srv/svn/ohj2ht/k2014/jajotany/trunk/kuvia/paaikkunawb.png

Uusi nappi avaa pääikkunan tyhjillä listoilla.

Lataa nappi avaa uuden ikkunan, joka kysyy tiedostoa, josta tiedot ladataan. Jos tiedot pystyttiin lataamaan, niin avautuu pääikkuna.

Vasemmanpuoleinen lista ja hakupalkin avulla voidaan selailla hakuparametrina olevan tuotteen hintoja ja oikeanpuoleinen tulee sisältämään tuotteet ja niiden tiedon.

Nappien alla on seuraavia toimintoja:

Tiedosto            Muokkaa      Apua         Laske
========            =======     ======     =============
Tallenna            Lisää..      Apua       Keskiarvo
Tallenna nimellä...
Lopeta              Muokkaa..    Tietoa..   Keskihajonta
                    Poista..                Summa

Tallenna toimintoa käyttäen voi käyttäjä tallentaa muokatun taulukon tiedostoon ja lopeta toiminnolla poistua ohjelmasta. Sitä painamalla avautuu ikkuna, jossa kysytään tiedoston nimeä, jos aiempaa tiedostoa ei tunneta.

Tallenna toiminto katsoo, että onko taulukolla jo omaa tiedostoa ja tallentaa sinne uuden muokatun tiedon.

Tallenna nimellä... kysyy aina uutta tiedoston nimeä, jonne tallennetaan. Molemmissa tapauksissa kysytään käyttäjältä varmistusta siitä, että haluaako hän tallentaa tiedostoon.

Muokkaa osion alla olevilla napeilla kysytään käyttäjältä, että minkä taulukon alkiota hän haluaisi muokata tai poistaa tai sitten kysytään uutta alkiota, jonka hän haluaa lisätä.

"Apua" toiminnolla annetaan käyttäjälle tietoa ohjelman käytöstä ja "Tietoa..." toiminnolla avautuu seuraava ikkuna:

https://svn.cc.jyu.fi/srv/svn/ohj2ht/k2014/jajotany/trunk/kuvia/tietoja.png

Laske toiminnoilla voi käyttäjä laskea jonkun tuotteen keskihinnan, keskihajonnan jollekin tuotteelle tai sitten yhteissumman joillekin ostoksille.

3. Oliosuunnittelu & Oliot

PaaIkkunaKont?-luokka

PaaIkkunaKont?-luokka kokoaa tiedot muista luokista näytölle ja käsittelee ohjelmassa tehtäviä toimintoja.

Hinta-luokka

Hinta-luokka määrittelee sen, että mitä hintaan kuuluu.

Hinnat-luokka

Hinnat-luokka kokoaa Hinta-luokan ilmentymiä listaan ja käsittelee tätä koottua listaa.

Elintarvike-luokka

Elintarvike-luokka pyrkii kertomaan, että mikä elintarvike on.

Elintarvikkeet-luokka

Elintarvikkeet luokka kokoaa taulukkoon elintarvikkeita ja käsittelee taulukkoa tarpeen mukaan. Se voi esimerkiksi kasvattaa tai pienentää sen kokoa tai poistaa ja lisätä alkioita.

Paivamaara-luokka

Paivamaara-luokka pyrkii vain kokoamaan päivämäärään liittyvän tiedon ja sallii sen muokkaamista. Se hyödyntää GregorianCalendar?- ja Calendar-luokkaa selvittämään tämän päivän.