C++

명품 C++ 실습문제 4장 12번

Hs’s Coding vlog 2023. 1. 4. 16:12
#include <iostream>
#include <string>
using namespace std;
class Circle{
    int radious;
    string name;
public:
    void setcircle(string name,int radious);
    double getArea();
    string getName();
};
void Circle::setcircle(string name,int radious){
    this -> name =name;
    this -> radious = radious;
}
double Circle::getArea(){
    return radious*radious*3.14;
}
string Circle::getName(){
    return name;
}


class CircleManager {
    Circle *p;
    int size;
public:
    CircleManager(int size);
    ~CircleManager(){delete [] p ;}
    void searchByname();
    void searchByArea();
    
};
CircleManager::CircleManager(int size){
    p = new Circle[size];//동적생성하기
    string str;
    int rad;
    for(int i=0; i<size ; i++){
        cout << "원 " << i+1 <<"의 이름과 반지름 >>";
        cin  >> str >> rad;
        p[i].setcircle(str, rad);
    }
}
void CircleManager::searchByname(){
    string str;
    cout << "검색하고자 하는 원의 이름>>";
    cin >> str;
    for(int i=0 ; i<size ; i++){
        if(p[i].getName()==str){
            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() << ",";
        }
    
    }
}


int main() {
    int num;
    cout << "원의갯수 >>";
    cin >> num;
    CircleManager circlech(num);
    circlech.searchByname();
    circlech.searchByArea();
    cout <<endl;
    return 0;
}

'C++' 카테고리의 다른 글

명품 C++ 실습문제 5장 1번  (0) 2023.01.05
명품 C++ 실습문제 4장 14번  (0) 2023.01.04
명품 C++ 실습문제 4장 11번  (0) 2023.01.04
명품 C++ 실습문제 4장 9번  (0) 2023.01.04
명품 C++ 실습문제 4장 8번  (0) 2023.01.04