iio10500 Käyttöliittymäohjelmointi
Ohjelmointikoe 23.4.2009

Testaamisen helpottamiseksi (niin opettajan kuin omannekin), luokaa D:-levylle seuraavat kaksi hakemistoa:
1)  hakemisto jonka nimeät opiskelijanumerosi_pvm siis esim "A1234_20090423".
    Tämän hakemiston  alle kukin tehtävä on projektina omaan alikansioon, siis tehtävälle yksi luo kansio T1. 
     Luo vain yksi Solution, jonka nimeät samalla tavalla kuin hakemiston siis "Opiskelijanumerosi_pvm",
    lopullisessa solutionissa sinulla on siis kolme projektia.
2) hakemisto DATA, johon sijoitat sovellusten tarvitsemat xml-tiedostot; niitä ei saa sijoitella pitkin/poikin bin,debug,release yms-kansioita.

Tarvittavat tiedostot löytyvät jaetusta kansiosta \\storage.labranet.jamk.fi\homes\salesa\jakoon\iio10500\Data

Kun olet saanut kokeesi valmiiksi käy kirjoittamassa taululle: nimesi, kellonaika ja merkitse arviosi kunkin tehtävän pistemäärästä.

Kokeen maksimipistemäärä on 32p. Läpipääsyn raja on 50% maksimista eli läpipääsyyn vaaditaan vähintään 16p.

Koe palautetaan sähköpostilla kuten koesäännöissä kerrotaan.

Tehtävä 1

Autokauppa JintaRouppi & poika on keskittynyt myymään wanhoja urheiluautoja. Heidän myynnissään olevat autot on tallennettu XML-tiedostoon WanhatAutot.xml. Tee Konsoli-sovellus LaskeAutot, jolla herra Jintarouppi tai poika voi laskea autovarastonsa yhteenlasketun myyntiarvon. Auton myyntihinta on tallennettu tagiin <myyntihintaUusi>.
Myytävien autojen tiedot on tallennettu seuraavasti:

<HaeAutotUusi>
<aid>11</aid>
<rekkari>KJL-132</rekkari>
<merkki>Audi</merkki>
<malli>100 2.0e</malli>
<vm>1989</vm>
<myyntihintaVanha>49500</myyntihintaVanha>
<myyntihintaUusi>8250</myyntihintaUusi>
</HaeAutotUusi>

Sovellus käynnistetään antamalla argumenttina tiedostonimi hakemistopolkuineen, esim seuraavasti "LASKEAUTOT  D:\data\WanhatAutot.xml".
Testauksen vuoksi ohjelma näyttää konsolissa listattuna omalle rivilleen kunkin auton merkin, mallin ja myyntihinnan.
Lopuksi ohjelma näyttää yhteenlasketun myyntihinnan.

Toteuta myös seuraavat virhekäsittelytoiminnot:
- Jos argumenttia ei anneta, sovellus näyttää ohjeen miten sovellus tulee käynnistää.
- Jos annettua tiedostoa ei löydy, ohjelma antaa virheilmoituksen siitä.
- Extra: [tee jos kerkiät] Jos annetun xml-tiedoston skeema ( ja siten myös tietosisältö) on erilainen, kuin pitäisi niin ohjelma antaa virheilmoituksen yhteensopimattomasta tiedostomuodosta.

WanhatAutot

Pisteet max 10 p:

Tehtävä 2

Tee Windows-sovellus WinRecords, jolla voidaan tarkastella ja muokata levyvarastomme sisältöä. Käyttäjä voi lisätä levyjä, poistaa levyjä ja muokata valitun levyn tietoja.
Käytä tiedostoa Records.xml. XML-tiedoston rakenne on seuraavanlainen:

<record>
<title>Valkoinen kupla</title>
<artist>Eppu Normaali</artist>
<country>Suomi</country>
<year>1986</year>
<value>10</value>
</record>

Toteuttava toiminnallisuus:
- Kun sovellus käynnistetään, niin levyvaraston kaikki levyt näytetään.
- Käyttäjä voi lisätä uuden levyn, tarkista ennen tallennusta että kaikki arvot on annettu
- Käyttäjä voi muokata levyn tietoja, tarkista tässäkin että  kaikki arvot on annettu, eli kentällä tulee olla arvo
- Käyttäjä voi poistaa valitun levyn
- Käyttäjä näkee koko ajan reaaliaikaisesti levyvaraston levyjen lukumäärän ja arvojen summan (=levyvaraston arvo)
- Extra: [tee tämä lopuksi jos kerkiät] uutta levy tallentaessa tarkistus ettei varastossa ole jo samaa levyä, eli jos kentät title, artist ja year ovat samat levy tulkitaan samaksi

 Tallenna käytettävän tiedoston nimi ja hakemistp App.Config tiedostoon, josta se luetaan käynnistyksen yhteydessä testaamisen helpottamiseksi,
käytä App.Configissa arvona
D:\data\Records.xml

 Käyttöliittymän saat suunnitella itse. Lisää sopivaksi katsomasi virhekäsittely käyttäjän virhetoimintojen ja ajonaikaisten virheiden varalta

Pisteet max 12 p:

Tehtävä 3

Huom! Valitse jompikumpi seuraavista tehtävistä 3a tai 3b

Tehtävä 3a

Tee allaolevan kuvan mukainen Windows-sovellus WinEcellary, jolla voidaan tarkastella tietokannassa olevan viinikellarimme sisältöä.
Tiedot ovat SQLServerillä priex.labranet.jamk.fi tietokannassa Viini ja taulussa wine
Tallenna tietokantapalvelimen nimi ja tietokannan nimi App.Config-tiedostoon. Tallenna sinne myös testauksen helpottamiseksi oletusarvo käyttäjänimelle ja salasanalle.

Toteutettava toiminnallisuus

WineCellary WineCellary WineCellary
     
WineCellaryReady

Pisteet max 10 p:

 

 

 

Tehtävä 3b

Tee Windows-sovellus Pallo. Sovelluksen käynnistyminen avaa aluksi tyhjän ikkunan.

Toteutettava toiminnallisuus:

Suunnittele ja toteuta mieleisesi käyttöliittymä.

Pisteet max 10 p: