Dobrý deň, potrebujem do školy spraviť toto zadanie.
https://prnt.sc/s03681Spravil som už všetko okrem tej funkcie. Chcem aby mi funkcia počítala kolko kilometrov dokáže prejsť auto na jednu nádrž(nič zložité), ale mám problém s tým ako ju vyvoláť.Spravil som aj ten sortovaci algoritmus akurát ho musím potom nastaviť aby mi usporiadal autá podla ich výdrže na jednu nádrž.
Nejaké rady ako to spraviť? Prikladám aj kód.
Kód:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
class automobil
{
private:
string znacka;
int km;
float objem;
float priemerna;
float vydrz;
public:
automobil(){}
automobil(string vznacka, int vkm, float vobjem, float vpriemerna, float vvydrz)
{
znacka=vznacka;
km=vkm;
objem=vobjem;
priemerna=vpriemerna;
vydrz=vvydrz;
}
static void zobraz(const automobil &a);
static bool triedkm(const automobil &a1, const automobil &a2);
string vratznacka()
{return znacka;}
int vratkm()
{return km;}
float vratobjem()
{return objem;}
float vratpriemerna()
{return priemerna;}
float vratvydrz()
{return vydrz;}
void vypis()
{cout<<"Znacka:"<<znacka<<"\tPocet km:"<<km<<"\tObjem:"<<objem<<" Spotreba:"<<priemerna<<" Vydrz na 100 km:"<<vydrz<<endl;}
};
bool automobil::triedkm(const automobil &a1, const automobil&a2)
{
if(a1.km < a2.km)
return true;
else
return false;
}
void automobil::zobraz(const automobil &a)
{
cout<<"Znacka:"<<a.znacka<<"\tPocet km:"<<a.km<<"\tObjem:"<<a.objem<<" Spotreba:"<<a.priemerna<<" Vydrz na 100 km:"<<endl;
}
int main()
{
automobil *auto1 = new automobil("Toyota",14000,60,7,800);
automobil *auto2 = new automobil("Nissan",15000,55,8,850);
automobil *auto3 = new automobil("Datsun",12000,52,9,900);
automobil *auto4 = new automobil("Subaru",20000,50,7,870);
automobil *auto5 = new automobil("Honda",13000,51,8,860);
cout<<endl;
vector<automobil> garaz;
garaz.push_back(*auto1);
garaz.push_back(*auto2);
garaz.push_back(*auto3);
garaz.push_back(*auto4);
garaz.push_back(*auto5);
sort(garaz.begin(),garaz.end(),automobil::triedkm);
vector<automobil>::iterator it;
cout<<"----------------------------------------------------------------------"<<endl;
for(it=garaz.begin();it!=garaz.end();it++)
{
(*it).vypis();
}
cout<<"----------------------------------------------------------------------"<<endl;
for_each(garaz.begin(),garaz.end(),automobil::zobraz);
it=garaz.begin();
cout<<"----------------------------------------------------------------------"<<endl;
return 0;
}