pierwsze co to robisz klase
class Person
{
private:
string name;
string lastName;
double efficiency;
public:
Person():{} // zdefiniuj konstruktor tak by pobieral 3 parametry i przypisywal te zmienne
};
na koncu nie zapomnij do plasy Person przeciazyc operatora << by wyswietlic ta osobe
drugie, robisz klase ktora obsluguja/tworzy osoby. Do tego przeciazasz operator >>
class PersonFactory // ta nazwa tutaj nie pasuje... no ale chodzi o idee
{
private:
std::vector<Person> people;
public:
friend std::istream& operator >> (std::istream& in, Person& o);
const std::vector<Person>& GetPeople() const;
};
przeciazasz sobie operator >> do wczytywania w pliku
jak juz masz osoby wczytane do vectora to robisz ostatnia klase
class ProcessPeople
{
private:
std::vector<Person> people
std::string endingCondition = "ski";
bool HasEnding (std::string const &fullString, std::string const &ending)
{
if (fullString.length() >= ending.length())
{
return (0 == fullString.compare (fullString.length() - ending.length(), ending.length(), ending));
}
return false;
}
public:
ProcessPeople(std::vector<Person> &people);
const Person& GetBestPerson() const;
};
W GetBestPerson robisz cos takiego
for (auto person : people)
{
if (person.name.size() > 3)
{
if(HasEnding(person.lastName, endingCondition))
{
// tutaj juz jedynie musisz wybrac osobe z najwyzsza efficiency
// ewentualnie mozesz posortowac sobie vector wedlug efficiency i wtedy od gory te dwa ify co napisalem jezlei bedzie to juz masz swoja najlepsza osobe
}
}
}