用C++ 定义一个三角形类(Triangle)。属性为三条边,计算周长和面积。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C++ 定义一个三角形类(Triangle)。属性为三条边,计算周长和面积。相关的知识,希望对你有一定的参考价值。

提供一下思路,具体代码需要用到“两点间的距离公式”和“点到直线的距离公式”,这些方程很久没用了,忘了,所以就提供一下思想:

首先,c++基本数据类型中没有“边”这个东东,如果LZ一定要用“边”做属性的话那最好是定义一个“边类”,class Side; 然后用类的组合来定义三角形类。

边:
由两个端点确定,所以边中的成员要包含两端点的坐标,由于端点没有必要用到函数,所以为了节约,用个2*2的数组Point[2][2]来储存端点坐标即可
需要包含的函数:1.构造函数,传入4个浮点型数据,依次赋值给数组
2.拷贝构造函数,可能会用到
3.计算长度函数,返回浮点型,由先前提到的“两点间的距离公式”辅助
ps:构造函数中没有申请新的内存空间,析构函数可以不要

三角形:
由三个边类的实例作为成员;
包含的函数:1.构造函数,传入6个浮点型数据依次代表3顶点的两坐标,分别调用不同的两个点来构造边,并且把这些“边”依次赋值给三个“成员边”
2.拷贝构造函数,可能会用到
3.计算周长,这个很容易了,分别调用三个“成员边”的长度计算函数,把3个返回值加起来就搞定了
4.计算面积,这个需要用到“点到直线的距离公式”来辅助,任选取一条边做底边,1/2(底*高),搞定
ps:同边类,构造函数没有分配新的内存空间,所以可以不要析构函数
参考技术A #include<iostream>
#include<string>
#include<math.h>
using namespace std;
class Triangle
int a,b,c;
public:
double Area()
double s=(a+b+c)/2;
return sqrt(s*(s-a)*(s-b)*(s-c));

;
int Perimeter()
return a+b+c;

void Input()
cin>>a>>b>>c;

;
void main()
Triangle t1;
t1.Input();
cout<<t1.Area()<<" "<<t1.Perimeter();

自己写的 可运行
参考技术B #include<iostream>
#include<Math.h> //数学函数

using namespace std;

class Triangle

private: //三边为属性
double a;
double b;
double c;
public:
Triangle(double newA,double newB,double newC)

a=newA;
b=newB;
c=newC;

double OpPerimete() //计算周长

double perimete=a+b+c;
return perimete;


double OpArea() //计算面积

double p=(a+b+c)/2;
double area=sqrt(p*(p-a)*(p-b)*(p-c)); //海伦公式
return area;


;

void main()

double a,b,c;
cin>>a>>b>>c;
if(((a+b)>c)&&((a+c)>b)&&(b+c)>a) //能不能构成三角形

cout<<"It is't a Triangle"<<endl;

else //能构成三角形就输出周长和面积

Triangle *t=new Triangle(a,b,c);
cout<<"Perimete="<<t->OpPerimete()<<endl;
cout<<"Area="<<t->OpArea()<<endl;

JAVA 三角形类Triangle(GeometricObject继承)

package triangletest; import java.util.*; public class TriangleTest{ public static void main(String args[]){ Scanner ss=new Scanner(System.in); System.out.println("please input there sides and color of triangle "); double a=ss.nextDouble(); double b=ss.nextDouble(); double c=ss.nextDouble(); String co=ss.nextLine(); System.out.println("please input a boolean date to indicate this object if be filled"); boolean k=ss.nextBoolean(); Triangle cs=new Triangle(a,b,c); cs.setColor(co); cs.setFilled(k); System.out.println(cs.toString()); System.out.println("the area = "+cs.getArea()); System.out.println("the Perimeter = "+cs.getPerimeter()); System.out.println("the object filled is "+cs.isFilled()); } } class Triangle extends GeometricObject{ double side1=1.0; double side2=1.0; double side3=1.0; public Triangle(){}; public Triangle(double side1,double side2,double side3){ this.side1=side1; this.side2=side2; this.side3=side3; } public double getSide1(){ return side1; } public double getSide2(){ return side2; } public double getSide3(){ return side3; } public double getArea(){ double s=(side1+side2+side3)/2; return Math.sqrt(s*(s-side1)*(s-side1)*(s-side1)); } public double getPerimeter(){ return side1+side2+side3; } public String toString(){ return "Triangle: side1= "+side1+"\nside2= "+side2+"\nside3= "+side3; } } class GeometricObject{ private String color; private boolean filled; private java.util.Date dateCreated; public GeometricObject(){}; public GeometricObject(String color,boolean filled){ this.color=color; this.filled=filled; } public String getColor(){ return color; } public void setColor(String color){ this.color=color; } public boolean isFilled(){ return filled; } public void setFilled(boolean filled){ this.filled=filled; } public java.util.Date getDateCreated(){ return dateCreated; } public String toString(){ return "this object‘s color is "+color+"\nthis object filled "+filled; } }

以上是关于用C++ 定义一个三角形类(Triangle)。属性为三条边,计算周长和面积。的主要内容,如果未能解决你的问题,请参考以下文章

337用三角形triangle方形square圆形circle等“基本图形“来表示任意的 图形 如菱形 半圆

java编程求三角形面积

java编程三角形(Triangle类)继承

JAVA 三角形类Triangle(GeometricObject继承)

Android面试收集录 OpenGL ES

三角形,C++ 构造,计算角度的问题