8 / 6 / 3
Регистрация: 14.04.2019
Сообщений: 71
1

Создать абстрактный базовый класс Point с указанными виртуальными функциями

20.11.2019, 22:43. Показов 448. Ответов 1
Метки с++ (Все метки)

Доброго времени суток! Есть у меня задачка:
Создать абстрактный базовый класс Point. На базе его построить класс согласно варианту. Это класс должен иметь Виртуальные фукции, Действия которых:
draw - рисует на экране Сейчас объект
area - площадь выделенных области
move - движение по горизонтали данного объекта
Если с ф-цией draw и area мне все понятно, то как выполнить ф-цию move? Так-же вот есть мой набросок кода:
1) я создаю еще один класс, где пропишу, допустим virtual draw, virtual area, virtual move это будет считаться как абстрактный класс?
2) как реализовать движение по горизонтальной оси?
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
# define pi           3.14159265358979323846  /* pi */
 
using namespace std;
 
int pth(int x, int y) { return sqrt(pow(x, 2) + pow(y, 2)); }
 
class Circle {
    int x, y, R;
public:
 
    void draw() { // risuem krug
        const int width = R, length = R * 1.5;
        for (int y = width; y >= -width; y -= 2) {
            for (int x = -length; x <= length; x++) {
                if (pth(x, y) == R) cout << "*";
                else cout << " ";
            } cout << "\n";
        }
    }
 
    double area() { // ob4isluem S
        double S = pi * pow(R, 2);
        return S;
    }
 
    void move() {
        cout << "Dlya vihoda nazmite space." << endl;
 
    }
 
 
    void set() {
        cout << "x = "; cin >> x;
        cout << "y = "; cin >> y;
        cout << "R = "; cin >> R;
    }
    int getX() { return x; }
    int getY() { return y; }
    int getR() { return R; }
};
 
int main() {
 
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2019, 22:43
Ответы с готовыми решениями:

Создать абстрактный базовый класс с виртуальными функциями - площадь и периметр
Помогите написать,не врублюсь как писать много пропустил (( Задание:Создать абстрактный базовый...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать...

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра.
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра....

Создать абстрактный базовый класс Root (корень) с виртуальными методами вычисления корней
Здравствуйте, на завтра нужно сдать задачу, а я не знаю как решить, помогите пожалуйста Создать...

1
Модератор
Эксперт С++
12481 / 10035 / 6035
Регистрация: 18.12.2011
Сообщений: 26,855
21.11.2019, 10:03 2
Должно быть примерно так:
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
class Point
{
protected:
   double x,y;
public:
Point(double x0=0,double y0=0):x(x0),y(y0){}
virtual void draw()=0;
virtual double area()=0;
virtual void move()=0;
};
class Circle: public Point {
    double R;
public:
    Circle(double x0,double y0,double r0):R(r0),Point(x0,y0){}
    void draw() { // risuem krug
       double width = R, length = R * 1.5;
       for (int y = width; y >= -width; y -= 2) {
            for (int x = -length; x <= length; x++) {
                if (pth(x, y) == R) cout << "*";
                else cout << " ";
            } cout << "\n";
        }
    }
 
    double area() { // ob4isluem S
        double S = pi * R*R;
        return S;
    }
 
    void move() {
        cout << "Dlya vihoda nazmite space." << endl;
 
    }
 
 
    void set() {
        cout << "x = "; cin >> x;
        cout << "y = "; cin >> y;
        cout << "R = "; cin >> R;
    }
    int getX() { return x; }
    int getY() { return y; }
    int getR() { return R; }
};
 
int main() {
    Point* p=new Circle(0,0,100);
    p->Draw();
   cout<<p->Area();
   delete p;
   return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2019, 10:03
Помогаю со студенческими работами здесь

Создать абстрактный базовый класс с виртуальными методами вычисления функции y в заданной точке х
создать абстрактный базовый класс function с виртуальными методами вычисления ф-ции y=f(x) в...

Создать абстрактный базовый класс Body (тело) с виртуальными методами вычисления площади поверхности и объема
Создать абстрактный базовый класс Body (тело) с виртуальными методами вычисления площади...

Создать абстрактный базовый класс Container с виртуальными методами sort() и поэлементной обработки контейнера foreach
Создать абстрактный базовый класс Container с виртуальными методами sort() и поэлементной обработки...

Создать абстрактный базовый класс Integer(целое) с виртуальными арифметическими операциями и функцией вывода на экран
Помогите,пожалуйста! Не знаю как делать:( Создать абстрактный базовый класс Integer(целое) с...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru