Advertisement
Ifrail

Task 4

Nov 13th, 2019
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.23 KB | None | 0 0
  1. /*Классная дозаправка в космосе*/
  2.  
  3. /*
  4. День 16.
  5. Старший кадет %username%, поздравляем с повышением, новая форма вам к лицу!
  6. Перелеты в космосе расходуют много топлива, поэтому сегодняшняя симуляция будет посвящена подлету к космической станции, стыковке и дозаправке вашего корабля. К сожалению, строительство станций процесс дорогостоящий, поэтому Конфедерация смогла построить целую одну станцию в вашем секторе! Ваша задача - запрограммировать И.С.А.А.К. на:
  7.  * ввод исходных данных корабля
  8.  * ввод данных о станции
  9.  * стыковку и дозаправку
  10.  * полный отчет
  11. Гарантируется, что вам хватит топлива для выполнения миссии. Удачи в вашей миссии старший кадет!
  12. */
  13.  
  14. /*
  15. Формат входных данных:
  16. string (название станции) int (расстояние до станции)
  17. string (название корабля) int (текущее количество топлива) int (максимум топлива)
  18. */
  19.  
  20. /*
  21. Формат выходных данных:
  22. string (Ship Victoria filled 19 tn fuel on station Omicron-1)
  23. string (47 fuel left from 66 at the ship Victoria)
  24. */
  25.  
  26. #include <iostream>
  27. #include <string>
  28.  
  29. using namespace std;
  30.  
  31. class SpaceShip {
  32. public:
  33.     // Остаток топлива
  34.     int fuelLeft;
  35.     // Вместимость топливного бака (максимум топлива)
  36.     int fuelMax;
  37.     //Название корабля
  38.     string name;
  39.  
  40.     void printStatus() {
  41.         cout << fuelLeft << " fuel left from " << fuelMax << " at the ship " << name << endl;
  42.     }
  43.  
  44.     void flight(int distance) {
  45.         fuelLeft -= distance;
  46.         if (fuelLeft < 0) fuelLeft = 0;
  47.     }
  48.  
  49.     void prepare() {
  50.         cin >> name >> fuelLeft >> fuelMax;
  51.     }
  52. };
  53.  
  54. class SpaceStation {
  55. public:
  56.     // Название станции
  57.     string name;
  58.     // Расстояние до станции
  59.     int dist;
  60.  
  61.     void prepare() {
  62.         cin >> name >> dist;
  63.     }
  64.     // Заправить корабль топливом
  65.     void fillupShip(SpaceShip &ship) {
  66.         int fillCount = ship.fuelMax - ship.fuelLeft;
  67.         ship.fuelLeft = ship.fuelMax;
  68.         cout << "Ship " << ship.name << " filled " << fillCount << " tn fuel on station " << name << endl;
  69.     }
  70. };
  71.  
  72. int main() {
  73.  
  74.     SpaceShip space_ship;
  75.     SpaceStation space_station;
  76.  
  77.     space_station.prepare();
  78.     space_ship.prepare();
  79.  
  80.     space_ship.flight(space_station.dist);
  81.     space_station.fillupShip(space_ship);
  82.     space_ship.printStatus();
  83.     return 0;
  84. }
  85.  
  86. /*
  87. Тест1
  88. Ввод:
  89. Omicron-1 28
  90. Victoria 29 47
  91. Вывод:
  92. Ship Victoria filled 46 tn fuel on station Omicron-1
  93. 47 fuel left at the ship Victoria
  94.  
  95. Тест2
  96. Ввод:
  97. Babylon-5 34
  98. Enterprise 68 112
  99. Вывод:
  100. Ship Enterprise filed 78 tn fuel on station Babylon-5
  101. 112 fuel left at the ship Enterprise
  102. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement