Top.Mail.Ru
Ответы

Код по ООП

Создайте класс с именем ship, который будет содержать данные об учетном номере корабля и координатах его расположения. Разработайте метод, который будет сохранять данные о корабле, вводимые пользователем, и метод, выводящий данные о корабле на экран. Напишите функцию main(), создающую 5 объектов класса ship, а затем запрашивающую ввод пользователем информации о каждом из кораблей и выводящую на экран всю полученную информацию.
Для задания номера создайте класс, одно из полей которого хранит «порядковый номер» объекта. Для этого необходимо иметь еще одно поле, в которое будет записываться количество созданных объектов класса.
Каждый раз при создании нового объекта конструктор может получить значение этого поля и в соответствии с ним назначить объекту индивидуальный порядковый номер. В класс необходимо включить метод, который будет выводить на экран порядковый номер объекта.
Для хранения координат корабля используйте два поля типа angle, включающий три поля: int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, E и W). Объект этого класса может содержать значение, как широты, так и долготы. Создайте метод, позволяющий ввести координату точки, направление, в котором она измеряется и метод, выводящий на экран значение этой координаты, например, 179°59,9¢ E. Кроме того, напишите конструктор, принимающий эти три аргумента. Для вывода символа градусов воспользуйтесь символьной константой ‘\xF8’.

Дополнен

Код С++

По дате
По Рейтингу
Аватар пользователя
Просветленный
9мес
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
 #include<iostream> 
 
using namespace std; 
 
class Ship { 
    private: 
        static int counter; 
        int ID; 
        int degrees ; 
        float minutes; 
        char direction; 
    public: 
        Ship() { 
            cout << "Input degrees: "; 
            cin >> degrees; 
            cout << "Input minutes: "; 
            cin >> minutes; 
            cout << "Input Direction (N - north,W - west,E - east,S - south): "; 
            cin >> direction; 
            ID = counter++; 
        } 
        Ship(int _degrees ,float _minutes ,char _direction ) { 
            ID = counter++; 
            degrees = _degrees; 
            minutes = _minutes; 
            direction = _direction; 
        } 
        void setCoordinates(int _degrees ,float _minutes ,char _direction ) { 
            degrees = _degrees; 
            minutes = _minutes; 
            direction = _direction; 
        } 
        void getInfo() { 
            cout << "ID: " << ID << endl; 
            cout << "degrees: " << degrees << endl; 
            cout << "minutes: " << minutes << endl; 
            cout << "direction: " << direction << endl; 
            cout << "Total ships: " << counter << endl; 
        } 
        void printCoordinates() { 
            cout << degrees << '\xF8' << minutes << "¢" << direction << endl; 
        } 
}; 
 
int Ship::counter = 0; 
 
int main() 
{ 
    Ship s1; 
    s1.getInfo(); 
    s1.printCoordinates(); 
    Ship s2(10,20.5,'N'); 
    s2.getInfo(); 
    s2.printCoordinates(); 
    Ship s3(11,20.5,'E'); 
    s3.getInfo(); 
    s3.printCoordinates(); 
    Ship s4(15,20.5,'S'); 
    s4.getInfo(); 
    s4.printCoordinates(); 
    Ship s5(55,20.5,'W'); 
    s5.getInfo(); 
    s5.printCoordinates(); 
    s1.getInfo(); 
    return 0; 
} 
 
Аватар пользователя
Просветленный
9мес
12345678910111213141516171819
 class InputComponent
{
public:
  virtual int getInt() const = 0;
  virtual std::string getString() const = 0;
};

class OutputComponent
{
public:
  virtual void outString( const std::string& ) const = 0;
};

class ship
{
public:
  void fillShipInfo( const InputComponent* pInput );
  void printShipInfo( const OutputComponent* pOunput ) const;
}; 

Вот тебе интерфейс, имплементь