#include<iostream>
using namespace std;
class encapsulation
{
public:
void get_doul();
void get_volume();
void get_area();
void volume_play();
void area_play();
private:
double height;
double width;
double length;
double volume;
double area;
};
void encapsulation::get_volume()
{
volume=height*width*length;
}
void encapsulation::get_area()
{
area=2*(height*width+height*length+width*length);
}
void encapsulation::get_doul()
{
cout<<"define length width height of a cuboid"<<endl;
cout<<"length:"<<endl;
cin>>length;
cout<<"width:"<<endl;
cin>>width;
cout<<"height:"<<endl;
cin>>height;
get_volume();
get_area();
}
void encapsulation::area_play()
{
cout<<"area:"<<area<<endl;
}
void encapsulation::volume_play()
{
cout<<"volume:"<<volume<<endl;
}
//以上是长方体类以下是三角形类
class Triangle
{
public:
void get_Triangle_doul();
void get_Triangle_perimeter();
void get_Triangle_area();
void Triangle_perimeter_play();
void Triangle_area_play();
bool is_Triangle();
private:
double x;
double y;
double z;
double Triangle_perimeter;
double Triangle_area;
};
void Triangle::get_Triangle_doul()
{
cout<<"define x y z of a Triangle"<<endl;
cout<<"x:"<<endl;
cin>>x;
cout<<"y:"<<endl;
cin>>y;
cout<<"z:"<<endl;
cin>>z;
}
bool Triangle::is_Triangle()
{ if(x+y>z&&x+z>y&&y+z>x)
return true;
else
return false;
}
void Triangle::get_Triangle_perimeter()
{
Triangle_perimeter=x+y+z;
}
void Triangle::get_Triangle_area()
{
double r;
r=(x+y+z)/2;
Triangle_area=sqrt(r*(r-x)*(r-y)*(r-z));
}
void Triangle::Triangle_area_play()
{
cout<<"area:"<<Triangle_area<<endl;
}
void Triangle::Triangle_perimeter_play()
{
cout<<"perimeter:"<<Triangle_perimeter<<endl;
}
//下面主函数
int main()
{
int a;
cout<<"input your selection(1 or 2)"<<endl;
cout<<"1.cuboid or 2.Triangle"<<endl;
cin>>a;
if(a==1)
{
encapsulation cub1;
cub1.get_doul();
cout<<"The cuboid:"<<endl;
cub1.area_play();
cub1.volume_play();
}
else if(a==2)
{
Triangle tri1;
tri1.get_Triangle_doul();
if(tri1.is_Triangle())
{
tri1.get_Triangle_perimeter();
tri1.get_Triangle_area();
cout<<"The Triangle:"<<endl;
tri1.Triangle_area_play();
tri1.Triangle_perimeter_play();
}
else
cout<<"error"<<endl;
}
return 0;
}
有一点不明白,我在头文件上没有用cmath为什么程序照常运行(程序中用到了sqrt)难道是vs2010的原因吗