이 연습에서는 Visual Editor를 사용하여 원뿔 클래스를 작성합니다. 원뿔 클래스는 3D 원뿔을 나타냅니다.
이전 연습에서는 UML 모델링 도구를 사용하여 원 및 구 클래스를 확장했습니다. 이 연습에서는 UML 모델링 도구를 사용하여 프로젝트에 원뿔 클래스를 추가합니다. shape3d 클래스에서 상속하는 원뿔 클래스는 원뿔의 반지름과 높이에 기초하여 볼륨과 표면 영역을 계산하고 표시합니다. UML 모델링 도구를 사용하여 프로젝트에 클래스를 추가하고 클래스에 속성을 추가할 수 있습니다. 메소드의 본문을 편집하려면 다이어그램에서 메소드를 두 번 클릭하고 코드 편집기에서 소스 코드를 편집하십시오.
C/C++ 프로젝트 탐색기 보기를 사용하여 프로젝트에 클래스를 추가할 수 있습니다. 새 C++/클래스 마법사를 사용하여 상속 관계를 식별할 수 있습니다.
이제 원뿔 클래스를 Shapes 프로젝트에 추가했습니다. 이제 UML 모델링 도구를 사용하여 클래스 및 속성을 새 클래스에 추가할 수 있습니다. 다이어그램은 다음 그림과 유사하게 표시됩니다.
원뿔 클래스는 기본 쉐이프 클래스가 정의하는 getColor 및 setColor 메소드를 구현합니다.
이제 getColor 및 setColor 메소드를 원뿔 클래스에 추가했습니다.
원뿔 클래스는 기본 쉐이프 클래스가 정의하는 getSize 및 setSize 메소드를 구현합니다. 크기 필드는 원뿔의 높이를 저장합니다.
방금 getSize 및 setSize 메소드를 원뿔 클래스에 추가했습니다.
원뿔 클래스는 기본 쉐이프 클래스가 정의하는 getRadius 및 setRadius 메소드를 구현합니다. 반지름 필드는 원뿔의 밑면 반지름을 저장합니다. 응용프로그램은 반지름을 사용하여 원뿔의 원주와 부피를 계산합니다.
이제 getRadius 및 setRadius 메소드를 원뿔 클래스에 추가했습니다.
원뿔 클래스는 shapes3d 클래스가 정의하는 surface area 및 volume 메소드를 구현합니다. 원뿔의 표면적을 계산하는 데 사용되는 수식은 pi * r * (r + (r2 + h2)1/2)이고, 원뿔의 부피를 계산하는 수식은 1/3 x pi x r2 h입니다.
이제 surfaceArea 및 volume 메소드를 원뿔 클래스에 추가했습니다.
원뿔 클래스는 기본 쉐이프 클래스가 정의하는 set 및 print 메소드를 구현합니다.
{ cout << "Cone:" << "\n\tLength = " << getSize() << "\n\tArea = " << surfaceArea() << "\n\tVolume = " << volume() << "\n\tColor = " << getColor() << "\n\n"; };
이제 print 및 set 메소드를 원뿔 클래스에 추가했습니다.
cone.cpp 클래스 파일은 set 메소드의 구현뿐만 아니라, 생성자 및 파기자도 포함합니다. set 메소드의 본문을 수정하여 사용자에게 원뿔의 크기 및 반지름 입력을 요청하는 프롬프트를 표시합니다. 또한 새 원뿔 클래스의 초기 값을 설정하려면 기본 생성자를 편집해야 합니다.
void cone::set() { double size; double radius; string color; cout << "Enter the height of the cone: "; cin >> size; setSize(size); cout << "Enter the radius of the base of the cone: "; cin >> radius; setRadius(radius); cout << "Enter the color of the cone: "; cin >> color; setColor(color); }
이제 cone.cpp 클래스 파일에 set 메소드를 추가하여 Shapes 프로젝트를 완료했습니다.
응용프로그램을 실행하려면 include 문을 main.cpp 클래스에 추가하여 새 원뿔 클래스를 포함해야 합니다. main.cpp 클래스를 수정하여 응용프로그램을 실행하고 새 원뿔 클래스를 인스턴스화할 수 있습니다.
//instantiate and run the cone class cone c; c.print(); c.set(); c.print();
프로그램은 원뿔 쉐이프의 크기, 색상, 표면적 및 부피를 표시하고 새 원뿔 인스턴스에 값 지정을 요구하는 프롬프트를 표시합니다.