iio10500 Käyttöliittymäohjelmointi
Ohjelmointikoe 30.4.2009

Testaamisen helpottamiseksi (niin opettajan kuin omannekin), luokaa D:-levyn juureen seuraavat kaksi hakemistoa:
1)  hakemisto jonka nimeät opiskelijanumerosi_pvm siis esim "A1234_20090430".
    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.
   Huom: xml-tiedostoja 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, zipannut em. hakemiston  ja lähettänyt kokeesi zippipakettina sähköpostillä, käy kirjoittamassa taululle: nimesi, kellonaika ja merkitse arviosi kunkin tehtävän pistemäärästä. Koe palautetaan sähköpostilla kuten koesäännöissä kerrotaan.

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

Tehtävä 1

Autokauppa JintaRouppi & poika on keskittynyt myymään wanhoja urheiluautoja. Tee Windows-sovellus WanhatAutot, jolla herra Jintarouppi tai poika voi:

  1. katsella autonvaraston sisältöä (eli näytä kaikki tiedot autoista sopivassa data-sidonnaisessa kontrollissa)
  2. suodattaa näkymää niin että vain valittu automerkki näkyy (eri automerkit näkyy ComboBox-kontrollissa)
  3. lisätä uusia hankkimiaan wanhoja autoja varastoonsa
  4. poistaa myymiään autoja varastosta
  5. muuttaa valitun auton myyntihintaa
  6. tarkastella autovarastonsa yhteenlaskettua myyntiarvoa.

Myynnissä olevat autot on tallennettu XML-tiedostoon WanhatAutot.xml. XML-tiedoston sijainti kerrotaan App.Config-tiedostossa.
Auton myyntihinta on tallennettu tagiin
<myyntihinta>.
Autoista on tallennettu tiedot seuraavasti:

<Auto>
<aid>99</aid>
<rekkari>AAA-313</rekkari>
<merkki>Audi</merkki>
<malli>100 2.0e</malli>
<vm>1989</vm>
<myyntihinta>9500</myyntihinta>
<sisaanOstoHinta>8250</sisaanOstoHinta>
</Auto>

 Suunnittele ja toteuta haluamanlaisesi Windows-käyttöliittymä.
Toteuta myös seuraavat virhekäsittelytoiminnot:
- Jos App.Configissa määriteltyä a 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.

Pisteet max 12 p:

Tehtävä 2

Tamperelainen käytettyjen levyjen myyntiä harjoittava RokoPecords tarvitsee yksinkertaisen ja näppärän konsoli-sovelluksen jolla firman työntekijät voivat:

Tee konsolisovellus Records, jolla voidaan tehdä em. asiat.
Esimerkkejä mahdollista käynnistyskomennoista:
RECORDS /ALL
RECORDS /SORT
RECORDS /FILTER "SUOMI"
RECORDS /COUNT
RECORDS /HELP

- Extra: [tee tämä lopuksi jos kerkiät] käyttäjä voi antaa useamman option esim RECORDS /FILTER "SUOMI" /SORT /COUNT, jolloin sovellus listaisi kaikki suomalaiset levyt tekijän mukaan aakkosjärjestyksessä ja lopuksi näyttäisi levyvaraston levyjen lukumäärän ja yhteenlasketun m

 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>

Käytä App.Config tiedostoa, eli luo sinne sopiva avain AppSettings-lohkoon, johon tallennetaan käytettävän xml-tiedoston nimi ja hakemisto. Sovellus lukee App.Config:sta tiedostonimi käynnistyksen yhteydessä, tiedostonimeä EI SAA kovakoodata. Käytä App.Configissa arvona D:\data\Records.xml

Lisää sopivaksi katsomasi virhekäsittely käyttäjän virhetoimintojen ja ajonaikaisten virheiden varalta

Pisteet max 10 p:

Tehtävä 3

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

Tehtävä 3a

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

Toteutettava toiminnallisuus

Demox Oy  
Demox Oy  
 

Pisteet max 10 p:

Tehtävä 3b

Tee Windows-sovellus Neliö.

Toteutettava toiminnallisuus:

Suunnittele ja toteuta mieleisesi käyttöliittymä.

Pisteet max 10 p: