-
Notifications
You must be signed in to change notification settings - Fork 0
/
poligonos.cpp
165 lines (125 loc) · 2.62 KB
/
poligonos.cpp
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include <iostream>
#include <string>
#define PI 3.1415
using std::cout;
using std::string;
using std::endl;
class poligono{
protected:
string cor;
public:
poligono(const string c):cor(c){}
virtual double get_area(){//metodo virtual aplicado para utilizacao de ponteiros, senao ele vai usar somente o da classe poligono
return 0;
}
void set_cor(string& c){
cor=c;
}
string get_cor(){
return cor;
}
};
//**********************************************************retangulo
class retangulos:public poligono{
double base;
double altura;
public:
retangulos(const string c,double b,double a):poligono(c),base(b),altura(a){}
double get_area(){
return base*altura;
}
void set_base(double b){
base=b;
}
void set_altura(double a){
altura=a;
}
double get_base(){
return base;
}
double get_altura(){
return altura;
}
};
//***********************************************circulo
class circulo:public poligono{
double raio;
public:
circulo(double r,const string c):poligono(c),raio(r){}
double get_area(){
return PI*(raio*raio);
}
void set_raio(double r){
raio=r;
}
double get_raio(){
return raio;
}
};
//********************************************************triangulo
class triangulo:public poligono{
double base;
double altura;
public:
triangulo(double b,double a,const string c):poligono(c),base(b),altura(a){}
double get_area(){
return (base*altura)/2;
}
void set_base(double b){
base=b ;
}
void set_altura(double a){
altura=a;
}
double get_base(){
return base;
}
double get_altura(){
return altura;
}
};
class trapezio:public poligono{
double base_maior;
double base_menor;
double altura;
public:
trapezio(double b_m,double b_mn,double a,const string c):poligono(c),base_maior(b_m),base_menor(b_mn),altura(a){
}
void set_base_maior(double b_m){
base_maior=b_m;
}
void set_base_menor(double b_mn){
base_menor=b_mn;
}
void set_altura(double a){
altura=a;
}
double get_base_maior(){
return base_maior;
}
double get_base_menor(){
return base_menor;
}
double get_altura(){
return altura;
}
double get_area(){
return ((base_maior+base_menor)*altura)/2;
}
};
int main() {
circulo cir1(10.5,"azul");
retangulos ret1("amarelo",5.6,9.8);
triangulo tri1(10,8.5,"vermelho");
trapezio tra1(10,20,7,"verde");
poligono* p1= &cir1;
poligono* p2= &ret1;
poligono* p3= &tri1;
poligono* p4= &tra1;
double soma_area=0;
soma_area+=cir1.get_area()+ret1.get_area()+tri1.get_area()+tra1.get_area();
cout << "soma das areas: "<< soma_area<<endl;
soma_area =p1->get_area()+p2->get_area()+p3->get_area()+p4->get_area();
cout << "soma das areas: "<< soma_area<<endl;
return 0;
}