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

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

Войти
Регистрация
Восстановить пароль
 
 
Serg22
103 / 103 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
#1

Классы точка, круг, элипс - C++

03.11.2013, 23:25. Просмотров 1106. Ответов 16
Метки нет (Все метки)

Добрый вечер)
начну с задания: Создать класс точка, имеющая координаты. Класс эллипсов, и класс кругов. Определить иерархию типов. Определить функции печати, конструкторы, деструкторы, вычисление площади.
Вот что вышло у меня.
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
#include <iostream>
 
using namespace std;
class Point{
      
      public:
             
      Point(): x(0),y(0) {};
      Point(double X, double Y): x(X), y(Y){};
      ~Point(){}
      double get_x(){return x;}
      double get_y(){return y;}
      
      private:
              
      double x,y;
      };
 
class Circle //Cirle area: S=PI*R*R
{
   
public:
    Circle(double radius = 1.0):_radius(radius) {};
    ~Circle(){}
 double get_radius() const {   return _radius; }
 double area() const{ return PI * _radius * _radius;}
 
 
private:
    double _radius;
   static const double PI=3.14;
};
 
class Elipse // Elipse area: S=PI*A*B
{
      public: 
              Elipse(): a(0),b(0) {};
              Elipse(double A, double B): a(A), b(B) {}; 
             ~Elipse() {}
             double get_A() const {return a;}
             double get_B() const {return b;}
      double area() const {return PI * a * b;}
      
      private:
              double a,b;
                static const double PI=3.14;
};
int main(){
    Circle a(10);
    Elipse b(3,4);
        cout<<"\nCIRCLE\n"<<"Radius="<<a.get_radius()<<"\nArea of circle="<<a.area()<<endl;
    cout<<"\nELIPSE\n"<<"A="<<b.get_A()<<"\nB="<<b.get_B()<<"\narea of elipse="<<b.area()<<endl;
    system("pause");}
Вопрос1 : правильно ли я понял задание? (просто при чем тут тогда класс Точка, если его мы не используем..
Вопрос2: Определить иерархию типов... Это как?..
Вопрос3: помогите, пожалуйста, написать ф-цию печати Print (пробывал разными способами реализовать ее в классе, не получается

Добавлено через 57 минут
ап)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 23:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы точка, круг, элипс (C++):

Наследование классов: реализовать классы точка, линия, треугольник, круг - C++
задачка интересная,но как сделать ее-я не представляю... можете помочь..

Разработать программу с использованием наследования классов, реализующую классы: точка; линия; круг - C++
помогите написать программу: Разработать программу с использованием наследования классов, реализующую классы: точка; линия; круг....

Наследование. Классы "Точка - Круг - Эллипс" - C++
Если коротко объяснять суть проблемы: Класс tEllipse наследует от tCircle метод LineMove (который tCircle унаследовал от tPoint и...

Дружественные классы эллипс и круг - C++
Здраствуйте, увадаемые форумчане помогите пожалуйста Задача. 1. Описать независимые классы и определить их методы. Атрибуты и все...

Определить, попадает ли точка в круг. - C++
Определить попадает ли точка с координатами х,у в круг радиуса r с центром в начале координат. Вывести признак N=1, если точка находится...

Определить попадет ли точка в круг? - C++
Определить,попадает ли точка M(x,y) в круг с радиусом R с центром в точке О(1,2). Значение радиуса и координаты X и Y ввести при помощи...

16
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
03.11.2013, 23:26 #2
Serg22, я так понимаю, что тут нужно было создать точку, потом на основе точки сделать класс круг (точка будет центром), и на основе точки эллипс (две точки для отрисовки)
Ну и, когда я выполнял подобную работу, я пользовался С++ Builder и его функциями canvas (для отрисовки)
0
Serg22
103 / 103 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
03.11.2013, 23:33  [ТС] #3
хмм) а как это реализовать в Dev-C++?..
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
03.11.2013, 23:57 #4
Serg22, ну примерно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class type_point
{
public:
    type_point(int tx, int ty){_x=tx;_y=ty;}
    int x() {return _x;}
    int y() {return _y;}
    void set_x(int t) {_x=t;}
    void set_y(int t) {_y=t;}
private:
    int _x,_y;
};
 
class type_circle
{
public:
private:
    type_point center;
    int r;
}
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
04.11.2013, 00:04 #5
Цитата Сообщение от Folko Посмотреть сообщение
Serg22, я так понимаю, что тут нужно было создать точку, потом на основе точки сделать класс круг
что общего у круга и точки
притянуто за уши
круг может содержать класс точки в виде члена класса, координаты центра
а вот круг из эллипса можно
круг это частный случай эллипса, центры совпадают

Добавлено через 1 минуту
Folko, причем сам так и сделал
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
04.11.2013, 00:05 #6
ValeryS, а что не так?
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
04.11.2013, 00:07 #7
Цитата Сообщение от Folko Посмотреть сообщение
ValeryS, а что не так?
все так
но ты рекомендовал наследовать класс круг от класса точки
Цитата Сообщение от Folko Посмотреть сообщение
к понимаю, что тут нужно было создать точку, потом на основе точки сделать класс круг
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
04.11.2013, 00:09 #8
ValeryS, не не, я имел в виду включить в состав класса круг точку. Но можно и от класса точки сделать класс круг... Смотря что требуется по заданию
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
04.11.2013, 00:11 #9
Цитата Сообщение от Folko Посмотреть сообщение
Но можно и от класса точки сделать класс круг...
вот это как раз и глупость
сделать то можно но что у них общего?
Цитата Сообщение от ValeryS Посмотреть сообщение
притянуто за уши
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
04.11.2013, 00:13 #10
ValeryS, ну как вариант... у точки x,y, у круга x,y,r. Что то схожее можно найти.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
04.11.2013, 00:17 #11
Цитата Сообщение от Folko Посмотреть сообщение
ValeryS, ну как вариант... у точки x,y, у круга x,y,r. Что то схожее можно найти.
а я тебе могу сказать наоборот
точка это частный случай круга с радиусом 0
тут как то проходила тема
человек создал фигуру(не помню какую) от точки плюс еще были точки как члены, а потом получил глюки при вызове конструктора
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
04.11.2013, 00:23 #12
ValeryS, не спорю, может быть и так)
0
Serg22
103 / 103 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
04.11.2013, 22:47  [ТС] #13
эмм, так что мне это даст?) если я допишу в классе Circle
C++
1
2
3
private:
Point center;
....
Какой здесь смысл заложен?
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
04.11.2013, 22:57 #14
так что мне это даст?)
при создании обекта круга будешь передавать координаты для точки котрая выступает центром круга, инициализируешь обьект класса точки в конструкторе класса круга.

Добавлено через 2 минуты
Но помоему лучше использовать абстрактный класс
C++
1
2
3
4
class Figure{}; // сделать абстрактным
class Point : public Figure{};
class Elipse : public Figure{};
class Circle : public Figure{};
1
Serg22
103 / 103 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
04.11.2013, 23:23  [ТС] #15
а что мне нужно обьявлять в классе Figure?
0
04.11.2013, 23:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 23:23
Привет! Вот еще темы с ответами:

Определить, попадает ли заданная точка в круг - C++
С клавиатуры вводятся координаты точки,также вводятся координаты центра круга и его радиус. Определить попадает ли заданная точка в круг

Реализовать иерархию классов Точка-Круг - C++
Ребят кому не сложно помочь? Нужно реализовать иерархию классов. В каждом производном классе присутствует - конструктор инициализации,...

Создать классы для форм (круг и треугольник) - C++
помогите кто сможет Требуется создать классы для форм (круг и треугольник), причём каждый из классов должен реализовать функции Area()...

Реализовать иерархию классов Точка-Линия-Круг - C++
Реализовать иерархию классов из индивидуального задания. В каждом производном классе присутствует - конструктор инициализации, методы...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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