Форум программистов, компьютерный форум CyberForum.ru

Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах - C++

Восстановить пароль Регистрация
 
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
24.04.2014, 13:53     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #1
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах. Для хранения координат используйте три поля: типа int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, W или E). Разработайте методы для ввода данных о корабле, о выводе его координат (с указанием полушария), метод для вычисления расстояния между кораблями.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 13:53     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах
Посмотрите здесь:

Определите класс, который должен содержать атрибуты C++
Дана строка S. На её основе создать новую строку символы, которая вместо цифр будет содержать их название. C++
.Создать класс Binary1, который будет содержать число в двоичной системе C++
C++ Наследование. Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украниы
C++ Создать строку, которая будет содержать набор символов содержащихся в файле
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 13:57     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #2
tema47, а в чем проблемы?
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
24.04.2014, 14:02  [ТС]     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #3
TenGen, Да, с самим классом, не могу понять как это реализовать
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 14:36     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #4
tema47, класс оформляется довольно просто:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class ship
{
public:
    ship();
    ~ship();
    float min() { return _min; }
    char vector() { return _vector; }
    void set_vector(char temp);
private:
    int _grad[3];
    float _min;
    char _vector;
};
 
ship::ship()
{
}
 
ship::~ship()
{
}
 
bool ship::set_vector(char temp)
{
    if (!(temp == 'N' || temp == 'S' || temp == 'W' || temp == 'E')) return false;
    _vector = temp;
    return true;
}
Вот как то так. В точности сделать не могу, тут уж зависит от вашей фантазии
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
24.04.2014, 15:01  [ТС]     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #5
TenGen, Спасибо, это вы указали координаты, использующие три поля: int для числа градусов, float для числа минут и char для указания направления (N, S, W или E)?
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 15:04     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #6
tema47, оой, прошу прощения, я немного неверно понял ваши слова про градусы. В моем коде вместо int _grad[3]; должно быть просто int _grad;
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
24.04.2014, 15:18     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #7
TenGen, ты не совсем правильно понял задание. Нужно хранить координаты по широте и по долготе.
То есть должны быть 2 компоненты.
Каждая компонента из пары имеет три поля. Градусы, минуты, направление.
Например:
координаты 59°56.2'N 30°20.3'E хранятся в классе
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class coords{
  public:
   struct element{
     char dir;
     int degrees;
     float minutes;
   };
   element longtitude, latitude;
};
int main(){
  coords place;
  place.latitude.dir='N';
  place.latitude.degrees=59;
  place.latitude.minutes=56.2;
  place.longtitude.dir='E';
  place.longtitude.degrees=30;
  place.longtitude.minutes=20.3;
}
а ты пишешь полную противоположность!
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 15:23     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #8
Kuzia domovenok, так ты задание прочти:
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах. Для хранения координат используйте три поля: типа int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, W или E)
В классе Ship использовать для хранения координат 3 поля. Я так и сделал. Четко указано, что не структуру для хранения, не координаты, а именно 3 поля для хранения координат.
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
27.04.2014, 10:26  [ТС]     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #9
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах. Для хранения координат используйте три поля: типа int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, W или E). Разработайте методы для ввода данных о корабле, о выводе его координат (с указанием полушария), метод для вычисления расстояния между кораблями.
-----------------------------------------------------------------------------------------------------------------------
Помогите реализовать метод для вычисления расстояния между кораблями.
Вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<iostream>
using namespace std;
 
    class ship
{
  private:
    int number;
    static int count;
    class angle
{
  private:
    int gradus;
    float minut;
    char naprav;
  public:
    angle():gradus(),minut(0),naprav(0)
{
}
    angle(int gr,float mi, char na):gradus(gr),minut(mi),naprav(na)
{
}
    void getAngle()
{
    cout<<"Введите число градусов: ";
    cin>>gradus;
    cout<<"Введите число минут: ";
    cin>>minut;
    cout<<"Введите направление (N, S, E, W): ";
    cin>>naprav;
    cout<<endl;
}
    void showAngle()
{
    char s = 176;
    cout<<"Координата корабля равна: ";
    cout<<", "<<gradus<<s<<minut<<"'"<<naprav<<endl;
    
}      
};
 
