http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=3430 [º¹»ç]
¾Æ·¡ Äڵ忡¼ ¹ØÀ¸·Î ³»·Á°¡¸é void main() ÆÄÆ®°¡ Àִµ¥ ±× ÆÄÆ®¸¸ ÁÖ¼® Á» ´Þ¾ÆÁÖ¼¼¿ä
³ª¸ÓÁø ÀÌÇØ°¡ °¡´Âµ¥ °Å±â¸¸ Àß ¸ð¸£°Ú¾î¿ä
#include <iostream>
#include <string>
using namespace std;
class Shape{
protected:
int x, y;
public:
virtual ~Shape() {}
virtual void draw()=0;
};
class TwoDimShape:public Shape{
public:
virtual double getArea()=0;
};
class ThreeDimShape:public Shape{
public:
virtual double getVolume()=0;
};
class Rectangle : public TwoDimShape{
private:
int width, height;
public:
void setWidth(int w){width = w;}
void setHeight(int h){height = h;}
void draw() {cout << "Ractangle Draw"<<endl;}
double getArea(){return width*height;}
};
class Ellipse : public TwoDimShape{
private:
double LongAxis, ShortAxis;
public:
Ellipse() {}
~Ellipse() {}
void setLongAxis(int l){LongAxis=l;}
void setShortAxis(int s){ShortAxis=s;}
void draw() {cout << "Ellipse Draw"<<endl;}
double getArea(){return 3.14*LongAxis*ShortAxis/4;}
};
class Triangle : public TwoDimShape{
private:
int width, height;
public:
void setWidth(int w){width = w;}
void setHeight(int h){height = h;}
void draw() {cout << "Triangle Draw"<<endl;}
double getArea(){return (double)width*height/2;}
};
class Shpere : public ThreeDimShape{
private:
int radius;
public:
void setRadius(int r){radius = r;}
double getVolume(){return 3.14*radius*radius*radius*4/3;}
void draw() {cout << "Shpere Draw"<<endl;}
};
class Cube : public ThreeDimShape{
private:
int length;
int width;
int height;
public:
void setLength(int l){length=l;}
void setWidth(int w){width=w;}
void setHeight(int h){height=h;}
double getVolume(){return length*width*height;}
void draw() {cout << "Cube Draw"<<endl;}
};
class Cylinder : public ThreeDimShape{
private:
int radius;
int height;
public:
void setRadius(int r){radius = r;}
void setHeight(int h){height = h;}
double getVolume(){return 3.14*radius*radius*height;}
void draw() {cout << "Cylinder Draw"<<endl;}
};
void main() {
Shape *arrayOfShapes[6];
arrayOfShapes[0] = new Rectangle;
((Rectangle*)arrayOfShapes[0])->setWidth(10);
((Rectangle*)arrayOfShapes[0])->setHeight(10);
arrayOfShapes[1] = new Ellipse;
((Ellipse*)arrayOfShapes[1])->setLongAxis(10);
((Ellipse*)arrayOfShapes[1])->setShortAxis(10);
arrayOfShapes[2] = new Triangle;
((Triangle*)arrayOfShapes[2])->setWidth(10);
((Triangle*)arrayOfShapes[2])->setHeight(10);
arrayOfShapes[3] = new Shpere;
((Shpere*)arrayOfShapes[3])->setRadius(10);
arrayOfShapes[4] = new Cube;
((Cube*)arrayOfShapes[4])->setWidth(10);
((Cube*)arrayOfShapes[4])->setHeight(10);
((Cube*)arrayOfShapes[4])->setLength(10);
arrayOfShapes[5] = new Cylinder;
((Cylinder*)arrayOfShapes[5])->setRadius(10);
((Cylinder*)arrayOfShapes[5])->setHeight(10);
cout << "¸ðµç±æÀ̹ÝÁö¸§°¡·Î¼¼·Î³ôÀÌÀDZæÀ̸¦10À̶ó°¡Á¤<<endl;
for(int i=0; i<6;i++){
arrayOfShapes[i]->draw();
if(i<3) cout << "µµÇüÀdzÐÀÌ: " << ((TwoDimShape *)arrayOfShapes[i])->getArea() <<endl;
else cout <<"µµÇüÀǺÎÇÇ: " << ((ThreeDimShape *)arrayOfShapes[i])->getVolume() <<endl;
}
}; |
Hit : 6435 Date : 2012/06/03 09:56
|