请教高手,C++作业,急!

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:16:27
设计一个平面直线类Line,采用友元函数判断两条直线是平行还是相交,并采用友元函数在相交时的坐标。再编写一个主函数进行测试。

#include<iostream.h>
class Line{
double a,b,c;
static int n;
public:
Line(int x,int y,int z){
a=x;b=y;c=z;
}
friend char *IsCrossed(Line &,Line &);
friend int CrossedPosition(Line &,Line &,double &,double &);
};
int Line::n=0;
char *IsCrossed(Line &A,Line &B){
char *result;
if(A.a*B.b-A.b*B.a==0){
result="平行!";Line::n=0;
}
else {
result="相交!";Line::n=1;
}
return result;
}
int CrossedPosition(Line &A,Line &B,double &a,double&b){
if(Line::n){
a=(A.a*B.b-B.a*A.b)/(B.a*A.b-A.a*B.b);
b=(A.c*B.b-B.c*A.b)/(B.a*A.b-A.a*B.b);
return 1;}
return 0;
}
void main(){
Line A(1,3,5),B(1,6,10);
double a=0.0,b=0.0;
char *result;
result=IsCrossed(A,B);
cout<<result<<endl;
if(CrossedPosition(A,B,a,b)){
cout<<"交点"<<"("<<a