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

Создать класс Круг на координатной плоскости - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
airsed
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 12:14     Создать класс Круг на координатной плоскости #1
Для меня это тёмный лес, я только начинаю писать, а нас грузят уже такими вот заданиями. Помогите сделать, или подскажите как правильно. Вот такое задание:

Создать класс Круг на координатной плоскости. Данные класса - координаты центра круга и радиус. Класс имеет конструктор по умолчанию, конструктор круга единичного радиуса, и конструктор произвольного круга.
Определить методы для определения длины окружности и площади круга, вывода параметров круга на экран.
1. Описать объекты созданного типа, обратиться к методам.
2. Создать динамические объекты созданного типа, обратиться к их методам.
3. Создать метод шоу для графического отображения различных объектов класса.
4. Как метод класса перегрузить унарный операцию ++ для увеличения радиуса круга.

Классам-потомком для круга объявить класс Кольцо, который имеет дополнительные поле - внутренний радиус и метод Площадь. Определить конструктор кольца. Выведите данные на экран с использованием метода базового класса.

---------

Знаю задание не простое, но может кто-то сможет помочь. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 12:14     Создать класс Круг на координатной плоскости
Посмотрите здесь:

В какой координатной четверти плоскости находится точка. C++
Четверти на координатной плоскости C++
C++ создать класс что ассоциируется с точкой на плоскости
C++ Очередь, состоящая из точек координатной плоскости
Поиск точки на координатной плоскости C++
C++ Создать класс Point для работы с точками на плоскости
C++ Как расчитать растояние на координатной плоскости напрямую?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
15.05.2013, 12:25     Создать класс Круг на координатной плоскости #2
Тут присутствует математика, у меня с ней не очень, напишите, как можно имея координаты центра и радиуса определить длины окружности и площади круга (напишите формулы, только все подробно), PS я тоже не далеко ушел в изучении C++ но большинство того, что вы пишите мне понятно, в той или иной мере.
airsed
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 12:39  [ТС]     Создать класс Круг на координатной плоскости #3
Вот сдесь можно глянуть формулы http://school-assistant.ru/?predmet=..._ploshad_kruga

Добавлено через 1 минуту
Ссылка не работает почему-то, вот нашёл формулы: длина окр - 2 пи эр, площадь круга - пи эр квадрат.
GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
15.05.2013, 15:05     Создать класс Круг на координатной плоскости #4
Как я уже писал выше, я только начинаю изучать C++ по этому то, что я написал многие программисты оценят в 3---- (3 лишь только за то, что оно работает), да и программа выполняет НЕ все заявленные требования

Кликните здесь для просмотра всего текста

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
#include <iostream>
 
class krug // объявляем класс круг
{ // начало тела класса круг
public: // далее будут идти открытые данные класса
 
double radius; // радиус 
    
    
void radius_okrujnost(double radius) // метод класса для расчета радиуса окружности, все что ниже расчет
{
setlocale(LC_ALL,"");
 
double pi = 3.14;
double dlinna_okr = 2 * pi * radius;
 
std::cout << "Радиус окружности равен: " << dlinna_okr << "\n";
}
 
void ploshad_okrujnosti(double radius) // метод класса для расчета площади окружности, все что ниже расчет
{
setlocale(LC_ALL,"");
 
double pi = 3.14;
double ploshad = pi * (radius * radius);
 
std::cout << "Площадь круга равна: " << ploshad << "\n";
}
 
}; // конец тела класса 
 
