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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Elfenlide
23 / 23 / 1
Регистрация: 15.04.2012
Сообщений: 183
#1

Лафоре задача по классам - C++

27.07.2012, 19:42. Просмотров 692. Ответов 5
Метки нет (Все метки)

Задача из книги лафоре по классам №7:
нужно написать программу используя классы для ввода и вывода координат, кроме того нужно написать конструктор который будет принимать 3 аргумента и написать функцию main которая будет создавать переменную с помощью трёхаргументного конструктора и будет выводить её значение на экран а затем циклически запрашивает ввод координат и после их выводит.
Собственно сделал всё кроме конструктора,программа работает потому что работает конструктор компилятора, мне же нужно записать свой, как я не имею представления, точнее имею но все варианты перепробовал и не вышли....если добавляю свой конструктор принимающий аргументы всегда вылетала ошибка "нет подходящего конструктора",так же проблема с выводом,когда вывожу нужно чтобы после значения первого был символ градусов, в интернете не нашёл правельный рабочий код, пишу в Visual C++.

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 kurs
{
public:
    char w;   //направление по долготе
    char s;      //направление по широте
    kurs():w('W'),s('S')
    {           }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class time        //время курса
{
public:
    float w_minutes;
    float s_minutes;         
    time():w_minutes(0.0),s_minutes(0.0)
    {       }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class grad       //градусы курса
{
public:
    int s_gradus;    //градусы широты
    int w_gradus;    //градусы долготы
    grad():w_gradus(0),s_gradus(0)
                            {       }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class angle
{
public:     
    grad gradus;        
    time minutes;
    kurs naprav;
    int counter;
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class ship
{
private:
    angle shipp;
public:
    void getinfo()
    {
        
        cout<<"Введите долготу градусы(0-180),время(0-60),направление(W,E): "; cin>>shipp.gradus.w_gradus>>shipp.minutes.w_minutes>>shipp.naprav.w;
        cout<<"Введите широту градусы(0-90),время(0-60),направление(S,N): "; cin>>shipp.gradus.s_gradus>>shipp.minutes.s_minutes>>shipp.naprav.s;
    }
    void display()
    {
        static int counter;
        counter++;
        cout<<"Корабль: "<<counter<<" ";
        cout<<shipp.gradus.w_gradus<<'\xF8'<<shipp.minutes.w_minutes<<"'"<<shipp.naprav.w<<", "
            <<shipp.gradus.s_gradus<<'\xF8'<<shipp.minutes.s_minutes<<"'"<<shipp.naprav.s<<endl; 
    }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
/*  angle a1(117,78,34.7,12.6,W,S);*/
    setlocale(0,"");
    ship ship1;
    ship1.getinfo();
    ship1.display();
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2012, 19:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лафоре задача по классам (C++):

Задача из Лафоре - C++
Для разъяснения действия наших доморощенных указателей мы смоделируем память компьютера с помощью массивов. Так как доступ к массивам всем...

Задача из Лафоре - C++
есть задачка из Лафоре -&gt; Модифицируйте класс bMoney из упражнения 12 главы 7 «Массивы и стро-ки», включив арифметические операции,...

Очередь (задача из Лафоре) - C++
Задача 9 из Лафоре: Надо написать класс queue, имеющий два метода: put() для помещения элемента в очередь и get() для извлечения элемента...

Не компилируется задача из Лафоре - C++
Помогите пожалуйста разбораться почему компилятор ругается: 1&gt;L.obj : error LNK2019: unresolved external symbol &quot;void __cdecl...

Лафоре. Глава 11. Задача 2 - C++
Решал задачку из учебника - Лафоре. Глава 11. Задача 2. Вот код #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; ...

Задача 7 главы 7 из книги Р. Лафоре. Строки - C++
Добрый день! Недавно начал изучать С++ по, наверное, уже всем поднадоевшему, учебнику Роберта Лафоре. На данный момент изучаю главу с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Leomana
58 / 58 / 5
Регистрация: 29.06.2012
Сообщений: 188
27.07.2012, 19:57 #2
для какого класса нужен констрктор? Или какие поля класса необходимо инициализировать при его вызове?
0
Neon-z
46 / 41 / 1
Регистрация: 06.09.2010
Сообщений: 419
27.07.2012, 20:36 #3
Я в вижуал не оч шарю, но в свое время я учил что конструктор с параметрами объявляется так:
C++
1
2
3
4
5
6
class example {
public:
example(a,b){
//code
}
}
примерно такое. То есть параметры я за скобку не выношу.
0
cojuer
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 5
27.07.2012, 20:40 #4
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
79
80
81
82
83
#include <iostream>
#include <conio.h>;
using namespace std;
///////////////////////////////////////////////////////////////////////////////////////////////////
class kurs
{
public:
    char w;   //направление по долготе
    char s;      //направление по широте
    kurs():w('W'),s('S')
    {           }
    kurs(char w,char s):w(w),s(s)
    {           }
 
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class time        //время курса
{
public:
    float w_minutes;
    float s_minutes;         
    time():w_minutes(0.0),s_minutes(0.0)
    {       }
    time(float w,float s):w_minutes(w),s_minutes(s)
    {       }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class grad       //градусы курса
{
public:
    int s_gradus;    //градусы широты
    int w_gradus;    //градусы долготы
    grad():w_gradus(0),s_gradus(0)
                            {       }
    grad(int s,int w):w_gradus(s),s_gradus(w)
    {}
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class angle
{
public:     
    grad gradus;        
    time minutes;
    kurs naprav;
    int counter;
    angle(int s,int w,float s1,float w1,char w3,char s3):gradus(s,w),minutes(s1,w1),naprav(w3,s3)
    {}
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class ship
{
private:
    angle shipp;
public:
    ship():shipp(0,0,0,0,'W','S')
    {}
    void getinfo()
    {
        
        cout<<"Введите долготу градусы(0-180),время(0-60),направление(W,E): "; cin>>shipp.gradus.w_gradus>>shipp.minutes.w_minutes>>shipp.naprav.w;
        cout<<"Введите широту градусы(0-90),время(0-60),направление(S,N): "; cin>>shipp.gradus.s_gradus>>shipp.minutes.s_minutes>>shipp.naprav.s;
    }
    void display()
    {
        const char a=176;
        static int counter;
        counter++;
        cout<<"Корабль: "<<counter<<" ";
        cout<<shipp.gradus.w_gradus<<a<<shipp.minutes.w_minutes<<"'"<<shipp.naprav.w<<", "
            <<shipp.gradus.s_gradus<<a<<shipp.minutes.s_minutes<<"'"<<shipp.naprav.s<<endl; 
    }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    angle a1(117,78,34.7,12.6,'W','S');
    setlocale(0,"");
    ship ship1;
    ship1.getinfo();
    ship1.display();
    getch();
    return 0;
}
Не знаю, это ли нужно,но так работает.
0
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
27.07.2012, 20:43 #5
Цитата Сообщение от Elfenlide Посмотреть сообщение
angle a1(117,78,34.7,12.6,W,S);
А где, собсно, подходящий конструктор?
Цитата Сообщение от Elfenlide Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
class angle
{
public:     
    grad gradus;        
    time minutes;
    kurs naprav;
    int counter;
};
Нема...

В чем проблема то, собсно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class angle
{
public:     
    grad gradus;        
    time minutes;
    kurs naprav;
    int counter;
public:
    angle(grad g, time m, kurs k, int c) :
        gradus(g),
        minutes(m),
        naprav(k),
        counter(c)
    { }
};
Единственно что, не уверен, что адекватно будет работать следующая конструкция
C++
1
2
3
4
5
6
class ship
{
private:
    angle shipp;
    // ...
};
Для придания ей адекватности в конструкторе класса ship нужно явно вызвать конструктор класса angle со всеми параметрами.
Что то вроде
C++
1
2
3
4
5
6
7
8
9
10
class ship
{
private:
    angle shipp;
    // ...
public:
    ship(g, m, k, c) :
        shipp(g, m, k, c)
    { }
};
Либо, если не хотите передавать в ship параметры, оформить shipp как ссылку (angle *shipp). Тогда уже в том же конструкторе явно инициализировать класс angle посредством оператора new и предварительно определенных 4х переменных.

Удачи.
1
Elfenlide
23 / 23 / 1
Регистрация: 15.04.2012
Сообщений: 183
27.07.2012, 22:27  [ТС] #6
cojuer, не могу вам спасибо поставить но вы сделали то что нужно!)спасибо огромное)
и понял наконец как задавать коды символов, огромное спасибо!)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2012, 22:27
Привет! Вот еще темы с ответами:

Лафоре,задача про денежный тип - C++
Вот задачка: Одним из недостатков C++ является отсутствие для бизнес-программ встроенного типа для денежных значений, такого, как $173...

Правильное ли решение задачи? Лафоре. 3 глава 9 задача - C++
Представьте, что вы собираетесь пригласить к себе шестерых гостей, но за вашим столом могут разместиться всего лишь 4 человека Сколькими...

Задача из книги Р.Лафоре содержит ошибки, исправьте пожалуйста - C++
#include &lt;iostream&gt; using namespace std; int main() { int age; for(int j=0;j&lt;4;j++) { cout&lt;&lt;&quot;BBedite Bo3pacT:&quot;; ...

Задача по классам.с++ - C++
Задание 1 Разработать пользовательский тип (класс) «матрица целых чисел». Класс должен содержать: – все нужные поля, исходя из...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.07.2012, 22:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru