类的组合
程序代码
#include <iostream>
#include <cmath>
using namespace std;
//点类的声明与定义
class Point
{
int x,y;
public:
Point(int xx=0,int yy=0);
Point(Point &a);
void set(int,int);
void get(int &,int &);
};
Point::Point(int xx,int yy)
{
x=xx;
y=yy;
}
Point::Point(Point &a)
{
x=a.x;
y=a.y;
}
void Point::set(int a,int b)
{
x=a;
y=b;
}
void Point::get(int &a,int &b)
{
a=x;
b=y;
}
///
//三角形类的声明与定义
class Triangle
{
Point p1,p2,p3;
public:
Triangle(int x1=0,int y1=0,int x2=1,int y2=1,int x3=0,int y3=1);
Triangle(Point &t1,Point &t2,Point &t3);
void set_Point1(int,int);
void set_Point2(int,int);
void set_Point3(Point &t);
void get_Point1(int *xx,int *yy);
void get_Point2(int &a,int &b);
void get_Point3(Point &a);
void show_triangle();
};
Triangle::Triangle(int x1,int y1,int x2,int y2,int x3,int y3)
{
p1.set(x1,y1);
p2.set(x2,y2);
p3.set(x3,y3);
}
Triangle::Triangle(Point &t1,Point &t2,Point &t3)
{
p1=t1;
p2=t2;
p3=t3;
}
void Triangle::set_Point1(int a,int b)
{
p1.set(a,b);
}
void Triangle::set_Point2(int c,int d)
{
p2.set(c,d);
}
void Triangle::set_Point3(Point &point)
{
p3=point;
}
void Triangle::show_triangle()
{
int xx1,yy1,xx2,yy2,xx3,yy3;
p1.get(xx1,yy1);
cout<<"p1:"<<"["<<xx1<<","<<yy1<<"]"<<endl;
p2.get(xx2,yy2);
cout<<"p2:"<<"["<<xx2<<","<<yy2<<"]"<<endl;
p3.get(xx3,yy3);
cout<<"p3:"<<"["<<xx3<<","<<yy3<<"]"<<endl;
float length1,length2,length3,sum_length;
length1=sqrt(pow(xx2-xx1,2)+pow(yy2-yy1,2));
length2=sqrt(pow(xx3-xx2,2)+pow(yy3-yy2,2));
length3=sqrt(pow(xx3-xx1,2)+pow(yy3-yy1,2));
sum_length=length1+length2+length3;
cout<<"三角形周长为:"<<sum_length<<endl;
float area,s;
s=sum_length/2;
area=sqrt(s*(s-length1)*(s-length2)*(length3));
cout<<"三角形面积为:"<<area<<endl;
}
int main()
{
Point p11(1,2),p22(2,4),p33(4,3);
Triangle triangle1(p11,p22,p33);
triangle1.show_triangle();
return 0;
}