Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
1

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

24.04.2014, 13:53. Показов 4678. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах. Для хранения координат используйте три поля: типа int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, W или E). Разработайте методы для ввода данных о корабле, о выводе его координат (с указанием полушария), метод для вычисления расстояния между кораблями.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2014, 13:53
Ответы с готовыми решениями:

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

Создать класс Binary1, который будет содержать число в двоичной системе
1.Поле first – целое число, целая часть числа, записанного в восьмеричной системе счисления; поле...

Создать класс Tiles (кафель), который будет содержать поля с открытым доступом
Создать класс Tiles (кафель), который будет содержать поля с открытым доступом: brand, size_h,...

Создайте класс Student, который будет содержать информацию о студенте
1. Создайте класс Student, который будет содержать информацию о студенте. С помощью механизма...

13
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 13:57 2
tema47, а в чем проблемы?
0
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
24.04.2014, 14:02  [ТС] 3
TenGen, Да, с самим классом, не могу понять как это реализовать
0
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 14:36 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;
}
Вот как то так. В точности сделать не могу, тут уж зависит от вашей фантазии
0
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
24.04.2014, 15:01  [ТС] 5
TenGen, Спасибо, это вы указали координаты, использующие три поля: int для числа градусов, float для числа минут и char для указания направления (N, S, W или E)?
0
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 15:04 6
tema47, оой, прошу прощения, я немного неверно понял ваши слова про градусы. В моем коде вместо int _grad[3]; должно быть просто int _grad;
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
24.04.2014, 15:18 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;
}
а ты пишешь полную противоположность!
0
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
24.04.2014, 15:23 8
Kuzia domovenok, так ты задание прочти:
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах. Для хранения координат используйте три поля: типа int для числа градусов, типа float для числа минут и типа char для указания направления (N, S, W или E)
В классе Ship использовать для хранения координат 3 поля. Я так и сделал. Четко указано, что не структуру для хранения, не координаты, а именно 3 поля для хранения координат.
0
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
27.04.2014, 10:26  [ТС] 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;
}
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
27.04.2014, 11:02 10
Во первых, должно быть 2 набора координат: для широты и долготы.

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

Добавлено через 41 секунду
Мне бы хотелось узнать про реализацию метода для расстояния между кораблями
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
27.04.2014, 17:24 12
Сказано, что класс Ship содержит сведения о координатах. А дальше, как хранить координаты. Ясно же, что два набора таких нужно в классе.
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
27.04.2014, 18:57 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;
}
1
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
27.04.2014, 19:50  [ТС] 14
Выдает ошибку при библиотеке "stdafx.h", и на 66 строчке: int _tmain(int argc, _TCHAR* argv[])

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

Добавлено через 15 минут
nmcf, А все разобрался, спасибо огромное!
0
27.04.2014, 19:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2014, 19:50
Помогаю со студенческими работами здесь

Создайте класс Student, который будет содержать информацию о студенте
Создайте класс Student, который будет содержать информацию о студенте. С помощью механизма...

Создайте класс зоопарк, который будет содержать какое-то количество животных
Здравствуйте помогите пожалуйста решить задание. Создайте класс зоопарк, который будет содержать...

Создайте класс зоопарк, который будет содержать какое-то количество животных
Доброго времени суток, помогите пожалуйста написать программу. Я не могу понять саму логику...

Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украины
Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru