Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Ylimääräinen sana tulostuksessa?!

Atomic [11.08.2017 19:23:00]

#

Joo tarvitsisin apua tässäkin tehtävässä...Tulostuksessa on pieni ongelma nimittäin tälläinen, YLIMÄÄRÄINEN Hau!!!-sana;

Koiran tiedot:
Nimi: Rekku
Ikä: 2
Rotu: Dalmatialainen
Hau!!!(Tämä on ongelma)
Koira sanoo: Hau!!!

Tehtävä.Alla on luokka "Koira", josta puuttuu olioden muodostamiseen tarvittava alustusmetodi, sekä metodit TulostaTiedot() ja Hauku(). Täydennä luokkaa niin, että luokasta voidaan muodostaa olioita. Ja tee puuttuvat metodit. Olion muodostamisen yhteydessä olio saa arvot: ikä, nimi, rotu ja ääni.

#include <iostream>
#include <string>
using namespace std;

class Koira{
public:

	int ika;
	string rotu;
	string nimi;
	string aani;


	Koira();
	Koira(int ika, string uusi_nimi, string uusi_rotu, string uusi_aani);

	string Hauku();

	void AsetaNimi(string uusi_nimi);
	void AsetaRotu(string uusi_rotu);
	void AsetaIka(int uusi_ika);
	void AsetaAani(string uusi_aani);
	void TulostaTiedot();
};

Koira::Koira()
{
	nimi = "Nimetön";
	rotu = "Roduton";
	ika = 0;
	aani = "Äänetön";
}

Koira::Koira(int uusi_ika, string uusi_nimi, string uusi_rotu, string uusi_aani)
{
	nimi = uusi_nimi;
	rotu = uusi_rotu;
	ika = uusi_ika;
	aani = uusi_aani;
}

string Koira::Hauku()
{
	cout << aani << endl;
	return aani;
}

void Koira::AsetaAani(string uusi_aani)
{
	aani = uusi_aani;
}

void Koira::AsetaNimi(string uusi_nimi)
{
	nimi = uusi_nimi;
}

void Koira::AsetaRotu(string uusi_rotu)
{
	rotu = uusi_rotu;
}

void Koira::AsetaIka(int uusi_ika)
{
	ika = uusi_ika;
}

void Koira::TulostaTiedot()
{
	cout << "Nimi:" << nimi << endl;
	cout << "Ikä:" << ika << endl;
	cout << "Rotu:" << rotu << endl;
}
int main()
{
	Koira rekku(2, "Rekku", "Dalmatialainen", "Hau!!");
	cout << "Koiran tiedot:" << endl;
	rekku.TulostaTiedot();
	cout << "Koira sanoo: " << rekku.Hauku();
}

Grez [11.08.2017 20:39:20]

#

Jospa poistat rivin 44

Atomic kirjoitti:

cout << aani << endl;

Tai semanttisesti ehkä parempi olisi muuttaa niin että Hauku ei palauta mitään ja viimeiset rivit olisi

cout << "Koira sanoo: ";
rekku.Hauku();

Joka tapauksessa jos työnnät koiran äänen ulos-virtaan kahteen kertaan niin se tulee luonnollisesti kahteen kertaan.

Atomic [11.08.2017 20:47:37]

#

Hei kiitti taas, ihan oikeeesti. Tuntuu ny vähän hölmölt ku en tajunnu tota=)

SyntaxError [24.08.2017 19:09:38]

#

Atomic kirjoitti:

Hei kiitti taas, ihan oikeeesti. Tuntuu ny vähän hölmölt ku en tajunnu tota=)

Teen itse samaa tehtävää ja tämä auttoi minuakin, kiitos!
Aikaisemmin teoriassa oli vastaavan tyylinen malli, mutta siellä tuo haukku oli "void" ja tässä se on "string". Osaatko selittää miksi sen tyyppi muuttuu tässä tehtävässä? :)

Metabolix [24.08.2017 20:03:34]

#

SyntaxError kirjoitti:

Osaatko selittää miksi sen tyyppi muuttuu tässä tehtävässä? :)

Tässä tehtävässä on virhe. Ei ole mitään järkeä, että Hauku sekä tulostaa että palauttaa äänen. Funktion pitäisi tehdä vain yksi asia eli joko tulostaa teksti tai palauttaa se muualla käytettäväksi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta