#include <iostream>
#include <string>
#include<stdio.h>
#include <stdlib.h>
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 radius*radius*3.14;
}
string getName(){
return name;
}
};
class CircleManager{
Circle *p;
int size;
public :
CircleManager(){
}
CircleManager(int size);
~CircleManager(){
delete[] p;
}
void searchByName();
void searchByArea();
};
CircleManager :: CircleManager(int size){
string n,r;
p=new Circle[size];
this->size=size;
for(int i=0; i<size;i ++){
cout << "원 " << i+1 << "의 이름과 반지름 >> ";
cin >> n >> r;
p[i].setCircle(n,atoi(r.c_str()));
}
fflush(stdin);
}
void CircleManager :: searchByName(){
string cir;
int n;
cout << "검색하고자 하는 원의 이름 >> ";
getline( cin, cir);
for(int i=0; i<size;i++){
if(p[i].getName() == cir) n=i;
}
cout << p[n].getName() << "의 면적은 " << p[n].getArea() << endl;
}
void CircleManager :: searchByArea(){
int n;
cout << "최소 면적을 정수로 입력하세요 >> ";
cin >> n;
cout << n << "보다 큰 원을 검색합니다." << endl;
for(int i=0; i<size;i ++){
if(p[i].getArea()> n){
cout<< p[i].getName() << "의 면적은 " << p[i].getArea() << " ,";
}
}
cout<<endl;
}
int main(int argc, char** argv) {
int n;
cout<<"원의 개수>> ";
cin>> n;
CircleManager cm(n);
cm.searchByName();
cm.searchByArea();
return 0;
}
언어/C++