Bonustehtävät

Bonustehtävät ovat ylimääräisiä tehtäviä, joilla voi korottaa viikkotehtävistä saamaansa arvosanaa. Näillä tehtävillä voi myös vielä korottaa alle ykkösen jäämässä olevan viikkotehtäväarvosanan hyväksytyksi.

Huomaa, että tehtävien pisteytys toimii eri tavalla kuin aiemmin!

Tehtävät on palautettava viimeistään 7.12.2012 klo 12:00.

Tehtävä 1

Tämän tehtävän voivat tehdä ne joilla on viikkotehtävistä pisteitä yhdeksän (9) tai vähemmän. Tehtävästä saa yhden lisäpisteen.

Toteuta yksinkertainen graafinen autolaskuri monikielisenä WPF-sovelluksena. Autolaskurin pitää osata laskea henkilöautoja, kuorma-autoja ja niiden yhteissumman.

Lisää ohjelmaan menu josta voit valita onko käytettävä kieli suomi vai englanti. Tieto valitusta kielestä pitää tallentaa rekisteriin tai .config-tiedostoon käyttäjäkohtaisina asetuksina. Uusi valittu kieli otetaan käyttöön ohjelman seuraavalla käynnistyskerralla.

Ohjelman sisältämistä teksteistä pitää kääntää ainakin ikkunan title, painikkeiden tekstit ja kieli-menu valintoineen.. Toteuta monikielisyys resx-tiedostoja käyttäen.

Tehtävä 2

Tämän tehtävän voivat tehdä ne joilla on viikkotehtävistä pisteitä 20 tai vähemmän. Tehtävästä saa yhden lisäpisteen.

Toteuta samanlainen autolaskuri kuin ykköstehtävässä mutta toteuta monikielisyys LocBaml-työkalun avulla. Älä käytä resx-tiedostoja.

Mahdollista laskurin käyttäminen myös verkon kautta WWW-selaimella. Ts. Tee pieni www-sivu jossa on kaksi linkkiä "Lisää henkilöauto" ja "Lisää kuorma-auto" ja nämä viittaavat autolaskurisi muodostamaan pieneen WWW-palvelimeen ja linkissä käyminen kasvattaa kyseistä laskuria. esim. http://omakone.example/henkiloauto ja http://omakone.example/kuorma-auto. Palvelin saa toimia muussakin portissa kuin 80.

Toteuta asetusten tallentaminen .config-tiedoston avulla. Älä käytä rekisteriä.

Tehtävä 3

Tämän tehtävän voivat tehdä ne joilla on viikkotehtävistä yli 20 pistettä. Tehtävästä saa yhden lisäpisteen.

Toteuta samanlainen autolaskuri kuin kakkostehtävässä seuraavilla muutoksilla ja lisäyksillä:

Lisää ohjelmaan menuvalinta jolla voi lisätä sovellukseen laskureita jo olemassaolevien kahden lisäksi. Uusi lisätty laskuri kysyy mitä sillä halutaan laskea ja laskukohteeksi voidaan antaa mikä tahansa asia (merkkijono). Jos lisää kaksi kappaletta samanlaisia laskureita esim. kuorma-autolaskureita niin laskurit toimivat keskenään synkronoituina eli kummalla tahansa lisää kuorma-auton niin molempien laskuri kasvaa.

Varmista, että kutakin laskuria voidaan käyttää myös WWW-selaimen avulla verkon kautta. Tee WWW-sivu jossa on lomake jolla kysytään laskurikohdetta (merkkijonoa) ja sen jälkeen lomakkeen lähettäminen kasvattaa kyseisen laskurin arvoa. esim. http://omakone.example/kasvata?kohde=henkiloauto Toteuta verkkopalvelin erillisena ohjelmana (Laskuripalvelin).

Ohjelma osaa aina näyttää kaikkien laskurien yhteissumman. Mahdollista myös laskurien poistaminen ohjelmasta. Ohjelma muistaa automaattisesti sisältämiensä laskurien määrän, tyypit ja arvot ja käynnistää saman määrän samanlaisia laskureita aiemmilla laskutuloksilla ohjelman seuraavalla käyttökerralla.

