C++ ja aloittelijalle paha tehtävä.

Eli seuraavanlainen tehtävä pitäisi väsätä, mutta enpä oikein pääse ees alkuun.
Minun ohjelmointitaidoille siis vaikuttaa pahalta.
Tuli "lapiolla ottaan" -fiilis. Olen yrittänyt opetella enemmänkin alkeita ja aika ei vain meinaa riittää näihin pahempiin ongelmiin.
Tiedän juu, että tehtävät tulisi tehdä itse, mutta kun en vaan osaa.
Kiitos jo etukäteen, jos joku viitsii auttaa.


Tehtävässä sinun tulee kirjoittaa kaksi luokkaa: Koira ja Isanta. Alla oleva pääohjelma käyttää kirjoittamiasi luokkia ja tehtävän tarkoituksena on, että osaisit rakentaa luokat tulkitsemalla pääohjelmaa, sekä esimerkkitulostusta, jonka pääohjelma muodostaa kun luokat on toteutettu oikein. Seuraavassa muutama vihje, joiden pitäisi helpottaa luokkien rakentamista:


* Isännällä voi olla koira, mutta vaikka koiralla olisi isäntä, se "ei tiedä" isännästään mitään.
* Kun luokasta Ihminen muodostetaan uusi ihminen, ihminen ei saa automaattisesti koiraa vastuulleen.
* Kun ihmistä pyydetään kävelyttämään koiraa, riippuu ihmisen toiminta siitä, onko hänellä koira vastuullaan.


Alla näet pääohjelman, jolla luokkiasi testataan:

int main()
{
string koiran_nimi, ihmisen_nimi;
cout > ihmisen_nimi;
cout > koiran_nimi;

cout KavelytaKoiraa(7);
rekku->Hauku();

isanta->OtaVastuuKoirasta(rekku);
isanta->KavelytaKoiraa(7);

rekku->Hauku();

return 0;
}
Esimerkkitulostus


Anna ihmisen nimi: Mikko
Anna koiran nimi: Pluto

Mikko: Mutta eihän minulla ole koiraa...
Pluto: Hau hau! Olen kävellyt 0 kilometriä.
Mikko: Pluto käveli juuri 7 kilometriä.
Pluto: Hau hau! Olen kävellyt 7 kilometriä.
61184
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Neuvoisin nyt lyhyesti, että teet listan paperille tai tekstitiedostoon asioista, mitä kummankin luokan pitää pitää sisällään. Sitten kun saat sen tehtyä, yritä jatkaa tai kysy uudestaan neuvoa.

Kaipa sinä osaat niitä classeja jo tehdä. Muuten on ihan mahdoton tehtävä vielä.

Siis: osaatko termit: class, constructor, pointer?

Se on tuo *-merkki tuossa yhteydessä pointterin merkki btw.

Äänestä

#include
#include

using namespace std;



class Koira
{
   private:
      int   matka;
      string   omaNimi;

   public:
      Koira(string nimi);
      string AnnaNimi(void);
      void Kavele(int matka);
      void Hauku();
};


Koira::Koira(string nimi)
{
   omaNimi = nimi;
   matka = 0;
}


string Koira::AnnaNimi(void)
{
   return omaNimi;
}


void Koira::Hauku(void)
{
   cout

1Äänestä
  • onko se niin hieno kokemus pönkittää egoaan tekemällä toisten naurettavan helpot kotitehtävät itse? työelämässäkin sitten varmaan mielellänne teette toisten työt kun toiset ei osaa sen takia kun koulussa kaikki on tehty valmiiksi!

    Äänestä

  • azllsfaä kirjoitti:

    onko se niin hieno kokemus pönkittää egoaan tekemällä toisten naurettavan helpot kotitehtävät itse? työelämässäkin sitten varmaan mielellänne teette toisten työt kun toiset ei osaa sen takia kun koulussa kaikki on tehty valmiiksi!

    Eikö sulla ole muuta tekemistä kuin marista täysin sivullisena siitä, mikä vastaus miellyttää juuri sua. Työ elämässä olen ollut jo vuosia, ja pakkohan jonkun on tehdä ne hommat mitä muut eivät osaa.

    Äänestä

  • azllsfaä kirjoitti:

    onko se niin hieno kokemus pönkittää egoaan tekemällä toisten naurettavan helpot kotitehtävät itse? työelämässäkin sitten varmaan mielellänne teette toisten työt kun toiset ei osaa sen takia kun koulussa kaikki on tehty valmiiksi!

    Täytyy tuota kokeilla myöhemmin, kun nyt ei aikaa tuon kanssa tappeluun.

    Kiitos mahdollisesti toimivasta ratkaisusta.
    Jää meikäläisellä aikaa paremmin sellaisiin asioihin keskittymiseen joita saatan työssäni tarvitakkin.

    Äänestä

  • Jep, kiitos BaBaBa:lle koodista.
    Toi toimi komeasti ja tuota tutkailemalla jopa opinkin jotain tästä.
    Olis varmaan muuten jäänyt tekemättä ja oppimatta ees sitä jotain.

    Äänestä

Kommentoi aloitusta


Liianvaikee kirjoitti:

Eli seuraavanlainen tehtävä pitäisi väsätä, mutta enpä oikein pääse ees alkuun.
Minun ohjelmointitaidoille siis vaikuttaa pahalta.
Tuli "lapiolla ottaan" -fiilis. Olen yrittänyt opetella enemmänkin alkeita ja aika ei vain meinaa riittää näihin pahempiin ongelmiin.
Tiedän juu, että tehtävät tulisi tehdä itse, mutta kun en vaan osaa.
Kiitos jo etukäteen, jos joku viitsii auttaa.


Tehtävässä sinun tulee kirjoittaa kaksi luokkaa: Koira ja Isanta. Alla oleva pääohjelma käyttää kirjoittamiasi luokkia ja tehtävän tarkoituksena on, että osaisit rakentaa luokat tulkitsemalla pääohjelmaa, sekä esimerkkitulostusta, jonka pääohjelma muodostaa kun luokat on toteutettu oikein. Seuraavassa muutama vihje, joiden pitäisi helpottaa luokkien rakentamista:


* Isännällä voi olla koira, mutta vaikka koiralla olisi isäntä, se "ei tiedä" isännästään mitään.
* Kun luokasta Ihminen muodostetaan uusi ihminen, ihminen ei saa automaattisesti koiraa vastuulleen.
* Kun ihmistä pyydetään kävelyttämään koiraa, riippuu ihmisen toiminta siitä, onko hänellä koira vastuullaan.


Alla näet pääohjelman, jolla luokkiasi testataan:

int main()
{
string koiran_nimi, ihmisen_nimi;
cout > ihmisen_nimi;
cout > koiran_nimi;

cout KavelytaKoiraa(7);
rekku->Hauku();

isanta->OtaVastuuKoirasta(rekku);
isanta->KavelytaKoiraa(7);

rekku->Hauku();

return 0;
}
Esimerkkitulostus


Anna ihmisen nimi: Mikko
Anna koiran nimi: Pluto

Mikko: Mutta eihän minulla ole koiraa...
Pluto: Hau hau! Olen kävellyt 0 kilometriä.
Mikko: Pluto käveli juuri 7 kilometriä.
Pluto: Hau hau! Olen kävellyt 7 kilometriä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu