用C++编写一个三角形类Ctriangle

编写一个三角形类Ctriangle,有a、b、c三条边(double类型),提供计算面积的函数GetArea()以及计算周长的函数GetPerimeter(),并提供main函数进行测试。

第1个回答  2010-07-08
/*编写一个三角形类Ctriangle,有a、b、c三条边(double类型),提
供计算面积的函数GetArea()以及计算周长的函数GetPerimeter(),并提
供main函数进行测试
*/
#include<iostream>
#include<cmath>
using namespace std;
class Ctriangle
{
private:
double a,b,c; //私有字段,保证程序数据的安全性
public:

double GetArea(); //面积获取函数
double GetPerimeter();//周长获取函数
void setA(double a); //设置a的值的函数
double getA(); //获取a的函数
void setB(double b);//设置b的值的函数
double getB();//获取b的函数
void setC(double c);//设置c的值的函数
double getC();//获取c的函数
};
void Ctriangle::setA(double a)
{
this->a=a;
}
void Ctriangle::setB(double b)
{
this->b=b;
}
void Ctriangle::setC(double c)
{
this->c=c;
}
double Ctriangle::getA()
{
return this->a;
}
double Ctriangle::getB()
{
return this->b;
}
double Ctriangle::getC()
{
return this->c;
}
double Ctriangle::GetArea()
{
double p=(this->getA()+this->getB()+this->getC())/2;
double S=sqrt(p*(p-this->getA())*(p-this->getB())*(p-this->getC()));
return S;
}
double Ctriangle::GetPerimeter()
{
return this->getA()+this->getB()+this->getC();
}
void main()
{
Ctriangle test;
while(1)
{
cout<<"input a,b,c:"<<endl;
double a,b,c;
cin>>a>>b>>c;
if(a+b<c||a+c<b||b+c<a||a<=0||b<=0||c<=0) //输入边的合法性检查,是否能组成三角形
{
cout<<"无法组成三角形"<<endl;
continue;
}
test.setA(a);
test.setB(b);
test.setC(c);
cout<<"面积="<<test.GetArea()<<endl;
cout<<"周长="<<test.GetPerimeter()<<endl;
}
}
第2个回答  2010-07-08
#include <iostream>
#include <math.h>

using namespace std;
class Ctriangle
{
public:
double a,b,c,Tmp;

double GetArea()
{
Tmp=(a+b+c)/2;
return sqrt(Tmp*((Tmp-a)*(Tmp-b)*(Tmp-c)));
}

double GetPerimeter()
{
return a+b+c;
}
};

void main(void)
{
Ctriangle Tri;
double a,b,c,Area,Peri;
cout<<"输入数据,以空格分开"<<endl;
cin>>a>>b>>c;
Tri.a=a;Tri.b=b;Tri.c=c;
Area=Tri.GetArea();
Peri=Tri.GetPerimeter();

cout<<"Area is: "<<Area<<endl;
cout<<"Perimeter is: "<<Peri<<endl;

for(;;); //for pause
}

VS2010编译通过~~VC6貌似要把#include <iostream>改成#include <iostream.h>本回答被提问者采纳