c++基础编程题两道,谢谢,最好有注释,欢迎加qq讨论

定义一个表示点的结构类型Point和一个由方程y = ax + b确定的直线类Line。结构类型Point有x和y两个成员,分别表示点的横坐标和纵坐标。Line类有两个数据成员a和b,分别表示直线方程中的系数。Line类有一个成员函数print用于显示直线方程;友员函数setPoint(Line &l1,Line &l2)用于求两条直线的交点。在main函数中,建立两个直线对象,分别调用print函数显示两条直线的方程,并调用函数setPoint求这两条直线的交点。
用类成员结构修改上题的程序,使其实现相同的功能。定义Point类和Line类,表示点和线;定义setPoint类,包含2个Line类成员和1个表示直线交点的Point成员,并定义类中求直线交点的成员函数。编写每个类相应的成员函数和测试用的主函数。

#include"iostream"
using namespace std;
class Point
{
private:
double x,y;
public:
Point(double x1,double y1);
~Point(){}
void PrintCoordinate();
};
Point::Point(double x1,double y1)
{
x=x1;
y=y1;
}
void Point::PrintCoordinate()
{
cout<<"Coordinate: x= "<<x<<" y= "<<y<<endl;
}
class Line
{
private:
double a,b;
public:
Line(double a1,double b1);
~Line(){}
void Print();
friend void SetPoint(Line &l1,Line &l2);
};
Line::Line(double a1,double b1)
{
a=a1;
b=b1;
}
void Line::Print()
{
cout<<"y="<<a<<"x+"<<b<<endl;
}
void SetPoint(Line &l1,Line &l2)
{
double x,y;
if(l1.a==l2.a||l1.a==-l2.a)
{
cout<<"两直线无交点!"<<endl;
}
else
{
x=l1.a*(l1.b-l2.b)/(l2.a-l1.a)+l1.b;
y=l1.a*x+l1.b;
Point p(x,y);
p.PrintCoordinate();
}
}
int main()
{
Line l1(5,4),l2(3,7);
l1.Print();
l2.Print();
SetPoint(l1,l2);
system("pause");
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答