-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path모양 넓이 구하기
92 lines (77 loc) · 1.9 KB
/
모양 넓이 구하기
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
#include <iostream>
#include <string>
using namespace std;
#define pi 3.14
class Shape
{
private:
string NAME; //도형 이름
int A; //가로1
int B; //세로
int C; //가로2
public:
Shape(int x = 0, int y = 0, int z = 0) { A = x; B = y; C = z; } //생성자, 초기화
~Shape() { cout << "Shape 소멸 "; } //소멸자
int getA() { return A; }
int getB() { return B; }
int getC() { return C; }
void setTwo(int x, int y) { A = x; B = y; } //길이를 입력받는 함수
void setThree(int x, int y, int z) { A = x; B = y; C = z; } //길이를 입력받는 함수
};
class CircleA :public Shape //상속
{
private:
string NAME = "CircleA";
public:
~CircleA() { cout << NAME << "클래스" << endl; }
Shape::setTwo; //자식 클래스에서 부모 클래스 함수를 호출하려면 ::를 이용한다.
void AreaOval()
{
double AreaOval = getA() / 2 * getB() / 2 * pi;
cout << "타원의 넓이는 " << AreaOval << "이다." << endl;
}
};
class Rectangular :public Shape
{
private:
string NAME = "Rectangular";
public:
~Rectangular() { cout << NAME << "클래스" << endl; }
Shape::setTwo;
void AreaRect()
{
double AreaRect = getA() * getB();
cout << "사각형의 넓이는 " << AreaRect << "이다." << endl;
}
};
class Ladder :public Shape
{
private:
string NAME = "Ladder";
public:
~Ladder() { cout << NAME << "클래스" << endl; }
Shape::setThree;
void AreaLadder()
{
double AreaLadder = (getA() + getC()) * getB() * 0.5;
cout << "사다리꼴의 넓이는 " << AreaLadder << "이다." << endl;
}
};
int main(void)
{
CircleA cir;
cir.setTwo(10, 2);
cir.AreaOval();
Shape a;
Rectangular lar;
lar.setTwo(10, 20);
lar.AreaRect();
Shape b(10, 20);
Ladder der;
der.setThree(3, 7, 4);
der.AreaLadder();
der.setThree(5, 10, 6);
der.AreaLadder();
Shape c(3, 7, 4);
return 0;
}