一、要求:
已知平面直角坐标系中两点(x1,y1)和(x2,y2)之间的距离公式为
,三角形面积的计算公式为。其中,a,b,c为三角形的三边长,s=(1/2)(a+b+c).是定义一个描述平面直角坐标系上点的类Point,利用友元函数求坐标系中由三个点构成的三角形面积。具体要求如下:
(1)私有数据成员
float x,y;坐标系中的一个点坐标。
(2)公有数据成员
Point(double ,double);构造函数,初始化成员,参数的缺省值为0。
void print();输出点的坐标,格式为(x,y)。
友元函数
double distance(Point,Point);计算两点之间的距离。
double area(Point,Point,Point);计算由参数构成的三角形的面积,假设给定的三个点能够构成三角形。
(3)在主函数中完成对该类的测试。定义三个类的对象p1,p2,p3,这三个点的坐标分别为(5,10),(1,67),(50,-25)。输入这三点坐标,计算并输出由这三个点构成的三角形的面积。程序正确的输出结果为:
三角形的顶点坐标为:(5,10)(1,67)(50,-25)三角形的面积为:1212.5
二、代码:
// Point.h
#ifndef _POINT_H
#define _POINT_H
#include <math.h>
class Point
{
private:
float x,y;
public:
Point(double a, double b){x = a; y = b;}
void print();
friend double pointDistance(Point p1, Point p2);
friend double area(Point p1, Point p2, Point p3);
};
#endif
// Point.cpp
#include <iostream>
using namespace std;
#include "Point.h"
void Point:: print()
{
cout<<"("<<x<<","<<y<<")"<<" ";
}
double pointDistance(Point p1, Point p2)
{
double distance = 0;
distance = sqrt((p1.y-p2.y)*(p1.y-p2.y)+(p1.x-p2.x)*(p1.x-p2.x));
return distance;
}
double area(Point p1, Point p2, Point p3)
{
double area = 0;
double a = 0, b = 0, c = 0, s = 0;
a = pointDistance(p1, p2);
b = pointDistance(p2, p3);
c = pointDistance(p1, p3);
s = 0.5*(a+b+c);
area = sqrt(s*(s-a)*(s-b)*(s-c));
return area;
}
// PointMain.cpp
#include <iostream>
using namespace std;
#include "Point.h"
int main()
{
Point p1(5, 10);
Point p2(1, 67);
Point p3(50, -25);
cout<<"三角形顶点坐标为:";
p1.print();
p2.print();
p3.print();
cout<<endl;
cout<<"三角形面积为:";
cout<<area(p1, p2, p3)<<endl;
return 0;
}
三、运行结果:
分享到:
相关推荐
通过输入任意三点空间坐标自动判断三点是否在一条直线上,若不在则求三点外接圆的圆心位置和半径,计算精度可调节。解决了“知三点求圆心半径”程序对于某些点无法计算的缺陷。
C++ ,VS2010平台编辑,下载后可以直接使用,
早年写的面试题,已知圆上任意三点求圆心半径 c++实现,有兴趣可以一观! 不考虑特殊情况(代码中有用到除法 忽略分母不能为0情况)
根据三边求三角形面积,C++代码,cpp文件
三角形面积 C++程序 海伦公式
c++例程:输入三个边长,用三边求任意三角形的面积
一道C++考试试题: 编写一个程序,输入三角形的三条边的边长,求三角形的面积。 编程环境:vs2010
运用虚函数,通过继承,能求出基类三角形,圆形,矩形的周长与面积
c++多文件结构实现对三角形的形状判断和面积周长计算 ,c++多文件结构的一个例子,
#include using namespace std; #include using namespace std; double a ,b , c, C, P, M, S;
C++三点gauss公式求积分的小程序,给初学者参谋参谋
#include using namespace std; void main() { ... //a,b为直角三角形的直角边,s为面积 cout 请输入直角边的值:"; cin >> a >> b; s = a * b * 1 / 2; cout 直角三角形的面积为:" ; }
/* 求三角形面积*/ /* 秦九昭公式 三角形三边长分别为abc,面积为S,周长为M S=根号下m*(m-a)*(m-b)*(m-c) */
用c++语言编写的小程序,判断3能否组成三角形,能的话求出面积
三角形的两边及其夹角求面积.cpp
已知三个点的坐标,某未知点与三个已知点的距离,求未知点的坐标。利用三点的其距离,构成圆形的交点,是唯一一点,就是要求的未知点。
三角形求第三边,C++实验。(1) 已知任意三角形的两边长度为a和b夹角 ,计算第3边c的长度。
写一个类实现计算三角形的面积,知道三角形的三边,且三边的长可能是浮点,可能是整数
三角形的种类与面积 基本要求: 定义点(point)类,包含点的坐标x和y;通过继承点类派生出线段(line)类;通过线段(line)类的组合定义三角形(triangle )类。 功能要求: 1、设计菜单实现功能选择; 2、输入...
抽象出一个基类Base,在其中说明一个虚函数,用来求面积,并利用但界面和多定义版本设计求各个图形面积的方法。 了解虚函数对多态性的支持。 掌握虚函数和纯虚函数的概念。 理解静态多态性和动态多态性,学习使用虚...