//1 cin不能连续输入 cin>>x>>y 改成cin>>x;cin>>y;
//2 cin>>x;cin>>y;其中x,y是Circle类的成员变量,在类以外的地方时毫无意义的。如果在外不调用的话
//应该这样 Circle cir(a,b,c); cir.x ,cir.y ,如果是static变量应该是Circle::x;
//建议楼主看看谭浩强的C++,深入浅出。加油!
#include
using namespace std;
#include
class Shape //抽象类,公共基类
{
public:
virtual double Area()const=0; //计算各对象面积
virtual void Show()=0; //输出各对象面积和周长
};
class Rectangle:public Shape //矩形类
{
private:
double Length; //长
double Width; //宽
public:
void SetValue(double len,double wid)//设置,其他类的设置同样做
{
Length=len;
Width=wid;
}
double GetLength()//获取,其他类也同样这样设置
{
return Length;
}
Rectangle(double Length=0,double Width=0) //构造函数
{
this->Length=Length;
this->Width=Width;
}
~Rectangle() //析构函数
{
}
double Area() const//矩形面积
{
return Length*Width;
}
void Show()//输出矩形面积
{
cout<<"Area is:"< }
};
const double PI=3.14159;
class Circle:public Shape//圆类
{
private:
double Radius;//圆的半径
double x;
double y;
public:
Circle(double Radius=0,double x=0,double y=0)//构造函数
{
this->Radius=Radius;
this->x=x;
this->y=y;
}
~Circle()//析构函数
{
}
double Area() const//圆面积
{
return PI*Radius*Radius;
}
void Show()//输出纤搭圆的面积
{
cout<<"Area is:"< cout<<"Center is:"<<"("<
};
class Triangle:public Shape//三角形类
{
private:
double A,B,C;//三角形三边
public:
Triangle(double A=0,double B=0,double C=0)//构造函数
{
this->A=A;
this->B=B;
this->C=C;
}
~Triangle()//析构函数尺竖圆
{
}
double Area() const//三角形面积
{
double P;
P=(A+B+C)/2;
return sqrt(P*(P-A)*(P-B)*(P-C));
}
double Perim() const//三角形周长
{
return (A+B+C);
}
void Show()//输出三角形面积
{
cout<<"Area is:"<陵塌 }
};
void main()
{
double Length,Width,Radius,A,B,C;
double centerx,centery;//圆心
cout<<"Rectangle:"<
cin>>Width;
Rectangle Rect(Length,Width);//建立矩形对象
Rect.Show();//调用矩形类的输出函数
cout<<"Circle:"<
cout<<"请输入圆形的圆心:"<
// cin>>y;
cin>>centerx;
cin>>centery;
Circle Cir(Radius,centerx,centery);//建立圆对象
Cir.Show();//调用圆类的输出函数
cout<<"Triangle:"<
cin>>B;
cin>>C;
if(A<=0||B<=0||C<=0||(A+B)<=C||(A+C)<=B||(B+C)<=A)//判断是否能构成三角形
{
cout<<"输入的三边值不能构成一个三角形!请重新输入!"<
}
else
{
Triangle Tri(A,B,C);//建立三角形对象
Tri.Show();//调用三角形输出函数
}
}
作业还是自己做吧。