Tehtävät : Olio-ohjelmoinnin perusteet - luokka ja oliot

UML-luokkakaaviot

Alla olevissa tehtävissä voit käyttää webistä löytyvää Flow Chart Maker & Online Diagram Software -palvelua luokkakaavioiden suunnittelussa tai esim. luokan koneille asennettua Violet-editoria (voit asentaa sen kotikoneelle täältä: Violet UML editor).

Tehtävä 1

Tehtävänäsi on ohjelmoida kiukaan toiminta. Kiuas pitää pystyä laittamaan päälle ja pois, sekä sen lämpötilaa että sen antamaa kosteutta pitää pystyä säätämään (arvoja ei ole rajattu).

UML

Suunnittele Kiuas-luokan ominaisuudet ja toiminnot UML-luokkakaaviona.

Ohjelmointi

Toteuta Kiuas-luokan ohjelmointi sekä pääohjelma, jolla luot olion Kiuas-luokasta. Säädä kiuas-oliota erilaisilla arvoilla, jätä Console.WriteLine()-tulostuslauseet ohjelmaasi, jotta kiuas-olion käyttäminen jää näkyville.

Tehtävä 2

Tehtävänäsi on ohjelmoida pesukoneen toiminta. Samoin kuin edellinen tehtävä: mitä ominaisuuksia ja toimintoja tekisit Pesukone-luokkaan?

UML

Suunnittele Pesukone-luokan ominaisuudet ja toiminnot UML-luokkakaaviona.

Ohjelmointi

Toteuta Pesukone-luokan ohjelmointi sekä pääohjelma, jolla luot olion Pesukone-luokasta. Säädä pesukone-oliota erilaisilla arvoilla, jätä Console.WriteLine()-tulostuslauseet ohjelmaasi, jotta pesukone-olion käyttäminen jää näkyville. Toteuta Pesukone-luokkaan muutamia erilaisia konstruktoreita ja alusta niitä käyttämällä oliota pääohjelmasta käsin.

Tehtävä 3

Tehtävänäsi on ohjelmoida television toiminta. Samoin kuin edellinen tehtävä: mitä ominaisuuksia ja toimintoja tekisit Televisio-luokkaan?

UML

Suunnittele Televisio-luokan ominaisuudet ja toiminnot UML-luokkakaaviona.

Ohjelmointi

Toteuta Televisio-luokan ohjelmointi sekä pääohjelma, jolla luot olion Televisio-luokasta. Säädä luomaasi Televsio-oliota erilaisilla arvoilla, jätä Console.WriteLine()-tulostuslauseet ohjelmaasi, jotta televisio-olion käyttäminen jää näkyville.

Tehtävä 4 home

Luo Vehicle-luokka seuraavien tietojen mukaisesti:

Toteuta Vehicle-luokan ohjelmointi sekä pääohjelma, jolla luot olion Vehicle-luokasta. Muuta olion arvoja ja tulosta olion arvoja konsolille.

Tehtävä 5 home

Suunnittele UML-editorilla Opiskelija-luokka, joka sisältää opiskelijalle tyypillisiä tietoja ja toimintoja. Tee uusi projekti. Ohjelmoi Opiskelija-luokka sekä toteuta pääohjelma, joka luo muutamia opiskelijoita ja tallentaa opiskelijat taulukkoon (esim. 5 opiskelijaa). Tulosta taulukossa olevien opiskelijoiden tiedot käyttämällä toistorakennetta.

Tehtävä 6 home

Valitse jokin reaalimaailman asia ja suunnittele siitä luokkarakenne UML-editorilla. Tee uusi projekti. Ohjelmoi suunnittelema luokkasi sekä käytä tekemääsi luokkaa edellisten tehtävien mukaisesti.

Tehtävä 7

Suunnittele UML-editorilla CD-luokka, joka sisältää ominaisuuksina tyypillisiä CD-levyyn kuuluvia tietoja. Pohdi myös mitä eri toiminnallisuuksia CD:llä voisi olla. Toteuta ainakin toiminnallisuus, joka palauttaa kaikkien ominaisuuksien arvot yhtenä merkkijonona (sen avulla pääohjelmassa voisi tulostaa kaikki CD:n tiedot). Tehtävässä "ei tarvitse" toteuttaa eri biisien ominaisuuksia, tätä asiaa pohditaan tulevissa demoissa, kun olio-ohjelmointiin liittyvä koostaminen otetaan esille. Jos kuitenkin haluat miettiä sitä, niin se on tämän tehtävän +kohta eli voit kokeilla tehdä erillisen Biisi-luokan ja toteuttaa CD-luokan sisälle taulukon, jossa on biisejä.

Ohjelmoi C#:lla suunnittelemasi CD-luokka. Toteuta pääohjelmassa CD-olioita. Tiedot voit keksiä itse, niitä ei tarvitse kysyä käyttäjältä. Tulosta ruudulle CD:n tietoja.

Esimerkkitoiminta:


    CD:
    -Artist: Nightwish
    -Name: Endless Forms Most Beautiful
    -Genre: Symphonic metal
    -Price: 19,9$
    Songs:
    --- Name: Shudder Before the Beautiful - 06:29
    --- Name: Weak Fantasy - 05:23
    --- Name: Elan - 04:45
    --- Name: Yours Is an Empty Hope - 05:34
    --- Name: Our Decades in the Sun - 06:37
    --- Name: My Walden - 04:38
    --- Name: Endless Forms Most Beautiful - 05:07
    --- Name: Edema Ruh - 05:15
    --- Name: Alpenglow - 04:45
    --- Name: The Eyes of Sharbat Gula - 06:03
    --- Name: The Greatest Show on Earth - 24:00