C++定义一个点类和三角类,演示构造函数和复制构造函数
//在线等,通过可追加分#include<iostream>#include<math.h>usingnamespacestd;classPoint{intx,y;pub...
//在线等,通过可追加分
#include <iostream>
#include <math.h>
using namespace std;
class Point
{
int x,y;
public:
Point(int=0,int =0);
Point(Point &);
void dispaly() { cout<<"x="<<x<<" y="<<y<<endl;}
~Point(){cout<<"撤销一个点对象: "; display(); }
double distance(Point &);
int getX() { return x; }
int getY() { return y; }
};
Point ::Point(int a,int b):x(a),y(b)
{
cout<<"已知坐标创建了一个点对象";dispay();
}
Point ::Point(int &p):x(p.x),y(p.y)
{
cout<<"已知点对象复制创建了一个新的点对象";display();
}
inline double Point ::distance(Point &p)
{
return sqrt((double)((x-p.x)*(x-p.x)-(y-p.y)*(y-p.y)));
}
class Triangle
{//三角形类Triangle
Point p1,p2,p3; //三角形的三个点
public:
Triangle(Point,Point,Point); //已知三点构造一个三角形对象,并显示3顶点坐标
Triangle(Triangle &); //已知三角形对象复制构造一个三角形对象,并显示3顶点坐标
double area();//求三角形面积,设三角形3条边长为a、b和c。则三角形面积为sqrt(s*(s-a)*(s-b)*(s-c))
~Triangle(){cout<<"删除了一个三角形"<<endl;}
};
Triangle::triangle(Point a,Point b,Point c)
{//编写程序
}
Triangle::Triangle(Triangle &c)
{//编写程序
}
double Triangle::area()
{//编写程序
}
void main()
{
Point a(12,45);Point b(7,8);Point c(15,17);
cout<<"a和b之间的距离是:"<<a.distance(b)<<endl;
Triangle t(a,b,c);
Triangle t1(t);
cout<<"三角形t1的面积是:"<<t1.area()<<endl;
} 展开
#include <iostream>
#include <math.h>
using namespace std;
class Point
{
int x,y;
public:
Point(int=0,int =0);
Point(Point &);
void dispaly() { cout<<"x="<<x<<" y="<<y<<endl;}
~Point(){cout<<"撤销一个点对象: "; display(); }
double distance(Point &);
int getX() { return x; }
int getY() { return y; }
};
Point ::Point(int a,int b):x(a),y(b)
{
cout<<"已知坐标创建了一个点对象";dispay();
}
Point ::Point(int &p):x(p.x),y(p.y)
{
cout<<"已知点对象复制创建了一个新的点对象";display();
}
inline double Point ::distance(Point &p)
{
return sqrt((double)((x-p.x)*(x-p.x)-(y-p.y)*(y-p.y)));
}
class Triangle
{//三角形类Triangle
Point p1,p2,p3; //三角形的三个点
public:
Triangle(Point,Point,Point); //已知三点构造一个三角形对象,并显示3顶点坐标
Triangle(Triangle &); //已知三角形对象复制构造一个三角形对象,并显示3顶点坐标
double area();//求三角形面积,设三角形3条边长为a、b和c。则三角形面积为sqrt(s*(s-a)*(s-b)*(s-c))
~Triangle(){cout<<"删除了一个三角形"<<endl;}
};
Triangle::triangle(Point a,Point b,Point c)
{//编写程序
}
Triangle::Triangle(Triangle &c)
{//编写程序
}
double Triangle::area()
{//编写程序
}
void main()
{
Point a(12,45);Point b(7,8);Point c(15,17);
cout<<"a和b之间的距离是:"<<a.distance(b)<<endl;
Triangle t(a,b,c);
Triangle t1(t);
cout<<"三角形t1的面积是:"<<t1.area()<<endl;
} 展开
1个回答
展开全部
你的代码问题不大,有些笔误。公式的话好像也有些小错误,结合网上搜的,做了下修改,你看下对不对:
#include <iostream>
#include <math.h>
using namespace std;
class Point
{
int x, y;
public:
Point(int = 0, int = 0);
Point(Point &);
void display() { cout << "x=" << x << " y=" << y << endl; }//函数名做了修改
~Point(){ cout << "撤销一个点对象: "; display(); }
double distance(Point &);
int getX() { return x; }
int getY() { return y; }
};
Point::Point(int a, int b) :x(a), y(b)
{
cout << "已知坐标创建了一个点对象"; display();
}
Point::Point(Point &p) : x(p.x), y(p.y)//实参类型做了修改,另外,最好加const修饰
{
cout << "已知点对象复制创建了一个新的点对象"; display();
}
inline double Point::distance(Point &p)
{
return sqrt((double)((x - p.x)*(x - p.x) + (y - p.y)*(y - p.y)));//这公式应该是 + 把
}
class Triangle
{//三角形类Triangle
Point p1, p2, p3; //三角形的三个点
public:
Triangle(Point, Point, Point); //已知三点构造一个三角形对象,并显示3顶点坐标
Triangle(Triangle &); //已知三角形对象复制构造一个三角形对象,并显示3顶点坐标
double area();//求三角形面积,设三角形3条边长为a、b和c。则三角形面积为sqrt(s*(s-a)*(s-b)*(s-c))//这s是啥?
~Triangle(){ cout << "删除了一个三角形" << endl; }
};
Triangle::Triangle(Point a, Point b, Point c)
:p1(a), p2(b), p3(c)//add 初始化列表
{//编写程序
}
Triangle::Triangle(Triangle &c)//最好加const
: p1(c.p1), p2(c.p2), p3(c.p3)
{//编写程序
}
double Triangle::area()
{//编写程序
double a = p1.distance(p2);
double b = p1.distance(p3);
double c = p2.distance(p3);
double s = 1.0 / 2.0 * (a + b + c);//网上搜的不知道对不对
double sArea = sqrt(s*(s - a)*(s - b)*(s - c));
return sArea;
}
void main()
{
Point a(12, 45); Point b(7, 8); Point c(15, 17);
cout << "a和b之间的距离是:" << a.distance(b) << endl;
Triangle t(a, b, c);
Triangle t1(t);
cout << "三角形t1的面积是:" << t1.area() << endl;
}
追问
公司上机程序不可以做任何修改,还是谢谢你的解答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询