/
Drairon
/
HomeWork
Обзор
Документация
Войти
/
Drairon
/
HomeWork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dz
Ship.cpp
125 строк
4 KB
Drairon
dz
29 окт 2024, 14:36
29 окт 2024, 14:36
8b2d2b5
Код
Авторство
О чём код?
// Гриценко Дмитрий // Задача 4. Ракетный крейсер #include <iostream> #include <string> class Ship { protected: std::string name; int cordX = 0; int cordY = 0; public: Ship(std::string name) : name(name), cordX(0), cordY(0) {} virtual void Moving() { std::string direction; int quantity; std::string a = "Да"; while (a == "Да"){ std::cout << "В какую сторону плыть? " << std::endl; std::cin >> direction; std::cout << "На какое расстояние проплыть? " << std::endl; std::cin >> quantity; if (direction == "Север") { cordX += quantity; } else if (direction == "Юг") { cordX -= quantity; } else if (direction == "Восток") { cordY += quantity; } else if (direction == "Запад") { cordY -= quantity; } else { std::cout << "Ошибка" << std::endl; } std::cout << "Координаты судна X: " << cordX << " Y: " << cordY << std::endl; std::cout << "Продолжить плавать?" << std::endl; std::cin >> a; } } }; class Missile_cruiser : public Ship { private: int shipRockets; public: Missile_cruiser(std::string name, int shipRockets) : Ship(name), shipRockets(shipRockets) {} void LoadMissiles() { int quantity; std::cout << "Здравствуйте, сколько ракет нужно погрузить? " << std::endl; std::cin >> quantity; if (quantity > 0) { shipRockets += quantity; std::cout << quantity << " ракет погружено! Прощайте" << std::endl; } else { std::cout << "Вам не нужны ракеты? Кыш" << std::endl; } } void UnloadMissiles() { int quantity; std::cout << "Здравствуйте, сколько ракет нужно выгрузить? " << std::endl; std::cin >> quantity; if (quantity > 0 && quantity <= shipRockets) { shipRockets -= quantity; std::cout << quantity << " ракет выгружено! Прощайте" << std::endl; } else { std::cout << "Вам жалко ракет? Кыш" << std::endl; } } void LaunchRockets() { bool choice; std::string demText; int quantity; std::cout << "Вы выбираете путь демократии? Да или Нет? " << std::endl; std::cin >> demText; if (demText == "Да") { choice = true; } else if (demText == "Нет") { choice = false; } if (choice) { std::cout << "Вы выбрали путь демократии. Сколько ракет запустить? " << std::endl; std::cin >> quantity; if (quantity > 0 && quantity <= shipRockets) { shipRockets -= quantity; std::cout << quantity << " ракет запущено!" << std::endl; } else { std::cout << "ВНИМАНИЕ: НЕ ХВАТАЕТ РАКЕТ" << std::endl; } } else { std::cout << "No Democracy?" << std::endl; } } void printInfo() { std::cout << "Ракетоносец: " << name << " Запас ракет: " << shipRockets << " Координаты судна X:" << cordX << " Y: " << cordY << std::endl; } }; int main() { setlocale(LC_ALL, "Russian"); Missile_cruiser missile_cruiser("Степашка", 100); missile_cruiser.LoadMissiles(); missile_cruiser.UnloadMissiles(); missile_cruiser.LaunchRockets(); missile_cruiser.Moving(); missile_cruiser.printInfo(); return 0; }; // Я протестировал работоспособность программы на данном сайте https://www.onlinegdb.com/online_c++_compiler // так не получилось настроить компилятор под русский язык. // Тут многие IF ELSE можно было переделать под тернарные выражения, но тогда код стал бы сложнее для прочтения, так что я решил оставить так.