Форум программистов, компьютерный форум 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
C++ Написать прогу в С++
1) Составить программу которая вводит квадратную матрицу и выдает на экран одномерные массивы, каждый элемент которой равен количеству простых чисел в этой строке. 2) Даны два вектора {xi} и {yi}, i = 1, ..., 10, упорядоченные по возрастанию. Слить их в один вектор {zj}, j = 1, ..., 20 так, чтобы сохранилась упорядоченность.
C++ Создание программы на подобии автокликера
Всем привет, хотел написать грамотную программу "автокликер" с хорошим интерфейсом, в голове представляю, как она выглядит и работает, но не знание языков ограничивает работу над этим проектом... Мои знания это: графический дизайн на уровне преподавания и работы создание карт для игры кс - довольно успешный и продвинутый уровень Работа с цифровым и аналоговым звуком - высшее образование ...
C++ Значение, хранящееся по адресу http://www.cyberforum.ru/cpp-beginners/thread260021.html
Как узнать адрес, по которому находится значение переменной, я уже знаю. это с помощью = &var А как узнать значение по адресу вообще? То есть если известен только адрес, и требуется узнать что там на нем. При том не используя переменные и указатели. Вобще, возможно ли такое? Я написал cout << 0x10101010;
C++ Поиск слова в файле Кто знает помогите! Суть проблемы: "Есть файл в котором построчно хранятся слова(каждое слово с новой стоки), программа должна искать в этом файле слово введенное пользователем с клавиатуры.Если нет такого слова - первое слово из файла должно быть удалено, все слова сдвинуты на 1 вверх, и слово введенное пользователем должно быть записано в конец файла." Мне главное понять, как обращаться в файле... подробнее

Показать сообщение отдельно
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
28.06.2012, 23:40     ООП. Класс 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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#include<iostream.h>
#include<conio.h>
#include<windows.h>
#include<math.h>
#include<string>
 
char str[1];
char *Rus(const char in[],char out[]);
char *Rus(const char in[],char out[])
{
  if(CharToOem(in,out))return out;
  else return 0;
}
 
#pragma pack(push,1)
struct Angle
{
    int degree;
    int minute;
};
#pragma pack(pop)
 
void Init(Angle& angle,int d,int m)
{
    angle.degree=d;
    angle.minute=m;
    //cout<<d<<" "<<m<<endl<<endl;
}
 
void Read(Angle& angle)
{
    while(true)
    {
        cout<<Rus("Введите значения градусов и минут: ",str);
        cin>>angle.degree>>angle.minute;
        if(cin.peek()=='\n')
        {
            cin.get();
            break;
        }
        else
        {
            cout<<endl<<Rus("Ошибка! Проверьте вводимые значения.",str)<<endl;
            cin.clear();
            while(cin.get()!='\n') {  }
        }
    }
    cout<<Rus("Значения введены верно.",str)<<endl<<endl;
}
 
float TransferInDegrees(Angle& angle)
{   return angle.degree+angle.minute/60.0;  }
 
float TransferInRadians(Angle& angle)
{   return TransferInDegrees(angle)*M_PI/180.0; }
 
float SinOfAngle(Angle& angle)
{   return sin(TransferInRadians(angle));   }
 
float TransferInNormalForm(Angle& angle)
{   return (TransferInDegrees(angle)/360.0-int(TransferInDegrees(angle)/360.0))*360.0;  }
 
