Advertisement
MARSHAL327

Lab8

Apr 30th, 2020
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <deque>
  4. #include <string>
  5. using namespace std;
  6.  
  7. class bus_park {
  8.     struct bus_info {
  9.         string num_bus,
  10.                num_route,
  11.                fio;
  12.     };
  13.     deque<bus_info> list_in_park;
  14.     deque<bus_info> list_in_route;
  15.     bus_info bi;
  16.  
  17. public:
  18.     // ======интерфейс======
  19.     void input();
  20.     void print(int where);
  21.     void departure_park();
  22.     void entry_park();
  23.     //======================
  24. };
  25.  
  26. void bus_park::input() {
  27.     cin.ignore();
  28.     cout << "введите номер автобуса" << endl;
  29.     getline(cin, bi.num_bus);
  30.     cout << "введите номер маршрута" << endl;
  31.     getline(cin, bi.num_route);
  32.     cout << "введите ФИО водителя" << endl;
  33.     getline(cin, bi.fio);
  34.     list_in_park.push_back(bi);
  35. }
  36.  
  37. void bus_park::print(int where) {
  38.     cout << "номер автобуса   номер маршрута   ФИО водителя" << endl;
  39.  
  40.     if (where == 0) {
  41.         for (int i = 0; i < list_in_park.size(); i++) {
  42.             cout << list_in_park[i].num_bus << setw((__int64)17 - list_in_park[i].num_bus.length() + list_in_park[i].num_route.length());
  43.             cout << list_in_park[i].num_route << setw((__int64)17 - list_in_park[i].num_route.length() + list_in_park[i].fio.length());
  44.             cout << list_in_park[i].fio;
  45.             cout << endl;
  46.         }
  47.     } else {
  48.         for (int i = 0; i < list_in_route.size(); i++) {
  49.             cout << list_in_route[i].num_bus << setw((__int64)17 - list_in_route[i].num_bus.length() + list_in_route[i].num_route.length());
  50.             cout << list_in_route[i].num_route << setw((__int64)17 - list_in_route[i].num_route.length() + list_in_route[i].fio.length());
  51.             cout << list_in_route[i].fio;
  52.             cout << endl;
  53.         }
  54.     }
  55. }
  56.  
  57. void bus_park::departure_park() {
  58.     string route_number;
  59.  
  60.     cout << "Введите номер автобуса" << endl;
  61.     cin >> route_number;
  62.  
  63.     for (int i = 0; i < list_in_park.size(); i++) {
  64.         if (list_in_park[i].num_bus == route_number) {
  65.             list_in_route.push_back( list_in_park[i] );
  66.             list_in_park.erase( list_in_park.begin() + i );
  67.         }
  68.     }
  69. }
  70.  
  71. void bus_park::entry_park() {
  72.     string route_number;
  73.  
  74.     cout << "Введите номер автобуса" << endl;
  75.     cin >> route_number;
  76.  
  77.     for (int i = 0; i < list_in_route.size(); i++) {
  78.         if (list_in_route[i].num_bus == route_number) {
  79.             list_in_park.push_back(list_in_route[i]);
  80.             list_in_route.erase(list_in_route.begin() + i);
  81.         }
  82.     }
  83. }
  84.  
  85. int main() {
  86.     bus_park BP;
  87.     int item;
  88.     do {
  89.         system("CLS");
  90.         cout << "1 - Ввод данных" << endl;
  91.         cout << "2 - Вывод автобусов в парке" << endl;
  92.         cout << "3 - Вывод автобусов на маршруте" << endl;
  93.         cout << "4 - Имитация выезда автобуса из парка" << endl;
  94.         cout << "5 - Имитация въезда автобуса в парк" << endl;
  95.         cout << "6 - Выход" << endl;
  96.         cout << "============================" << endl;
  97.         cout << "Введите номер пункта меню" << endl;
  98.         cin >> item;
  99.         switch (item) {
  100.         case 1:
  101.             BP.input();
  102.             break;
  103.  
  104.         case 2:
  105.             BP.print(0);
  106.             system("pause");
  107.             break;
  108.  
  109.         case 3:
  110.             BP.print(1);
  111.             system("pause");
  112.             break;
  113.  
  114.         case 4:
  115.             BP.print(0);
  116.             cout << "====================================\n\n";
  117.             BP.departure_park();
  118.             system("pause");
  119.             break;
  120.  
  121.         case 5:
  122.             BP.print(1);
  123.             cout << "====================================\n\n";
  124.             BP.entry_park();
  125.             system("pause");
  126.             break;
  127.  
  128.         case 6: return 0;
  129.         default:
  130.             cout << "Неверно введён номер!" << endl;
  131.             cin.get();
  132.             break;
  133.         }
  134.     } while (1);
  135.     return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement