#include <iostream>
using namespace std;
class Shape
{
public:
virtual double area()=0;
};
/*三角形类*/
class Trigon:public Shape
{
protected:
double h,w;
public:
Trigon(double H,double W)
{
h=H;
w=W;
}
double area()
{
return h*w/2;
}
};
/*正方形类*/
class Square:public Trigon
{
public:
Square (double H,double W):Trigon(H,W){}
double area(){return h*w;}
};
/*圆 类*/
class Circle:public Shape
{
protected:
double raius; /*半径*/
public:
Circle(double r){raius=r;}
double area()
{return raius*raius*3.14;}
};
int main()
{
Shape *p;
int choice=0;
while(1)
{
bool quit=false;
cout<<"[0]退出[1]三角形[2]正方形[3]圆"<<endl<<"请选择:";
cin>>choice;
switch (choice)
{
case 0:
quit=true;
break;
case 1:
p=new Trigon(5.0,6.0);
cout<<"三角形的面积:"<<p->area()<<endl;
break;
case 2:
p=new Square(60,60);
cout<<"正方形的面积:"<<p->area()<<endl;
break;
case 3:
p=new Circle(9.0);
cout<<"圆的面积:"<<p->area()<<endl;
break;
default:cout<<"请输入0到3之间的数字!"<<endl;
break;
}
if (choice<4&&choice>0)
{
delete p;
}
if (quit==true)
{
break;
}
}
return 0;
}