int main()
{
setlocale(LC_ALL,"");
 
int choice;
 
std::cout << "\n***\n";
std::cout << "1. Узнать длину окружности\n";
std::cout << "2. Узнать площадь окружности\n";
std::cout << "3. Узнать площадь и длину окружности\n";
std::cout << "4. Выйти из программы\n";
std::cout << "Выберите действие соответствующей цифрой (1, 2, 3 или 4): ";
std::cin >>  choice;
 
switch (choice)
{
case 1:
{
double *r = new double;
std::cout << "Введите радиус: ";
std::cin >> *r;
krug *krug_d = new krug;  // создаем динамический объект класса 
krug_d->radius_okrujnost(*r);
delete krug_d;
delete r;
break;
}
 
case 2:
{
double *r = new double;
std::cout << "Введите радиус: ";
std::cin >> *r;
 
krug *krug_d = new krug;  // создаем динамический объект класса 
krug_d->ploshad_okrujnosti(*r);
delete krug_d;
delete r;
break;
}
 
case 3:
            {
double *r = new double;
std::cout << "Введите радиус: ";
std::cin >> *r;
 
krug *krug_d = new krug;  // создаем динамический объект класса 
krug_d->radius_okrujnost(*r);
krug_d->ploshad_okrujnosti(*r);
delete krug_d;
delete r;
break;
}
 
case 4:
{
break;
}
 
default:
{
std::cout << "\nВы ошиблись цифрой, вернитесь в главное меню и попробуйте еще..\n";
system("pause");
main();
break;
 
}
}
 
system("pause");
return 0;
}


Программа:
1. объявляет класс круг
2. создает данные класса - радиус
3. имеет метод определения площади и длинны окружности
4. создает динамический объект


все остальное я или не понял (про конструкторы, что именно надо и про координаты на плоскости) или я не умею (наследование например).

Да и еще, за математику я не ручаюсь, сверяйте с калькулятором сами
nobless1368
 Аватар для nobless1368
14 / 14 / 1
Регистрация: 04.06.2012
Сообщений: 124
Записей в блоге: 1
15.05.2013, 15:13     Создать класс Круг на координатной плоскости #5
Цитата Сообщение от GTS Посмотреть сообщение
Как я уже писал выше, я только начинаю изучать C++ по этому то, что я написал многие программисты оценят в 3---- (3 лишь только за то, что оно работает), да и программа выполняет НЕ все заявленные требования

Кликните здесь для просмотра всего текста

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
#include <iostream>
 
class krug // объявляем класс круг
{ // начало тела класса круг
public: // далее будут идти открытые данные класса
 
double radius; // радиус 
    
    
void radius_okrujnost(double radius) // метод класса для расчета радиуса окружности, все что ниже расчет
{
setlocale(LC_ALL,"");
 
double pi = 3.14;
double dlinna_okr = 2 * pi * radius;
 
std::cout << "Радиус окружности равен: " << dlinna_okr << "\n";
}
 
void ploshad_okrujnosti(double radius) // метод класса для расчета площади окружности, все что ниже расчет
{
setlocale(LC_ALL,"");
 
double pi = 3.14;
double ploshad = pi * (radius * radius);
 
std::cout << "Площадь круга равна: " << ploshad << "\n";
}
 
}; // конец тела класса 
 
int main()
{
setlocale(LC_ALL,"");
 
int choice;
 
std::cout << "\n***\n";
std::cout << "1. Узнать длину окружности\n";
std::cout << "2. Узнать площадь окружности\n";
std::cout << "3. Узнать площадь и длину окружности\n";
std::cout << "4. Выйти из программы\n";
std::cout << "Выберите действие соответствующей цифрой (1, 2, 3 или 4): ";
std::cin >>  choice;
 
switch (choice)
{
case 1:
{
double *r = new double;
std::cout << "Введите радиус: ";
std::cin >> *r;
krug *krug_d = new krug;  // создаем динамический объект класса 
krug_d->radius_okrujnost(*r);
delete krug_d;
delete r;
break;
}
 
case 2:
{
double *r = new double;
std::cout << "Введите радиус: ";
std::cin >> *r;
 
krug *krug_d = new krug;  // создаем динамический объект класса 
krug_d->ploshad_okrujnosti(*r);
delete krug_d;
delete r;
break;
}
 
case 3:
            {
double *r = new double;
std::cout << "Введите радиус: ";
std::cin >> *r;
 
krug *krug_d = new krug;  // создаем динамический объект класса 
krug_d->radius_okrujnost(*r);
krug_d->ploshad_okrujnosti(*r);
delete krug_d;
delete r;
break;
}
 
case 4:
{
break;
}
 
default:
{
std::cout << "\nВы ошиблись цифрой, вернитесь в главное меню и попробуйте еще..\n";
system("pause");
main();
break;
 
}
}
 
system("pause");
return 0;
}


