贵州大学面向对象程序设计(C++)第一次作业三角形求面积-创新互联

题目描述

题目描述
设计一个Point类,有两个私有的数据成员x和y,存储横坐标和纵坐标,并为该类定义各种构造函数。
再设计一个三角形类Triangle,该类有3个Point类的私有对象成员,分别代表三角形的三个顶点。
为该类定义各种构造函数。
将三角形类声明为Point类的友元类,在三角型类中定义一个成员函数double getArea(); ,用来求三角形的面积。
在主函数中创建三角形对象,计算并输出面积。

公司主营业务:做网站、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出瀍河免费做网站回馈大家。

输入描述
输入三行,每行输入一个点的横坐标、纵坐标

输出描述
输出三角形的面积

提示
程序的开始部分(必要的头文件包含和using namespace std;)和main函数已经写好了,你只需要设计Point类和Triangle类。(只需要提交这部分代码)


解读

涉及友元相关内容

源代码
​

#include#includeusing namespace std;

class Point 
{
	friend class Triangle;


public:
	Point() :x(0), y(0) {}   //默认构造函数

	Point(double x, double y) :x(x), y(y) {}   //带参构造函数

	Point(Point& p)   //拷贝构造函数
	{
		x = p.x;
		y = p.y;
	}

	~Point() {};   //析构函数

private:
	double x, y;

};

class Triangle 
{
public:
	Triangle(Point a, Point b, Point c)   //带参构造函数
	{
		p1 = a;
		p2 = b;
		p3 = c;
	}

	Triangle(Triangle& t)   //拷贝构造函数
	{
		p1 = t.p1;
		p2 = t.p2;
		p3 = t.p3;
	}

	~Triangle() {};   //析构函数

	double getArea();   //成员函数

private:
	Point p1, p2, p3;
};

double Triangle::getArea()
{
	double ab = sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y));
	double ac = sqrt((p3.x - p1.x) * (p3.x - p1.x) + (p3.y - p1.y) * (p3.y - p1.y));
	double bc = sqrt((p3.x - p2.x) * (p3.x - p2.x) + (p3.y - p2.y) * (p3.y - p2.y));
	double p = (ab + bc + ac) / 2;
	double s = sqrt(p * (p - ab) * (p - ac) * (p - bc));
	return s;
}

int main()
{
	double x, y;
	cin >>x >>y;
	Point a(x, y);
	cin >>x >>y;
	Point b(x, y);
	cin >>x >>y;
	Point c(x, y);
	Triangle t(a, b, c);
	cout<< t.getArea()<< endl;
	return 0;
}

[点击并拖拽以移动]
​

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

当前文章:贵州大学面向对象程序设计(C++)第一次作业三角形求面积-创新互联
文章源于:https://www.cdcxhl.com/article40/diijeo.html

成都网站建设公司_创新互联,为您提供动态网站建站公司Google外贸建站网站改版网站设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名