Tehtävä 1:Tehtävät -
- 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.
...
- 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ä.
...
- Muuttakaa CAuto-luokkaa siten, että kaikki muuttujat sekä TulostaMerkki(), TulostaMalli(), jne. -funktiot ovat private-tyyppisiä.
...
- Kirjoittakaa public-tyyppinen Tulosta()-funktio, joka kutsuu private-tyyppisiä Tulosta()-funktioita.
...
- Tulostakaa auton tiedot main():sta.
...
- Lisätkää CAuto-luokkaan vähintään kaksi ominaisuutta (valmistusvuosi, väri jne) ja tehkää niille asetus- ja tulostusmetodit.
...
- Muuttakaa Tulosta()-metodia siten, että se kutsuu myös näitä lisättyjä metodeja.
...
- Tehkää kokonaan uusi luokka, jossa on min. 2 muuttujaa ja näille asetusfunktiot.
...
- Lisätkää luokkaan muodostin, jolla EI OLE parametreja.
...
- Alustakaa muuttujat muodostimessa oletusarvoihin.
...
- Muokatkaa koostuminen-sivulla annettua esimerkkiä 2.
...
- Luokkien metodeilla tulee olla toteutukset, joiden avulla voidaan suorittaa seuraavat laskutoimitukset: + - * /.
...
- Tehkää operaatiot int-tyyppisille muuttujille.
...
- Laskutoimitukset pitää tulostaa ruudulle, tyyliin 2 + 3 = 5.
...
- Vihje: käyttäkää CProsessori-luokan Laske()-metodissa switch-case rakennetta
...
- 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.
...
...
- 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).
...
- Periyttäkää auto-luokasta jokin luokka (esim. linja-auto, rekka, jne).
...
- Lisätkää perilliseen väh. kaksi uutta muuttujaa ja metodia.
...
- Tehkää perilliseen Aseta(...) metodi, jolla on asetetaan arvo kaikille perillisen ja vanhemman muuttujille.
...
- Tehkää perilliseen Tulosta() metodi, joka tulostaa kaikkien perillisen ja vanhemman muuttujien arvot.
...
- Asettakaa muodostimessa auto luokan renkaiden lukumääräksi 4. Muuttakaa tämä lukumäärä vastaamaan perillisen renkaiden lukumäärää.
...
- Luokaan main():iin olio perillisestä (rekka, linja-auto, tjm) ja kutsukaa vanhemmassa esitettyjä metodeita.
...
- (kertausta)
-Esitelkää yksi luokka, jossa on privaatti jäsenmuuttuja, sekä yksi julkinen metodi.
...
- (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 !!!
...
- (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 !!!
...
- (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 !!!
...
- (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 !!!
...
- (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 !!!
...
- (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 !!!
...
- (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 !!!
...
- (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 !!!
...
- -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()!
...
- -Tehkää luokka, jossa on yksi vakio jäsenmuuttuja (const), alustakaa se.
-Lisätkää luokkaan metodi, joka käyttää vakio-jäsenmuuttujaa.
...
- -Tehkää luokka, jossa on kaksi vakiometodia.
-Kutsukaa näitä metodeita main():sta, const-tyyppisen olion kautta.
...
- -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.
...
- -Kirjoittakaa FUNKTIO, joka ottaa parametrina osoittimen
-Muuttakaa annetun osoittimen osoittamaa arvoa
-Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että arvo muuttuu.
...
- -Kirjoittakaa funktio, jolla on parametreina kaksi (saman tyyppistä) osoitinta.
-Vaihtakaa osoittimien arvot keskenään;
-Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että arvot vaihtuivat.
...
- -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.
...
- -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ä).
...
- -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.