float IncreaseOrReduction(Angle& angle)
{
    int per,degree1,minute1;
    float res;
 
    cout<<endl<<Rus("Введите значения для увеличения/уменьшения существующего угла:",str)<<endl;
    while(true)
    {
        cout<<Rus("Введите значения градусов и минут: ",str);
        cin>>degree1>>minute1;
        if(cin.peek()=='\n')
        {
            cin.get();
            break;
        }
        else
        {
            cout<<endl<<Rus("Ошибка! Проверьте вводимые значения.",str)<<endl;
            cin.clear();
            while(cin.get()!='\n') {  }
        }
    }
    cout<<Rus("Значения введены верно.",str)<<endl<<endl;
    cout<<Rus("Выберите нужное действие:",str)<<endl;
    cout<<Rus("1. Увеличить значение угла.",str)<<endl;
    cout<<Rus("2. Уменьшить значение угла.",str)<<endl;
    cin>>per;
    switch(per)
    {
        case 1: res=(angle.degree+degree1)+((angle.minute+minute1)/60.0);
                cout<<Rus("Результат: ",str)<<res<<endl;
                break;
 
        case 2: res=(angle.degree-degree1)+((angle.minute-minute1)/60.0);
                cout<<Rus("Результат: ",str)<<res<<endl;
                break;
 
        default: cout<<Rus("Неправильный ввод.",str);
    }
    return res;
}
 
void MoreOrLess(Angle& angle)
{
    Angle a;
    Angle b;
 
    cout<<endl<<Rus("Введите характеристики для первого угла:",str)<<endl;
    Read(a);
    cout<<Rus("Введите характеристики для второго угла:",str)<<endl;
    Read(b);
    cout<<Rus("Первый угол: ",str)<<TransferInDegrees(a)<<endl;
    cout<<Rus("Второй угол: ",str)<<TransferInDegrees(b)<<endl;
 
    if(TransferInDegrees(a)==TransferInDegrees(b))
        cout<<Rus("Результат: Углы равны.",str)<<endl<<endl;
    else if(TransferInDegrees(a)<TransferInDegrees(b))
            cout<<Rus("Результат: Первый угол меньше второго.",str)<<endl<<endl;
         else cout<<Rus("Результат: Второй угол меньше первого.",str)<<endl<<endl;
}
 
void ToString(Angle& angle)
{
    string s="";
    string Digits="0123456789";
    unsigned char d1,d2;
    d1=angle.degree/10; d2=angle.degree%10;
    s=s+Digits[d1];     s=s+Digits[d2];
    s+=Rus(" минут ",str);
    d1=angle.minute/10; d2=angle.minute%10;
    s=s+Digits[d1];     s=s+Digits[d2];
    s+=Rus(" секунд.",str);
    cout<<s<<endl;
}
 
void Display(Angle& angle)
{
    cout<<Rus("Вы ввели следующие значения: ",str);
    ToString(angle);
    cout<<Rus("Перевод в градусы: ",str)<<TransferInDegrees(angle)<<endl;
    //cout<<Rus("Поэтапно: ",str)<<angle.degree<<"*("<<angle.minute<<"/60)="<<TransferInDegrees(angle)<<endl;
    cout<<Rus("Перевод в радианы: ",str)<<TransferInRadians(angle)<<endl;
    //cout<<Rus("Поэтапно: ",str)<<angle.degree<<"*("<<angle.minute<<"/60)="<<angle.degree<<"*("<<angle.minute<<"/60)*(PI/180)="<<TransferInDegrees(angle)<<"*(PI/180)"<<"="<<TransferInDegrees(angle)/180.0<<"*PI="<<TransferInRadians(angle)<<endl;
    cout<<Rus("Синус угла: ",str)<<SinOfAngle(angle)<<endl;
    cout<<Rus("Перевод к нормальному виду: ",str)<<TransferInNormalForm(angle)<<endl;
}
 
int main()
{
   cout.setf(ios_base::floatfield,ios_base::fixed);
   cout<<Rus("Задание 26.",str)<<endl<<endl;
   Angle angle;
   cout<<Rus("Размер структуры: ",str)<<sizeof(Angle)<<endl;
   cout<<Rus("Размер int:         ",str)<<sizeof(int)<<endl;
   cout<<Rus("Проверка:         ",str)<<sizeof(Angle)<<"="<<2*sizeof(int)<<endl<<endl;
 
   //cout<<Rus("Проверка работы инициализации значений: ",str)<<endl;
   Init(angle,1,2);
   Read(angle);
   Display(angle);
   IncreaseOrReduction(angle);
   MoreOrLess(angle);
 
   system("pause");
   return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru