Witam mam napisać symulator jazdy samochodem zgodnie z tymi kryteriami:
http://hostuje.net/file.php?id=199076a7b5104d962073f41da05a4b7c
Mój pierwszy problem to fakt że pola Marka Model i nrrejestracyjny maja być typu char. Gy są one typu char nie mogę ich uzupełnić za pomocą metody.
Kolejny problem to fakt że po wywołaniu metod odpowiadających za zapłon i pasy z parometrem false nadal zwraca komunikat dla parometru true. Macie moźe jakiś pomysł na zoptymalizowanie if w metodzie odpowiadającej za przyspieszanie i zwalnianie?
Oto mój kod:
#include <iostream>
#include <cstdlib>
using namespace std;
class Samochod
{
public:
friend class Uzytkownik;
string marka,model,nrrejestracyjny;
bool zaplon;
unsigned short predkosc;
Samochod (unsigned short p=0)
{
this->predkosc=p;
}
void produkuj (string m, string mo, string nrr)
{
marka=m;
model=mo;
nrrejestracyjny=nrr;
}
void pokazdane ()
{
cout<<"Marka: "<<marka<<endl;
cout<<"Model: "<<model<<endl;
cout<<"Numer rejestracyjny: "<<nrrejestracyjny<<endl;
}
void pokazpredkosc()
{
cout<<"Aktualna predkosc to: "<<predkosc<<endl;
}
void silnik
(bool z)
{
zaplon=z;
}
void gaz (unsigned short pr)
{
predkosc=pr;
}
};
class Uzytkownik
{
public:
bool stanpasow;
void kup (Samochod & a)
{
cout<<"Kierowca kupil: "<<endl;
a.pokazdane();
}
void wsiadz ()
{
cout<<"Kierowca
wsiadl do samochodu"<<endl;
}
void pasy (bool sp)
{
stanpasow=sp;
if (stanpasow=true)
{
cout<<"Pasy zapiente"<<endl;
}
else
{
cout<<"Pasy odpiete"<<endl;
}
}
void uruchomzgas (Samochod & b, bool za)
{
b.silnik(za);
if (b.zaplon=true)
{
cout<<"Samochod odpalony"<<endl; }
else
{
cout<<"Samochod zgaszony"<<endl;
}
}
void km (Samochod & c, unsigned short pre)
{
if (pre>0)
{
cout<<"Kierowca przyspieszyl"<<endl; }
else
{
cout<<"Kierowca zwolnil"<<endl;
}
c.gaz(pre);
c.pokazpredkosc();
}
void wysiadz ()
{
cout<<"Kierowca wysiadl z samochodu"<<endl;
}
};
int main ()
{
Samochod autko;
Uzytkownik kierowca;
autko.produkuj("Opel","Vectra C","PCHL155");
kierowca.kup(autko);
kierowca.wsiadz();
kierowca.pasy(true);
kierowca.uruchomzgas(autko,true);
kierowca.km(autko,100);
kierowca.km(autko,140);
kierowca.km(autko,false);
kierowca.uruchomzgas(autko,false);
kierowca.pasy(false);
kierowca.wysiadz();
system("pause");
return 0;
}
Proszę o sprawdzenie poprawności kodu (zgodności z powyższymi kryteriami) i informacje o błędach z góry dzięki za pomoc :-)