    angle Ship1, Ship2;
  public:
    ship():number(0)
{
    count++;
    number=count;
    cout<<"Координаты корабля номер "<<number<<":"<<endl;
    Ship1.getAngle();
    Ship2.getAngle();
}
    void showShip()
{
    cout<<"Номер корабля: "<<number<<endl;
    Ship1.showAngle();
    Ship2.showAngle();
    cout<<endl;
}
};
    int ship::count=0;
    int main()
{
    setlocale(LC_ALL,"Russian");
    ship Obj1, Obj2, Obj3;
    Obj1.showShip();
    Obj2.showShip();
    Obj3.showShip(); 
    system ("pause >> void");
    return 0;
}
nmcf
4297 / 3718 / 1251
Регистрация: 14.04.2014
Сообщений: 14,541
27.04.2014, 11:02     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #10
Во первых, должно быть 2 набора координат: для широты и долготы.

Добавлено через 2 минуты
Вот тут формула http://godkosmicheskojjery.ru/geo_koor.htm
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
27.04.2014, 11:10  [ТС]     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #11
nmcf, У меня итак для широты и долготы есть, просто записано как 2 раза вводить.

Добавлено через 41 секунду
Мне бы хотелось узнать про реализацию метода для расстояния между кораблями
nmcf
4297 / 3718 / 1251
Регистрация: 14.04.2014
Сообщений: 14,541
27.04.2014, 17:24     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #12
Сказано, что класс Ship содержит сведения о координатах. А дальше, как хранить координаты. Ясно же, что два набора таких нужно в классе.
nmcf
4297 / 3718 / 1251
Регистрация: 14.04.2014
Сообщений: 14,541
27.04.2014, 18:57     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #13
Вот вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
struct coord
{
    int deg;
    float minute;
    char direction;
};
 
class Ship
{
private:
    int num;
    coord ltd, lng; // широта и долгота
public:
    Ship(int n)
    {
        num = n;
        ltd.deg = 0; ltd.minute = 0; ltd.direction = ' ';
        lng.deg = 0; lng.minute = 0; lng.direction = ' ';
    }
    void setCoords() // ввести координаты
    {
        cout << "Корабль " << num << endl;
        cout << "Введите число градусов (широта): "; cin >> ltd.deg;
        cout << "Введите число минут (широта): "; cin >> ltd.minute;
        cout << "Введите направление (N, S, E, W) (широта): "; cin >> ltd.direction;
        cout << endl;
        cout << "Введите число градусов (долгота): "; cin >> lng.deg;
        cout << "Введите число минут (долгота): "; cin >> lng.minute;
        cout << "Введите направление (N, S, E, W) (долгота): "; cin >> lng.direction;
        cout << endl;
    }
    void showCoords() // вывести координаты
    {
        cout << "Координаты корабля: " << ltd.deg << "гр. " << ltd.minute << "мин. " << ltd.direction << "; ";
        cout << lng.deg << "гр. " << lng.minute << "мин. " << lng.direction << endl;
    }      
    void showNum()
    {
        cout << "Номер корабля: " << num << endl;
    }
    float getR_ltd() // получить широту в радианах
    {
        float r = (ltd.deg + ltd.minute / 60) * 3.14 / 180;
        if(ltd.direction == 'S') r = -r;
        return r;
    }
    float getR_lng() // получить долготу в радианах
    {
        float r = (lng.deg + lng.minute / 60) * 3.14 / 180;
        if(ltd.direction == 'W') r = -r;
        return r;
    }
    void showDistance(Ship s) // вывести расстояние между данным кораблём и кораблём s
    {
        cout << 6371 * acos(sin(getR_ltd()) * sin(s.getR_ltd()) + cos(getR_ltd()) * cos(s.getR_ltd()) * cos(getR_lng() - s.getR_lng())) << endl;
    }
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
 
    Ship Obj1(1), Obj2(2);
    Obj1.setCoords();
    Obj2.setCoords();
    Obj1.showDistance(Obj2);
 
    system ("pause");
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 19:50     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах
Еще ссылки по теме:

C++ Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
Нужно создать класс и то что будет его выполнять, не очень сложный C++
Создать класс, который считывает десятичное число и печатает его 2-ый, 8-ый и 16-ый эквивалент C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
tema47
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
27.04.2014, 19:50  [ТС]     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах #14
Выдает ошибку при библиотеке "stdafx.h", и на 66 строчке: int _tmain(int argc, _TCHAR* argv[])

Добавлено через 4 минуты
nmcf, "stdafx" это библиотека, с помощью которой проект быстрее компилируется не?

Добавлено через 15 минут
nmcf, А все разобрался, спасибо огромное!
Yandex
Объявления
27.04.2014, 19:50     Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах
Ответ Создать тему
Опции темы

Текущее время: 21:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru