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

ООП. Класс Angle для работы с углами на плоскости. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как то странно выводит матрицу. http://www.cyberforum.ru/cpp-beginners/thread260063.html
Помогите, пожалуйста. Написал код для вывода матрицы.Но при наборе как то странно выводит матрицу,последние элементы не те!Хотел скриншот выложить, но что то не получилось!Помогите пожалуйста! using namespace std; int main(int argc, char *argv) { int i,j,N; int X; cout << "Razmernost matricy"; cin >> N; for ( i = 0; i < N; i ++ ) for ( j = 0; j < N; j ++ ) {
C++ C++Решите мне пожалуйста через функцию http://img.lds.net.ua/?v=2011/03/18/1300476455.png решите задачу кроме 1 и 2 и 4!!Остальніе нужні!!!!!!!!!!! Добавлено через 47 минут ппц ну решите плиз!!!!!!!!! http://www.cyberforum.ru/cpp-beginners/thread260060.html
Генерация на экране разноцветных смайликов, расположенных случайным образом (MFC) Visual C++
Здравствуйте, не пойму как с помощью MFC реализовать вывод графики в приложении Windows. Собственно задание такое: Написать программу, генерирующую на экране разноцветные смайлики, расположенные случайным образом. Выражение каждого смайлика должно меняться 6 раз, после чего он исчезает с экрана. Создавать простое MFC на основе диалоговых окон? Какие классы использовать для рисования? Главная...
C++ Написать прогу в С++
1) Составить программу которая вводит квадратную матрицу и выдает на экран одномерные массивы, каждый элемент которой равен количеству простых чисел в этой строке. 2) Даны два вектора {xi} и {yi}, i = 1, ..., 10, упорядоченные по возрастанию. Слить их в один вектор {zj}, j = 1, ..., 20 так, чтобы сохранилась упорядоченность.
C++ Создание программы на подобии автокликера http://www.cyberforum.ru/cpp-beginners/thread260038.html
Всем привет, хотел написать грамотную программу "автокликер" с хорошим интерфейсом, в голове представляю, как она выглядит и работает, но не знание языков ограничивает работу над этим проектом... Мои знания это: графический дизайн на уровне преподавания и работы создание карт для игры кс - довольно успешный и продвинутый уровень Работа с цифровым и аналоговым звуком - высшее образование ...
C++ Значение, хранящееся по адресу Как узнать адрес, по которому находится значение переменной, я уже знаю. это с помощью = &var А как узнать значение по адресу вообще? То есть если известен только адрес, и требуется узнать что там на нем. При том не используя переменные и указатели. Вобще, возможно ли такое? Я написал cout << 0x10101010; подробнее

Показать сообщение отдельно
IrineK
Заблокирован
19.03.2011, 15:37     ООП. Класс Angle для работы с углами на плоскости.
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <math.h>
#define M_PI       3.14159265358979323846
using namespace std;
 
class Angle
{
private:
    int _degree, _minute;
 
public:
    Angle (int degree, int minute)
        : _degree (degree),_minute(minute){}
 
    Angle ()
        : _degree (0),_minute(0){}
    
    ~Angle (){}
 
    int getDegree() {return _degree;}
    int getMinute() {return _minute;}
 
    void removeRoughs()
    {   _minute += _degree*60;
        _degree = _minute/60;
        _minute = _minute%60;
    }
    
    void setAngle()
    {   cout<<"\tDegrees:\t";
        cin>>_degree;
        cout<<"\tMinutes:\t";
        cin>>_minute;
        this->removeRoughs();
    }
 
    void increaseAngle()
    {   Angle a;
        a.setAngle();
        _degree += a.getDegree();
        _minute += a.getMinute();
        this->removeRoughs();
    }
 
    void decreaseAngle()
    {   Angle a;
        a.setAngle();
        _degree -= a.getDegree();
        _minute -= a.getMinute();
        this->removeRoughs();
    }   
 
    double getRadians()
    {   return (_degree+_minute/60.)*M_PI/180.;
    }
 
    void intoRange()
    {   if(_minute<0)
        {   _degree--;
            _minute += 60;
        }
        if(_degree>0)_degree = _degree%360;
        else _degree = _degree%360+360;
    }
 
    double sinA()
    {   return sin(this->getRadians());
    }
 
    friend int angleCmp(Angle &a1, Angle &a2)
    {   int m1 = a1.getMinute()+a1.getDegree()*60;
        int m2 = a2.getMinute()+a2.getDegree()*60;
        if(m1<m2) return -1;
            else if(m1>m2) return 1;
                else return 0;
    }
};
 
 
int main ()
{
    //тест конструктора по умолчанию
    Angle d1;
    cout<<"Default constructor assignments for d1:\n"; 
    cout<<"\tDegrees: "<<d1.getDegree()<<" Minutes: "<<d1.getMinute()<<"\n";
 
    //тест конструктора с параметрами
    Angle d2(12,16);
    cout<<"\nCommon constructor assignments for d2:\n"; 
    cout<<"\tDegrees: "<<d2.getDegree()<<" Minutes: "<<d2.getMinute()<<"\n";
 
    //тест изменения объекта, метод setAngle()
    cout<<"\nSet new values for d1:\n";
    d1.setAngle();
    cout<<"d1: Degrees: "<<d1.getDegree()<<" Minutes: "<<d1.getMinute()<<"\n";
 
    //тест увеличения угла на заданную величину, метод increaseAngle()
    cout<<"\nAdd values to d1\n";
    d1.increaseAngle();
    cout<<"d1: Degrees: "<<d1.getDegree()<<" Minutes: "<<d1.getMinute()<<"\n";
 
    //тест уменьшения угла на заданную величину, метод decreaseAngle()
    cout<<"\nMinus values from d1\n";
    d1.decreaseAngle();
    cout<<"d1: Degrees: "<<d1.getDegree()<<" Minutes: "<<d1.getMinute()<<"\n";
 
    //тест перевода в радианы, метод getRadians()
    cout<<"\nd1 in radians:\t"<<d1.getRadians();
    cout<<"\nd2 in radians:\t"<<d2.getRadians();
 
    //тест приведения к диапазону 0-360, метод intoRange()
    cout<<"\n\nSet angle d3 beyond range <0 - 360>\n";
    Angle d3;
    d3.setAngle();
    d3.intoRange();
    cout<<"\nd3 within range:"<<"\tDegrees: "<<d3.getDegree()<<" Minutes: "<<d3.getMinute()<<"\n";
 
    //тест синуса, метод sinA()
    cout<<"\nSines for angles d1, d2,d3\n";
    cout<<"d1:\t"<<d1.sinA()<<"\n";
    cout<<"d2:\t"<<d2.sinA()<<"\n";
    cout<<"d2:\t"<<d3.sinA()<<"\n";
 
    //тест сравнения, friend-метод angleCmp(Angle &a1, Angle &a2)
    cout<<"\nComparison for angles d1 and d2\n";
    cout<<"d1: Degrees: "<<d1.getDegree()<<" Minutes: "<<d1.getMinute()<<"\n";
    cout<<"d2: Degrees: "<<d2.getDegree()<<" Minutes: "<<d2.getMinute()<<"\n";
    int res = angleCmp(d1,d2);
    if(res==-1) cout<<"d1 < d2\n";
        else if(res==1) cout<<"d1 > d2\n";
            else cout<<"d1 = d2\n";
 
    cin.get();
    return 0;
}
 
Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru