Тема: автоматизована система ЖД станції 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;
}