power-girl0-0

[ C++ ] 동적할당을 이용하여 원의 면적과 둘레 구하기 본문

언어/C++

[ C++ ] 동적할당을 이용하여 원의 면적과 둘레 구하기

power-girl0-0 2021. 4. 6. 16:02
728x90
#include <iostream>
#include <string>

using namespace std;

class Circle{
	int radius;
	string name;
public:
	Circle();
	~Circle(){};
	void setRadius(string n,int r){name = n; radius = r;}
	double getArea(){return 3.14*radius*radius;}
	double getSize(){return (radius+radius)*3.14;}
	string getName(){return name;}
};
Circle::Circle(){
	radius = 1; 
}

int main(){
	cout<<"생성하고자 하는 원의 개수 : ";
	int n, radius;
	string name;
	cin >> n; //원의 개수 입력
	
	Circle *pArray = new Circle [n]; //n개의 circle 배열 생성
	for(int i=0; i<n; i++){
		cout << "원"<<i+1<<"의 이름과 반지름 : ";
		cin >>name>>radius; //반지름 입력
		pArray[i].setRadius(name,radius); //각 circle 객체를 반지름으로 초기화 
	} 
	
	int count = 0; //카운트 변수 
	Circle *p = pArray;
	for(int i=0; i<n; i++){
		cout<<p->getName()<<"의 면적 : "<<p->getArea() <<" "<<endl; //원의 면적 출력
		cout<<p->getName()<<"의 둘레 : "<< p->getSize() <<" "<<endl<<endl; //원의 둘레 출력
		if(p->getArea()>=100 && p->getArea()<= 200)
			count++;
		p++;
	}
	cout<<endl<<"면적이 100에서 200사이인 원의 개수 : "<<count<<endl;

	cout<<endl<<"검색하고자 하는 원의 이름 : ";
	cin>>name;
	Circle *p2 = pArray;
	for(int i=0; i<n; i++){
		if(p2->getName() == name){
			cout<<p2->getName()<<"의 면적 : "<<p2->getArea() <<" "<<endl; //원의 면적 출력
			cout<<p2->getName()<<"의 둘레 : "<<p2->getSize() <<" "<<endl<<endl; //원의 둘레 출력
		}	
		p2++;
	}

	delete [] pArray;
} 

 

 

728x90

'언어 > C++' 카테고리의 다른 글

[ C++ ] 헹맨 게임  (0) 2021.04.13
[ C++ ] find를 활용하여, 문자 찾기  (0) 2021.04.13
[ C++ ] 메모리  (0) 2021.04.06
[ C++ ] 은행 알고리즘  (0) 2021.03.30
[ C++ ] TV  (0) 2021.03.30
Comments