首页 > 代码库 > 创建一个三角形类并且通过成员函数计算三角形的周长和面积《1》

创建一个三角形类并且通过成员函数计算三角形的周长和面积《1》

首先定义一个三角形类

class Triangle//三角形类
{
public:
	double getA(void);//得到a的值
	double getB(void);//得到b的值
	double getC(void);//得到c的值
	void setA(double x);//设置a的值
	void setB(double y);//设置b的值
	void setC(double z);//设置c的值
	bool isTriangle(void);//取三边的值
	double Perimeter(void);//计算三角形的周长
	double Area(void);//计算并返回三角形的面积

private:
	double a, b, c; //三边为私有成员数据
};


然后定义成员函数

函数名:setA()

函数功能:设置a的值

void Triangle::setA(double x)//设置a的值
{
	a = x;
}

函数名:setB()

函数功能:设置b的值

void Triangle::setB(double y)//设置b的值
{
	b = y;
}

函数名:setC()

函数功能:设置c的值

void Triangle::setC(double z)//设置c的值
{
	c = z;
}


函数名:getA()

函数功能:得到a的值

double Triangle::getB(void)//得到b的值
{
	return b;
}

函数名:getB()

函数功能:得到b的值

double Triangle::getB(void)//得到c的值
{
	return b;
}


函数名:getC()

函数功能:得到c的值

double Triangle::getC(void)//得到c的值
{
	return c;
}

函数名:isTriangle(void)

函数功能:判断三边能否构成三角形

bool Triangle::isTriangle(void)//判断三边能否构成三角形
{
	if(a<=0 || b<=0 || c<=0 || (a+b<=c) || (a-b>=c))
	{
		return false;
	}
	else
	{
		return true;
	}
}


函数名:Perimeter(void)

函数功能:计算三角形的周长

double Triangle::Perimeter(void)//计算三角形的周长
{
	double sum = a + b + c;
	
	return sum;
}


函数名:Area(void)

函数功能:计算三角形的面积

double Triangle::Area(void)//计算并返回三角形的面积
{
	//使用海伦公式计算三角形的面积
	double p = (a + b + c) / 2;

	double q = p*(p-a)*(p-b)*(p-c);

	double s = sqrt(q);

	return s;
}



程序的全部代码:

#include <iostream>
#include <cmath>

using namespace std;


class Triangle//三角形类
{
public:
	double getA(void);//得到a的值
	double getB(void);//得到b的值
	double getC(void);//得到c的值
	void setA(double x);//设置a的值
	void setB(double y);//设置b的值
	void setC(double z);//设置c的值
	bool isTriangle(void);//取三边的值
	double Perimeter(void);//计算三角形的周长
	double Area(void);//计算并返回三角形的面积

private:
	double a, b, c; //三边为私有成员数据
};


int main()
{	
	Triangle tri1;	//定义三角形类的一个实例(对象)
	
	double x,y,z;
	
	cout<<"请输入三角形的三边:";
	cin>>x>>y>>z;
	
	//为三边置初值
	tri1.setA(x);
	tri1.setB(y);
	tri1.setC(z);
	
	if(tri1.isTriangle())
	{ 
		cout<<"三条边为:"<<tri1.getA()<<‘,‘<<tri1.getB()<<‘,‘<<tri1.getC()<<endl;
		cout<<"三角形的周长为:"<< tri1.Perimeter()<<‘\t‘<<"面积为:"<< tri1.Area()<<endl;
	}
	else
	{
		cout<<"不能构成三角形"<<endl;
	}
	
	return 0;
}


void Triangle::setA(double x)//设置a的值
{
	a = x;
}
	
void Triangle::setB(double y)//设置b的值
{
	b = y;
}

void Triangle::setC(double z)//设置c的值
{
	c = z;
}

double Triangle::getA(void)//得到a的值
{
	return a;
}

double Triangle::getB(void)//得到b的值
{
	return b;
}

double Triangle::getC(void)//得到c的值
{
	return c;
}

bool Triangle::isTriangle(void)//判断三边能否构成三角形
{
	if(a<=0 || b<=0 || c<=0 || (a+b<=c) || (a-b>=c))
	{
		return false;
	}
	else
	{
		return true;
	}
}

double Triangle::Perimeter(void)//计算三角形的周长
{
	double sum = a + b + c;
	
	return sum;
}

double Triangle::Area(void)//计算并返回三角形的面积
{
	//使用海伦公式计算三角形的面积
	double p = (a + b + c) / 2;

	double q = p*(p-a)*(p-b)*(p-c);

	double s = sqrt(q);

	return s;
}


执行结果: 当输入 3 4 5时


当两边之和小于第三边时


当两边之差大于第三边时


当三边中有一边是负数时