Toteuta ohjelman laskurit omina kontrolleina ja mahdollista kielen vaihtaminen laskurikohtaisesti. Ts. käyttäjä voi valita onko kuorma-autolaskuri tai henkilöautolaskuri tai mikä liekään laskuri suomenkielinen tai englanninkielinen toisista laskureista riippumatta. Toteuta kielivalinta suoraan kontrollissa. Lisäksi toteuta ohjelman yhteisten osien kielivalinta laskurien kielestä riippumatta. Kukin laskurikontrolli muistaa kielensä ohjelman eri käynnistyskertojen välillä.

Kaikki ohjelman tallentamat asetukset ovat käyttäjäkohtaisia. Laskurien laskurisummat ovat globaaleja eli kaikille käyttäjille yhteisiä.

Lisää laskuripalvelimeen tuki tietokannalle eli luo pieni tietokanta johon kunkin laskurityypin arvo tallentuu. Käytä laskurikomponentissa samaa tietokantaa eli palvelinta, jonka osoite voidaan määrittää sopivan propertyn avulla. Pidä huoli, että tietokantaan tallentaminen toimii vaikka laskureita olisi samassa ohjelmassa kymmeniä ja selainta käyttäviä käyttäjiä myös useita. Varmista, että tietokantapalvelin toimii kunnolla vaikka laskuriohjelmia olisi samanaikaisesti päällä useita. Ohjelman graafisia käyttöliittymiä voidaan siis käynnistää useita mutta laskuripalvelimia on aina käynnissä vain yksi.

Tehtävä 4

Tämän tehtävän voivat tehdä kaikki riippumatta viikkotehtävien pistemäärästä.

Tässä tehtävässä toteutetaan graafinen sovellus johonkin muuhun ympäristöön kuin työpöytä-Windows tai käyttäen muuta kehitysympäristöä ja kieltä kuin C#, WPF ja Visual Studio. Mahdollisia toteutusympäristöjä ja välineitä ovat Bonusluennoissa käsitellyt uudet ympäristöt. Ohj1- ja Ohj2-kursseilla käytetyt kielet (Java) eivät kelpaa.

Tehtävän ohjelmakoodi on kommentoitava erittäin hyvin. Huonosti kommentoiduista vastauksista ei saa pisteitä.

Tehtävästä saa yhden lisäpisteen jokaisesta toteutusympäristöstä. Esim. Jos teet tehtävän Windows Phone -ympäristöön sekä Android-ympäristöön niin saat kaksi lisäpistettä. Lisäpisteitä voi tästä tehtävästä saada maksimissaan kolme (3) kappaletta.

Tee yhteenlaskuohjelma jossa on kaksi kenttää joihin voi syöttää kokonaislukuja. Ohjelmassa on myös Laske-painike, jota napauttamalla ohjelma laskee sille annetut luvut yhteen ja asettaa saamansa tuloksen syöttökenttien viereen.

Ohjelman pitää toimia järkevästi kaikilla syötteillä. Ohjelma ei saa kaatua.

Salli yhteenlaskettavien lukujen lukumäärän lisääminen eli lisää ohjelmaan painike jolla voidaan luoda uusia tyhjiä syöttökenttäpareja.

Yhteenlaskutoimitus pitää tehdä kaikille lukupareille ja laskutoimituksen tulos pitää esittää lukuparin vieressä.

Kaikkien lukuparien kumulatiivinen summa sijoitetaan ikkunassa laidasta laitaan liikkuvaan kenttään (vrt. autolaskurissa liikkuva auto).

Ohjelmassa on myös painike, joka nollaa kumulatiivisen laskurin. Kumulatiivisen laskurin nollauksen jälkeen kaikki ylimääräiset kentät poistetaan ja aloitetaan taas kahdella kentällä.

Ohjelman pitää toimia järkevällä ja käytettävällä tavalla vaikka laskurit eivät mahtuisi kaikki kerralla näkyville.

Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/vt/bonus/
© Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2016-01-13 18:19:13
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta