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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 5.00
MissJuianika
75 / 1 / 1
Регистрация: 19.05.2012
Сообщений: 8
19.05.2012, 17:03     Создать абстрактный базовый класс Figure #1
Здравствуйте,помогите пожалуйста с задачей.
Создать абстрактный базовый класс 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;
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 17:03     Создать абстрактный базовый класс Figure
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21434 / 10219 / 1666
Регистрация: 12.02.2012
Сообщений: 17,092
19.05.2012, 17:33     Создать абстрактный базовый класс Figure #2
А зачем нужно подключать "vcl.h" ?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
19.05.2012, 17:41     Создать абстрактный базовый класс Figure #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
Yandex
Объявления
19.05.2012, 17:41     Создать абстрактный базовый класс Figure
Ответ Создать тему
Опции темы

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