x-kom hosting

dziedziczenie klas

dorota08x
utworzono
utworzono

mam takie zadanie: Napisz klasę TSamochod posiadającą następujące pola chronione: marka pB (pojemność baku) pM (prędkość maksymalna) zP (zuŜycie paliwa na 100 km) Posiada ona następujące funkcje publiczne: · konstruktor ustawiający wszystkie pola na podstawie swoich parametrów, · jedz(float jakSzybko, float jakDaleko) – wyświetla komunikat mówiący jak szybko samochód pojedzie (nie szybciej niŜ prędkość maksymalna), ile litrów paliwa zostanie zuŜytych na trasie, ile razy po drodze będzie musiał tankować i ile czasu zajmie podróŜ (kaŜde tankowanie zajmuje 10 minut). Na początku podróŜy bak samochodu jest pełny. Jeśli samochód jedzie za wolno (poniŜej 30% prędkości maksymalnej) lub za szybko (powyŜej 80% prędkości maksymalnej), to zuŜycie paliwa wzrasta o 20%. · w rozwiązaniu moŜna wykorzystać dodatkowe metody (np. dla wyznaczenia chwilowego zuŜycia paliwa). Następnie zdefiniuj klasę TKabriolet dziedziczącą po klasie TSamochod. Dodatkowo posiada ona pole logiczne dach_otwarty ustawiane w konstruktorze na false oraz funkcje: · otworz_dach, · zamknij_dach. W zmodyfikowanej funkcji jedz wyświetlamy informację o tym, czy dach kabrioletu jest otwarty. Dodatkowo naleŜy wziąć pod uwagę, Ŝe z otwartym dachem kabriolet pali o 15% więcej. wstępnie napisalam deklaracje obu klas i dalej nie wiem co poczać... pomożecie? class TSamochod { protected: float pB; float pM; float zP; public: TSamochod(double pb, int pm, double zp):pb(pB), pm(pM), zp(zP); void jedz(float jakSzybko, float jakDaleko); }; class TKabriolet:public TSamochod { TKabriolet(bool dach_otwarty); void otworz_dach(); void zamknij_dach(); }; TKabriolet::TKabriolet { dach_otwarty=false; } void TKabriolet::otworz_dach() { dach_otwarty = true; } void TKabriolet::zamknij_dach() { dach_otwarty = false; }

michael26
komentarz
komentarz

napisz zrozumialej bo tu pełno błędów...

dorota08x
komentarz
komentarz

class TSamochod
{
protected:
float pB;
float pM;
float zP;
public:
TSamochod(double pb, int pm, double zp): pb(pB), pm(pM), zp(zP);
void jedz(float jakSzybko, float jakDaleko);

};
class TKabriolet:public TSamochod
{
TKabriolet(bool dach_otwarty);
void otworz_dach();
void zamknij_dach();
};

TKabriolet::TKabriolet
{
dach_otwarty=false;
}
void TKabriolet::otworz_dach()
{
dach_otwarty = true;
}

void TKabriolet::zamknij_dach()
{
dach_otwarty = false;
}

leggo
komentarz
komentarz

Z czym konkretnie nie potrafisz sobie poradzić?

dorota08x
komentarz
komentarz

Napisz klasę TSamochod posiadającą następujące pola chronione:
marka
pB (pojemność baku)
pM (prędkość maksymalna)
zP (zużycie paliwa na 100 km)
Posiada ona następujące funkcje publiczne:
· konstruktor ustawiający wszystkie pola na podstawie swoich parametrów,
· jedz(float jakSzybko, float jakDaleko) – wyświetla komunikat
mówiący jak szybko samochód pojedzie (nie szybciej niż prędkość maksymalna), ile
litrów paliwa zostanie zużytych na trasie, ile razy po drodze będzie musiał tankować i ile
czasu zajmie podróż (każde tankowanie zajmuje 10 minut). Na początku podróży bak
samochodu jest pełny. Jeśli samochód jedzie za wolno (poniŜej 30% prędkości
maksymalnej) lub za szybko (powyżej 80% prędkości maksymalnej), to zużycie paliwa
wzrasta o 20%.
· w rozwiązaniu można wykorzystać dodatkowe metody (np. dla wyznaczenia chwilowego
zużycia paliwa).
Następnie zdefiniuj klasę TKabriolet dziedziczącą po klasie TSamochod. Dodatkowo
posiada ona pole logiczne dach_otwarty ustawiane w konstruktorze na false oraz funkcje:
· otworz_dach,
· zamknij_dach.
W zmodyfikowanej funkcji jedz wyświetlamy informację o tym, czy dach kabrioletu jest
otwarty. Dodatkowo należy wziąć pod uwagę, że z otwartym dachem kabriolet pali o 15%
więcej.

przede wszystkim funkcja jedz(float jakSzybko, float jakDaleko)

leggo
komentarz
komentarz

Funkcja jedz:

1. Sprawdzasz czy prędkość z jaką ma jechać samochód jest większa od prędkości maksymalnej. Jeśli tak przestawiasz prędkość jazdy na prędkość maksymalną.

2. Wstępnie obliczasz czas podróży dzieląc dystans do pokonania przez prędkość.

3. Na podstawia [b]zP[/b] obliczasz ile paliwa zostanie zużyte na podanej trasie.

4. Jeżeli prędkość samochodu jest jest mniejsza niż 30% lub większa niż 80% prędkości maksymalnej zwiększasz zużycie obliczone w punkcie 3. o 20%.

5. Mając obliczone faktyczne zużycie paliwa i znając pojemność baku liczysz ile razy samochód zatrzyma się na stacji (po prostu dzielisz potrzebną ilość paliwa przez pojemność baku. Przy każdym postoju na stacji zwiększasz czas podróży z punktu 2. o 10 min.

 

W przypadku kabrioletu w punkcie 4. dochodzi jeszcze zwiększenie zużycia o 15% jeżeli dach jest otwarty.

 

Jeśli w trakcie pisania tej funkcji napotkasz jeszcze jakieś problemy, pisz tutaj dodając kod jaki udało Ci się dotychczas napisać.

spartacus
komentarz
komentarz

Używaj znacznika "kod" bo strasznie źle się czyta tak napisany fragment programu.

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.