Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Tehtävä 1:Tehtävät -

  1. Muokatkaa tunneilla tehtyä esimerkkiä Tietokone-luokasta siten, että lisäätte luokkaan kaksi uutta jäsenmuuttujaa (ominaisuutta) ja mainiin toisen olion Tietokone-luokasta, määrittäen myös sen ominaisuudet.

...

  1. Mallintakaa CAuto-luokka, jossa tulee olla vähintään 5 jäsenmuuttujaa ja niille asetus ja tulostusfunktiot, lisäksi kirjoittakaa muodostin. Funktioiden ja muuttujien tulee olla public tyyppisiä.

...

  1. Muuttakaa CAuto-luokkaa siten, että kaikki muuttujat sekä TulostaMerkki(), TulostaMalli(), jne. -funktiot ovat private-tyyppisiä.

...

  1. Kirjoittakaa public-tyyppinen Tulosta()-funktio, joka kutsuu private-tyyppisiä Tulosta()-funktioita.

...

  1. Tulostakaa auton tiedot main():sta.

...

  1. Lisätkää CAuto-luokkaan vähintään kaksi ominaisuutta (valmistusvuosi, väri jne) ja tehkää niille asetus- ja tulostusmetodit.

...

  1. Muuttakaa Tulosta()-metodia siten, että se kutsuu myös näitä lisättyjä metodeja.

...

  1. Tehkää kokonaan uusi luokka, jossa on min. 2 muuttujaa ja näille asetusfunktiot.

...

  1. Lisätkää luokkaan muodostin, jolla EI OLE parametreja.

...

  1. Alustakaa muuttujat muodostimessa oletusarvoihin.

...

  1. Muokatkaa koostuminen-sivulla annettua esimerkkiä 2.

...

  1. Luokkien metodeilla tulee olla toteutukset, joiden avulla voidaan suorittaa seuraavat laskutoimitukset: + - * /.

...

  1. Tehkää operaatiot int-tyyppisille muuttujille.

...

  1. Laskutoimitukset pitää tulostaa ruudulle, tyyliin 2 + 3 = 5.

...

  1. Vihje: käyttäkää CProsessori-luokan Laske()-metodissa switch-case rakennetta

...

  1. Jokainen luokka tulee on omassa tiedostossaan.
    HUOM. Kun luotte luokkia, niin älkää käyttäkö Add/Add Class -palvelua, vaan luokaa tyhjä .h tai .cpp -tiedosto ja kirjoittakaa kaikki käsin. Ajatuksella.

...

...

  1. Tehkää auto-luokka (tai käyttäkää jo olemassa olevaa), jossa on protected-määreellä väh. kaksi metodia ja viisi muuttujaa (renkaiden lkm, jne).

...

  1. Periyttäkää auto-luokasta jokin luokka (esim. linja-auto, rekka, jne).

...

  1. Lisätkää perilliseen väh. kaksi uutta muuttujaa ja metodia.

...

  1. Tehkää perilliseen Aseta(...) metodi, jolla on asetetaan arvo kaikille perillisen ja vanhemman muuttujille.

...

  1. Tehkää perilliseen Tulosta() metodi, joka tulostaa kaikkien perillisen ja vanhemman muuttujien arvot.

...

  1. Asettakaa muodostimessa auto luokan renkaiden lukumääräksi 4. Muuttakaa tämä lukumäärä vastaamaan perillisen renkaiden lukumäärää.

...

  1. Luokaan main():iin olio perillisestä (rekka, linja-auto, tjm) ja kutsukaa vanhemmassa esitettyjä metodeita.

...

  1. (kertausta)
    -Esitelkää yksi luokka, jossa on privaatti jäsenmuuttuja, sekä yksi julkinen metodi.

...

  1. (kertausta)
    -Tehkää yksi luokka (siis esittely ja toteutus metodeille), jossa on yksi privaatti jäsenmuuttuja, sekä yksi parametriton julkinen metodi.
    -Luokaa luokasta olio main():ssa ja kutsukaa metodia. Metodin toteutuksessa voi esim. tulostaa tekstin.
    !!! TEHKÄÄ UUSI LUOKKA !!!

...

  1. (kertausta)
    -Tehkää yksi luokka, jossa on privaatti jäsenmuuttuja.
    -Kirjoittakaa luokalle parametriton muodostin, jossa jäsenmuuttujalle annetaan (alku)arvo.
    -Luokaa luokasta olio main():ssa.
    !!! TEHKÄÄ UUSI LUOKKA !!!

...

  1. (kertausta)
    -Tehkää luokka, jossa on yksi julkinen metodi, jolla on bool-tyyppinen parametri.
    -Riippuen tämän parametrin arvosta, tulostakaa eri tekstit (esim. if/else-rakenteen avulla)
    !!! TEHKÄÄ UUSI LUOKKA !!!

...

  1. (kertausta)
    -Tehkää luokka, jossa on kolme privaattia jäsenmuuttujaa, sekä PARAMETRILLINEN muodostin, jossa kaikille kolmelle muuttujalle annetaan arvo.
    -Luo luokasta olio main():ssa.
    !!! TEHKÄÄ UUSI LUOKKA !!!

...

  1. (kertausta)
    -Tehkää luokka, jossa on kaksi privaattia jäsenmuuttujaa, näille julkiset asetusmetodit sekä privaatit tulostametodit.
    -Lisäksi tehkää luokkaan julkinen Tulosta()-metodi, joka puolestaan kutsuu privaatteja tulostametodeja.
    -Luokaa luokasta olio, asettakaa muuttujille jotkin arvot ja tulostakaa ne.
    HUOM: Tässä tehtävässä tehty luokka on enkapsuloitu...
    !!! TEHKÄÄ UUSI LUOKKA !!!

...

  1. (kertausta)
    -Tehkää kaksi luokkaa, joista toinen perii toisen.
    -Tehkää vanhempi-luokkaan kaksi protected-tyyppistä muuttujaa ja metodia.
    -Kutsukaa näitä perillisen metodeista, joita puolestaan kutsutaan main():sta.
    !!! TEHKÄÄ UUDET LUOKAT !!!

...

  1. (kertausta)
    -Tehkää kaksi luokkaa CAuto ja CMoottori, joista CAuto koostuu CMoottorista.
    -Kutsukaa CMoottori-luokan metodia CAuto-luokan metodista, jota puolestaan kutsutaan main():sta.
    !!! TEHKÄÄ UUDET LUOKAT !!!

...

  1. (kertausta)
    -Tehkää yksi luokka, jossa on privaatti jäsenmuuttuja sekä julkinen metodi, joka palauttaa jäsenmuuttujan arvon.
    -Tehkää lisäksi parametriton muodostin, jossa jäsenmuuttujalle annetaan alkuarvo.
    -Luokaa olio main():ssa ja kutsukaa metodia, joka palauttaa jäsenmuuttujan arvon
    -Tulostakaa eri tekstit if/else -rakenteen avulla, riippuen palautetusta arvosta.
    !!! TEHKÄÄ UUDET LUOKAT !!!

...

  1. -Tehkää luokka, jossa on kolme jäsenmuuttujaa.
    -Kirjoittakaa luokkaan julkinen metodi TeeJotain(), jolla on kaksi parametria, joiden arvot kopioidaan kahdelle jäsenmuuttujalle.
    -Kirjoittakaa luokkaan lisäksi privaatti parametriton metodi TeeJotain(), jossa alustetaan kolmas jäsenmuuttuja alkuarvoon.
    -Kutsukaa parametrillisesta funktiosta parametritonta metodia.
    -Luokaa main():ssa olio luokasta ja kutsukaa parametrillista metodia.
    Huom! Molempien metodien nimi tulee olla TeeJotain()!

...

  1. -Tehkää luokka, jossa on yksi vakio jäsenmuuttuja (const), alustakaa se.
    -Lisätkää luokkaan metodi, joka käyttää vakio-jäsenmuuttujaa.

...

  1. -Tehkää luokka, jossa on kaksi vakiometodia.
    -Kutsukaa näitä metodeita main():sta, const-tyyppisen olion kautta.

...

  1. -Tehkää main():iin kaksi saman tyyppistä muuttujaa, joilla on eri arvot.
    -Lisätkää osoitin, joka on samaa tyyppiä kuin muuttujat.
    -Tulostakaa molempien muuttujien arvot osoittimen kautta.

...

  1. -Kirjoittakaa FUNKTIO, joka ottaa parametrina osoittimen
    -Muuttakaa annetun osoittimen osoittamaa arvoa
    -Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että arvo muuttuu.

...

  1. -Kirjoittakaa funktio, jolla on parametreina kaksi (saman tyyppistä) osoitinta.
    -Vaihtakaa osoittimien arvot keskenään;
    -Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että arvot vaihtuivat.

...

  1. -Luokaa kolmen alkion osoitintaulukko.
    -Luokaa kolme muuttujaa (samaa tyyppiä kuin osoitintaulukko).
    -Pistäkää kaikki taulukon osoittimet osoittamaan muuttujiin.
    -Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että osoittimet toimivat.

...

  1. -Luokaa kaksi luokkaa, joista toinen perii toisen.
    -Tehkää vanhempi-luokkaan vähintään yksi virtuaalinen funktio.
    -Ylikirjoittakaa tämä virtuaalinen funktio perillisessä.
    -Käyttäkää perillistä sen luokasta tehdyn olion kautta sekä vanhemman luokan osoittimen kautta.
    -Testatkaa mitä tapahtuu, jos muutatte virtuaalisen funktion tavalliseksi funktioksi (eli poistatte sanan virtual funktion määrittelyn edestä).

...

  1. -Luokaa vanhempi-luokka, jossa on vähintään yksi aito virtuaalinen funktio.
    -Luokaa kaksi luokkaa, jotka perivät ja toteuttavat vanhempi-luokan.
    -Luokaa CKokoelma-luokka ja lisätkää siihen vanhempi-luokan tyyppinen osoitintaulukko.
    -Luokaa main():ssa CKokoelma-luokasta olio ja perillisistä useita olioita.
    -Viekää oliot CKokoelma-luokkaan ja tallentakaa ne osoitintaulukkoon.
    -Varmistukaa, että osoitintaulukko toimii, esim kutsumalla olioiden funktioita, tai jollain muulla tavalla.