Тема: автоматизована система ЖД станції C++
Написати програму «Автоматизована інформаційна система залізничного вокзалу».
// Система містить: відомості про відправлення поїздів далекого прямування.
// Для кожного поїзда вказуємо: номер, час відправлення, станцію призначення.
// Забезпечити:
// ■■ Введення даних в систему;
// ■■ Виведення інформації по всіх потягах;
// ■■ Виведення інформації про потрібний потяг.
// Використовувати контейнерний клас vector
Програма працює. Тільки не знаю як правильно реалізувати пункт 2 - searchinfo() 
При виборі пункту 2 потрібно реалізувати введення номеру потягу і так далі і порівняти їх з наявними в базі. 
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
#include <algorithm>
using namespace std;
class train
{
    protected:
    string departure;
    string arrival;
    int train_number;
    public:
    train()
    {
        departure = " ";
        arrival = " ";
        train_number = 0;
    }
    train(string dp, string a, int tn)
    {
        departure = dp;
        arrival = a;
        train_number = tn;
    }
    void set_departure()
    {
        cout << "введить станцію відправлення" << endl;
        cin >> departure;
    }
    void set_arrival()
    {
        cout << "введіть станцію прибуття" << endl;
        cin >> arrival;
    }
    void set_train_number()
    {
        cout << "введіть номер потяга" << endl;
        cin >> train_number;
    }
    void new_train()
    {
        set_arrival();
        set_departure();
        set_train_number();
    }
    string get_daparture()
    {
        return this->departure;
    }
    string get_arrival()
    {
        return this->arrival;
    }
    string get_train_number()
    {
        return to_string(this->train_number);
    }
    friend ostream &operator <<(ostream &out, train &obj);
};
ostream &operator <<(ostream &out, train &obj)
{
    return out
        << obj.departure << endl
        << obj.arrival << endl
        << obj.train_number << endl;
}
class railway_station
{
    private:
    vector<train> station;
    public:
    railway_station()
    {
        station.clear();
    }
    void add_train()
    {
        train *TMP = new train();
        TMP->new_train();
        this->station.push_back(*TMP);
        delete TMP;
    }
    void add_train(train TMP)
    {
        this->station.push_back(TMP);
    }
    void Output1()
    {
        vector<train>::iterator IT = station.begin();
        for(; IT != station.end(); IT++)
            cout << *IT << endl;
    }
    //пошук по номеру потяга
    void Search_by_TrainNumber(string tn)
    {
        bool a = false;
        vector<train>::iterator IT = station.begin();
        for(; IT != station.end(); IT++)
        {
            if((tn) == (*IT).get_train_number())
                cout << *IT << endl;
            a = true;
        }
        if(!a)
            cout << "немає потяга з таким номером" << endl;
    }
    void Search_by_arrival(string a)
    {
        bool b = false;
        vector<train>::iterator IT = station.begin();
        for(; IT != station.end(); IT++)
        {
            if(a == (*IT).get_arrival())
            cout << *IT << endl;
            b = true;
        }
        if(!b)
            cout << "нет поезда на данное время" << endl;
    }
    void Search_by_departure(string dp)
    {
        bool c = false;
        vector<train>::iterator IT = station.begin();
        for(; IT != station.end(); IT++)
        {
            if(dp == (*IT).get_daparture())
            cout << *IT << endl;
            c = true;
        }
        if(!c)
            cout << "нет поезда на ето время" << endl;
    }
    void searchinfo(string value)
    {
        vector<train>::iterator iter = station.begin();
        for(; iter != station.end(); iter++)
        {
            if(
                (*iter).get_arrival() == value ||
                (*iter).get_daparture() == value ||
                (*iter).get_train_number() == value
            )
                break;
        }
        cout << *iter << endl;
    }
};
void Menu_()
{
    cout << "Введіть будь-ласка дані" << endl;
    cout << "1 - додати новий запис" << endl;
    cout << "2 - вивести інформацію по певному потягу" << endl;
    cout << "3 - вивести інформацію по всіх потягах " << endl;
    cout << "4 - exit" << endl;
}
int main()
{
    setlocale(LC_ALL, "rus");
    train T;
    railway_station RS;
    string TMP;
    int Menu = 0;
    do
    {
        system("cls");
        Menu_();
        cin >> Menu;
        switch(Menu)
        {
            case 1:
                cout << "додавання нового запису" << endl;
                RS.add_train();
                break;
            case 2:
                cout << "вивід інформації про потяг на вимогу" << endl << endl;
                RS.searchinfo2(TMP);
                cin >> TMP;
                break;
            case 3:
                cin >> TMP;
                RS.Output1();
                cout << "Пошук інформації завершено" << endl;
                break;
        }
        system("pause");
    }
    while(Menu != 4);
    system("pause");
    return 0;
}