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
#include <iostream>
#include <string>
#define PI 3.141592
using namespace std;
 
class Circle {
    int radius;
    string name;
public:
    void setCircle(string name, int radius) { this->name = name; this->radius = radius; }
    double getArea() { return PI * radius*radius; }
    string getName() { return name; }
};
 
class CircleManager {
    Circle *p;
    int size;
public:
    CircleManager(int size);
    ~CircleManager() { delete[]p; }
    void searchByName();
    void searchByArea();
};
 
CircleManager::CircleManager(int size) {
    string name;
    int radius;
    this->size = size;
    p = new Circle[size];
    for (int i = 0; i < size; i++) {
        cout << "원 " << i + 1 << "의 이름과 반지름 >> ";
        cin >> name;
        cin >> radius;
        p[i].setCircle(name, radius);
    }
}
 
void CircleManager::searchByName() {
    string name;
    cout << "검색하고자 하는 원의 이름 >> ";
    cin >> name;
    for (int i = 0; i < size; i++) {
        if (p[i].getName() == name) {
            cout << p[i].getName() << "의 면적은 " << p[i].getArea() << endl;
        }
    }
}
 
void CircleManager::searchByArea() {
    int area;
    cout << "최소 면적을 정수로 입력하세요 >> ";
    cin >> area;
    cout << area << "보다큰 원을 검색합니다." << endl;
    for (int i = 0; i < size; i++) {
        if (p[i].getArea() > area) {
            cout << p[i].getName() << "의 면적은 " << p[i].getArea() << ",";
        }
    }
    cout << endl;
}
 
int main() {
    int size;
    cout << "원의 개수 >> ";
    cin >> size;
    CircleManager p(size);
    p.searchByName();
    p.searchByArea();
}
cs


+ Recent posts