Программа:
1. объявляет класс круг
2. создает данные класса - радиус
3. имеет метод определения площади и длинны окружности
4. создает динамический объект


все остальное я или не понял (про конструкторы, что именно надо и про координаты на плоскости) или я не умею (наследование например).

Да и еще, за математику я не ручаюсь, сверяйте с калькулятором сами
как я понял, нужно было перегрузить конструктор класса krug, чтобы он в зависимости от количества входных данных менял свой функционал.
GTS
 Аватар для GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
15.05.2013, 15:23     Создать класс Круг на координатной плоскости #6
Цитата Сообщение от nobless1368 Посмотреть сообщение
как я понял, нужно было перегрузить конструктор класса krug, чтобы он в зависимости от количества входных данных менял свой функционал.
если честно я не понимаю перегрузку (не в данном случае, а вообще), для чего она делается и зачем, что бы можно было использовать одну и ту же функцию по наименованию с разными параметрами, какой от этого толк.
airsed
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 15:53  [ТС]     Создать класс Круг на координатной плоскости #7
Спасибо что откликнулись. Скажите, а графически сложно отобразить различные обьекты класса, там линии и точки в цикле перебирать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 17:03     Создать класс Круг на координатной плоскости
Еще ссылки по теме:

Создать класс Point для работы с точками на плоскости C++
Создать класс углов на плоскости C++
Сравнение двух точек на координатной плоскости C++
Создать класс Point для работы с точками на плоскости C++
Класс ПРЯМАЯ на координатной плоскости C++

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

Или воспользуйтесь поиском по форуму:
nobless1368
 Аватар для nobless1368
14 / 14 / 1
Регистрация: 04.06.2012
Сообщений: 124
Записей в блоге: 1
15.05.2013, 17:03     Создать класс Круг на координатной плоскости #8
Цитата Сообщение от GTS Посмотреть сообщение
если честно я не понимаю перегрузку (не в данном случае, а вообще), для чего она делается и зачем, что бы можно было использовать одну и ту же функцию по наименованию с разными параметрами, какой от этого толк.
Как раз такие в этом и весь смысл
Представь, что ты не знаешь сколько параметров нужно будет передать в функцию (допустим, оно переменно). Например, у меня была задача написать программу, которая парсит ответ от сервера. Сам ответ возвращался в виде отдельных элементов в количестве от 3 до 6. Для того, чтобы обработать каждый из ответов мне бы пришлось написать 4 функции и как-то их назвать, хотя они выполняли, по сути, одну и ту же функцию. Кроме того, пришлось бы в теле функции, принимающей ответ от сервера, считать количество полученных элементов и делать ветвление в соответствии с их количеством. А теперь представь, если бы этих элементов было не 3-6, а 1-100. Одних проверок надо было бы сделать 101 (в наихудшем). Представь сколько лишней работы делала бы твоя программа?

Добавлено через 2 минуты
Цитата Сообщение от airsed Посмотреть сообщение
Спасибо что откликнулись. Скажите, а графически сложно отобразить различные обьекты класса, там линии и точки в цикле перебирать?
смотря куда тебе их нужно отобразить. Если в консоль, то легко: гоняешь в цикле cout, немного работая мозгом при написании программы, а если в отдельное окошко, то там уже WinAPI(Windows Forms)/Qt/GTK и т.д.т.п.
Yandex
Объявления
15.05.2013, 17:03     Создать класс Круг на координатной плоскости
Ответ Создать тему
Опции темы

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