Advertisement
AlexDanilin

Урок 6: Декомпозиция кода

Jun 8th, 2023 (edited)
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. //Урок 6: Декомпозиция кода
  2. #include <cassert>
  3. #include <iostream>
  4. #include <map>
  5. #include <string>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. enum class QueryType {
  11.     NewBus,
  12.     BusesForStop,
  13.     StopsForBus,
  14.     AllBuses,
  15. };
  16.  
  17. struct Query {
  18.     QueryType type;
  19.     string bus;
  20.     string stop;
  21.     vector<string> stops;
  22. };
  23.  
  24. istream& operator>>(istream& is, Query& q) {
  25.     // Реализуйте эту функцию
  26.     return is;
  27. }
  28.  
  29. struct BusesForStopResponse {
  30.     // Наполните полями эту структуру
  31. };
  32.  
  33. ostream& operator<<(ostream& os, const BusesForStopResponse& r) {
  34.     // Реализуйте эту функцию
  35.     return os;
  36. }
  37.  
  38. struct StopsForBusResponse {
  39.     // Наполните полями эту структуру
  40. };
  41.  
  42. ostream& operator<<(ostream& os, const StopsForBusResponse& r) {
  43.     // Реализуйте эту функцию
  44.     return os;
  45. }
  46.  
  47. struct AllBusesResponse {
  48.     // Наполните полями эту структуру
  49. };
  50.  
  51. ostream& operator<<(ostream& os, const AllBusesResponse& r) {
  52.     // Реализуйте эту функцию
  53.     return os;
  54. }
  55.  
  56. class BusManager {
  57. public:
  58.     void AddBus(const string& bus, const vector<string>& stops) {
  59.         // Реализуйте этот метод
  60.     }
  61.  
  62.     BusesForStopResponse GetBusesForStop(const string& stop) const {
  63.         // Реализуйте этот метод
  64.     }
  65.  
  66.     StopsForBusResponse GetStopsForBus(const string& bus) const {
  67.         // Реализуйте этот метод
  68.     }
  69.  
  70.     AllBusesResponse GetAllBuses() const {
  71.         // Реализуйте этот метод
  72.     }
  73. };
  74.  
  75. // Реализуйте функции и классы, объявленные выше, чтобы эта функция main
  76. // решала задачу "Автобусные остановки"
  77.  
  78. int main() {
  79.     int query_count;
  80.     Query q;
  81.  
  82.     cin >> query_count;
  83.  
  84.     BusManager bm;
  85.     for (int i = 0; i < query_count; ++i) {
  86.         cin >> q;
  87.         switch (q.type) {
  88.             case QueryType::NewBus:
  89.                 bm.AddBus(q.bus, q.stops);
  90.                 break;
  91.             case QueryType::BusesForStop:
  92.                 cout << bm.GetBusesForStop(q.stop) << endl;
  93.                 break;
  94.             case QueryType::StopsForBus:
  95.                 cout << bm.GetStopsForBus(q.bus) << endl;
  96.                 break;
  97.             case QueryType::AllBuses:
  98.                 cout << bm.GetAllBuses() << endl;
  99.                 break;
  100.         }
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement