1-7 C++类&友元函数-三角形类

本文介绍了一个名为Triangle的类,包含构造函数、IsTrig方法判断是否为有效三角形、Area方法计算三角形面积,以及友元函数SumArea用于计算并输出两个三角形面积之和。
摘要由CSDN通过智能技术生成

题目

设计一个三角形类 Triangle,给定三角形的三条边长 x、y、z,成员函数 IsTrig()用 来判断是否是三角形,定义私有的求三角形面积的成员函数 Area()。类的友元函数 SumArea()用于计算并输出两个三角形面积之和,若不是合法三角形则输出“error”, 在主函数中测试 SumArea()函数。

代码

head.h
class Triangle
{
	public:
		bool IsTrig();
		Triangle(float,float,float);
		friend float SumArea(Triangle,Triangle);//友元函数
	private:
		float x,y,z;
		float Area();
};
head.cpp
#include"head.h"
#include<cmath>
Triangle::Triangle(float a,float b,float c)//构造函数
{
	x=a;y=b;z=c;
}
bool Triangle::IsTrig()//判断是三角形吗?
{
	if(x+y<=z) return 0;
	if(z+y<=x) return 0;
	if(z+x<=y) return 0;
	else return 1;
}
float Triangle::Area()//算面积,海伦公式
{
	float p = (x+y+z)/2;
	return sqrt(p*(p-x)*(p-y)*(p-z));
}
float SumArea(Triangle a,Triangle b)//友元函数
{
	return a.Area()+b.Area();	
}
main.cpp
#include<iostream>
#include"head.h"
using namespace std;
int main()
{
	float m1,m2,m3,n1,n2,n3;
	cout << "请输入第一个三角形的三边长"<<endl;
	cin >> m1>>m2>>m3;
	cout << "请输入第二个三角形的三边长"<<endl;
	cin >> n1>>n2>>n3;
	
	Triangle t1(m1,m2,m3);
	Triangle t2(n1,n2,n3);
	bool jud1 = t1.IsTrig();
	bool jud2 = t2.IsTrig();
	
	if(jud1 == 0 ||jud2 == 0)//判断是否是三角形
	{
		cout << "error"<<endl;
		goto tt;
	}
	else//计算面积和
	{
		float sum = SumArea(t1,t2);
		cout << sum<<endl;
	}
tt:	return 0;
}

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值