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

Определите абстрактный класс Figure - C++

Восстановить пароль Регистрация
 
КоляКоля
0 / 0 / 0
Регистрация: 21.06.2013
Сообщений: 4
23.06.2013, 16:04     Определите абстрактный класс Figure #1
Определите абстрактный класс Figure (фигура на плоскости), включающий координаты x,
y характерной точки фигуры. Предусмотрите в классе Figure функции-члены show,
noshow, move. Определите на базе класса Figure конкретный класс Triangle (треугольник).
Пусть базовая точка задает координаты одной вершины треугольника, кроме этого пусть в
класс Triangle входят длины трех сторон a, b, c и угол между стороной a и осью x.
Напишите тестирующую программу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
24.06.2013, 16:11     Определите абстрактный класс Figure #2
А Вы знаете, как узнать остальные вершины, чтобы строить треугольник? Это не так быстро. Т.ч. выкладывайте наработки.
Кликните здесь для просмотра всего текста
Как мне думается, для нахождения вершины по известному углу между стороной и осью можно воспользоваться теоремой синусов, а координаты оставшейся по системе из двух уравнений.
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
24.06.2013, 16:17     Определите абстрактный класс Figure #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
#include<iostream>
#include<math.h>
using namespace std;
class Figure {
private:
    double x;
    double y;
public:
    virtual void show() {
        cout << x << " " << y << " ";
    }
    virtual void noshow() {
 
    }
    virtual void move() {
 
    }
    void setX(double x) {
        this->x = x;
    }
    void setY(double y) {
        this->y = y;
    }
};
 
class Triangle : public Figure {
private:
    double a;
    double b;
    double c;
    double angle;
public:
    void show() {
        Figure::show();
        cout << a << " " << b << " " << c << " " << angle << endl;
    }
    void move(double x,double y) {
        Figure::setX(x);
        Figure::setY(y);
    }
    void setA(double a) {
 
    }
    void setB(double b) {
 
    }
    void setC(double c) {
 
    }
    void set(double x,double y,double a,double b,double c,double angle) {
        Figure::setX(x);
        Figure::setY(y);
        this->a = a;
        this->b = b;
        this->c = c;
        this->angle = angle;
    }
};
 
int main()
{
    Triangle a;
    a.set(1,2,3,4,5,6);
    a.show();
    system("pause");
    return 0;
}
BumerangSP
24.06.2013, 16:23
  #4

Не по теме:

@MCKLAS, набросок каждый сможет, решите всю задачку Притом там четко написано, что Figure - класс абстрактный.

VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
24.06.2013, 16:41     Определите абстрактный класс Figure #5
@BumerangSP, так у меня класс Figure вроде как и есть абстрактный класс. Зачем функция noshow ума не приложу.

Добавлено через 12 минут
По углу и стороне можно найти перпендекуляр к оси икс и еще одну сторону а потом уже найти смещения и по ним вторую координату. Далее от 180 минус угол и найти перепендекуляр второй и сторону потом смещения и найти координату третьей точки.
BumerangSP
24.06.2013, 17:06
  #6

Не по теме:

@MCKLAS, абстрактный класс предполагает наличие хотя бы одной чистой виртуальной функции. Чего-то не вижу ее здесь)

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 17:11     Определите абстрактный класс Figure
Еще ссылки по теме:

C++ Сознатие графического приложения (Создать класс-наследник от FIGURE)
C++ абстрактный класс
Абстрактный класс/Класс интерфейс C++

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

Или воспользуйтесь поиском по форуму:
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
24.06.2013, 17:11     Определите абстрактный класс Figure #7
@BumerangSP, а да вы правы.
Поменять
C++
1
virtual void noshow();
на
C++
1
virtual void noshow()=0;
и реализация в производном.

C++
1
void noshow() { ... }
Yandex
Объявления
24.06.2013, 17:11     Определите абстрактный класс Figure
Ответ Создать тему
Опции темы

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