Witam Państwa. Potrzebuję pomocy z tym oto zadaniem zamieszczonym niżej mógłby mi ktoś pomóc je rozwiązać ?
Przepraszam za zły temat ale nie wiem jak nazwać.
Opracować program, w którym zdefiniowana jest klasa Samochód o składowych: Marka, MocSilnika i który udostępnia następujące opcje:
– a : wprowadzenie danych nowego samochodu, utworzenie obiektu klasy Samochód
i zapisanie go do pliku Baza,
– b : wprowadzenie danych samochodu wzorcowego,
– c : przepisanie z pliku Baza do pliku Wybrane tych obiektów klasy Samochód, które
są gorsze od podanego wzorca; obiekt1 < obiekt2 gdy marka obkiektu1 jest taka
sama jak marka obiektu2 i gdy MocSilnika obiektu1 jest mniejsza od MocySilnika
obiektu2 ,
– d : wyprowadzenie wszystkich obiektów ze wskazanego pliku (Baza lub Wybrane),
– x : koniec programu.
W definicji klasy Samochód należy przeciążyć operator < oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).
Poniżej zamieszczam kod który napisałem nie wiem jak dalej ruszyć
#include <iostream>
#include <fstream>
using namespace std;
class Samochod
{
double MocSilnika;
char Marka[16];
public:
Samochod(double KM, char M)
{
MocSilnika=KM;
Marka[16]=M;
}
friend
istream& operator >> (istream& klawiatura, Samochod& samochod);
friend
ostream& operator << (ostream& monitor, Samochod& samochod);
friend
ifstream& operator >> (ifstream& wejscie, Samochod& samochod);
friend
ofstream& operator << (ofstream& wysjcie, Samochod& samochod);
friend
Samochod operator < (const Samochod& Marka, const Samochod& MocSilnika);
};
istream& operator >> (istream& klawiatura, Samochod& samochod )
{
cout << "Marka samochodu: " << flush;
klawiatura >> samochod.Marka;
cout << "Moc silnika: " << flush;
klawiatura >> samochod.MocSilnika;
return klawiatura;
}
ostream& operator << (ostream& monitor, Samochod& samochod)
{
monitor << "Marka samochodu: " << flush;
monitor << samochod.Marka << endl;
monitor << "Moc silnika: " << flush;
monitor << samochod.MocSilnika << endl;
return monitor;
}
ifstream& operator >> (ifstream& wejscie, Samochod& samochod)
{
wejscie >> samochod.Marka;
wejscie >> samochod.MocSilnika;
return wejscie;
}
ofstream& operator << (ofstream& wyjscie, Samochod& samochod)
{
wyjscie << samochod.Marka << ' ';
wyjscie << samochod.MocSilnika << ' ';
wyjscie << endl;
return wyjscie;
}
int main()
{
bool dalej=true;
char pole;
while(dalej)
{
cout<<endl<<"Podaj polecenie [a,b,c,d,x]: ";
cin >> pole;
switch (pole)
{
case 'a' :
Samochod obiekt(double KM, char M);
ofstream plik ("Baza.txt", ios::in);
plik<<Marka<<" ";
plik<< MocSilnika<<endl;
plik.close();
case 'b' :
case 'c' :
case 'd' :
case 'x' : dalej=false;
break;
default : cout<<"Bledne polecenie. "<<endl;
}
}
}
W punkcie a powinno zapisać mi do pliku Baza wprowadzone dane Marka i MocSilnika nie wiem dlaczego jest tam potrzebne utworzenie obiektu klasy Samochód. Który też mi nie działa jak powinien