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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 5.00
MissJuianika
75 / 1 / 1
Регистрация: 19.05.2012
Сообщений: 8
#1

Создать абстрактный базовый класс Figure - C++

19.05.2012, 17:03. Просмотров 3824. Ответов 2
Метки нет (Все метки)

Здравствуйте,помогите пожалуйста с задачей.
Создать абстрактный базовый класс Figure с виртуальной функцией - площадь поверхности. Создать производные классы параллелепипед, тетраэдр, шар в которых данная функция переопределена.
Площадь поверхности параллелепипеда: S=6xy.Площадь поверхности шара: S=4 r2.
Площадь поверхности тетраэдра: S=a2 3 ( и другие формулы добавленные мной)
Вот задача написана мной, но библиотека #include <vcl.h> не работает..не знаю как ее заменить.

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
#include <vcl.h>
#include <iostream>
#include <tchar.h>
#include <cmath>
using namespace std;
class Figure
{public:
virtual float Volume()=0;
};
class Parallepiped: public Figure
{
float x,y,z;
public:
Parallepiped():x(0),y(0),z(0){};
Parallepiped(float x1,float y1, float z1, float a1, float b1, float c1):x(x1),y(y1),z(z1),a(a1),b(b1),c(c1){};
float Volume1(){return 2*(ab+bc+ac);}};
float Volume(){return z*(x*y);}};
 
  
class Tetraid: public Figure
{float a;
public:
Tetraid():a(0){};
Tetraid(float a1):a(a1){};
float Volume 1(){ return (3^(1/2)*(a^2);}}; 
float Volume(){return a*(2*3);}};
 
class Piramida: public Figure
{float x,y,h;
public:
Piramida(): x(0),y(0),h(){};
Piramida(float x1,float y1,float h1):x(x1),y(y1),h(h1){};
float Volume(){return x*y*h;}};
 
class Shar: public Figure
{float r;
public:
Shar(): r(0){};
Shar(float r1):r(r1){};
float Volume(){return 4*pi(r*r);}};
 
int _tmain (int argc, _TCHAR* argv[])
 {   Figure* mas[3];
  mas[0]=new Parallepiped(3,4,6);
  mas[1]=new Piramida(5,4,3);
  mas[2]=new Tetraid(27);
  mas[3]=new Shar(3);
 cout<<"1-Параллепипед"<<endl<<"2-Пирамида"<<endl<<"3-Тетраэдр"
 <<endl<<"4-Шар"<<endl<<endl;
 for (int i=0; i < 4; i++) { //Для проверки определить массив ссылок на абстрактный класс, которым присваиваются адреса различных объектов.
  cout<<"Площадь фигуры, номер "<<i+1<<" = "<<mas[i]->Volume()<<endl;
 
 }
 
  system("pause");
    return 0;
 }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 17:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать абстрактный базовый класс Figure (C++):

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

Создать абстрактный базовый класс Figure и производные классы Rectangle, Circle - C++
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle...

Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle - C++
Создать абстрактный базовый класс Figure с виртуальной функцией -периметр.Создать производные классы Rectangle, Circle,Triangle,Rhomb в...

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

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

Создать абстрактный базовый класс - C++
Помогите: Создать абстрактный базовый класс Container с виртуальными функциями вставки и извлечения. Создать производные классы Stack и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,118
19.05.2012, 17:33 #2
А зачем нужно подключать "vcl.h" ?
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
19.05.2012, 17:41 #3
Форматируйте же код. И теги есть. И vcl не нужен.
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
//#include <vcl.h>
#include <iostream>
//#include <tchar.h>
#include <cmath>
 
using namespace std;
 
class Figure {
public:
//    virtual float Volume() = 0;
    virtual float Area() const = 0;
    virtual ~Figure() {}
};
 
class Parallepiped : public Figure {
    float x, y, z;
public:
 
    Parallepiped() : x(0), y(0), z(0) {}
    //};
 
//    Parallepiped(float x1, float y1, float z1, float a1, float b1, float c1) : x(x1), y(y1), z(z1), a(a1), b(b1), c(c1) {
//    };
 
    Parallepiped(float x1, float y1, float z1) : x(x1), y(y1), z(z1) {}
    
//    float Volume1() {
//        return 2 * (ab + bc + ac);
//    }
    virtual float Area() const {
        return 2 * (x * y + x * z + y * z);
    }
};
 
//float Volume() {
//    return z * (x * y);
//}
//};
 
class Tetraid : public Figure {
    float a;
public:
 
    Tetraid() : a(0) {}
//    };
 
    Tetraid(float a1) : a(a1) {}
    //};
 
//    float Volume 1() {
//
//        return (3^(1 / 2)*(a^2);
//    }
    virtual float Area() const {
        return std::sqrt(3.) * a;
    }
};
//float Volume() {
//return a * (2 * 3);
//}
//};
 
class Piramida : public Figure {
    float x, y, h;
public:
 
    Piramida() : x(0), y(0), h(0) {}
    //    };
 
    Piramida(float x1, float y1, float h1) : x(x1), y(y1), h(h1) {}
//    };
 
//    float Volume() {
//        return x * y*h;
//    }
    virtual float Area() const {
        return 0.; // что такое x, y, h? я хз)
    }
};
 
class Shar : public Figure {
    float r;
public:
 
    Shar() : r(0) {}
//    };
 
    Shar(float r1) : r(r1) {}
//    };
 
//    float Volume() {
//        return 4 * pi(r * r);
//    }
    virtual float Area() const {
        return 4 * std::acos(-1.) * std::pow(r, 2.);
    }
};
 
//int _tmain(int argc, _TCHAR* argv[]) {
 
int main() {
//    Figure * mas[3];
    Figure * mas[4];
    mas[0] = new Parallepiped(3, 4, 6);
    mas[1] = new Piramida(5, 4, 3);
    mas[2] = new Tetraid(27);
    mas[3] = new Shar(3);
    cout << "1-Параллепипед" << endl << "2-Пирамида" << endl << "3-Тетраэдр"
            << endl << "4-Шар" << endl << endl;
    for (int i = 0; i < 4; i++) { //Для проверки определить массив ссылок на абстрактный класс, которым присваиваются адреса различных объектов.
        cout << "Площадь фигуры, номер " << i + 1 << " = " << /* mas[i]->Volume() */ mas[i]->Area() << endl;
 
    }
 
    for (int i = 0; i != 4; ++i) {
        delete mas[i];
    }
 
    //system("pause");
    //return 0;
}
http://liveworkspace.org/code/f1feb8...3ad3594e602dbf
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2012, 17:41
Привет! Вот еще темы с ответами:

1) Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, выводящим информацию о фигуре на экран - C++
1) Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, выводящим информацию о фигуре на экран. ...

Создать абстрактный базовый класс список - C++
Создать абстрактный базовый класс список. Реализовать на его базе классы стек и очередь с виртуальными функциями добавления и удаления...

Создать абстрактный базовый класс Employee - C++
МОЖНО ПОЖАЛУЙСТА ПОДРОБНО,Я ХОЧУ РАЗОБРАТЬСЯ 1. Создать абстрактный базовый класс Employee (служащий) с чисто виртуальной ...

Создать абстрактный базовый класс Vehicle - C++
Доброго всем дня! проблема в следующем - не могу понять условия задания. Мне главное что бы мне помогли сформировать условие задания. Вот...


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

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

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