2024/5/8作业

#include <iostream>
#include <cmath>
using namespace std;

class Line
{
public:

	Line(int a, int b, int c) :a(a), b(b), c(c)
	{

	}
	Line()
	{
		this->a = 0;
		this->b = 0;
		this->c = 0;
	}
	void set(int a,int b,int c)
	{
		this->a = a;
		this->b = b;
		this->c = c;
	}
	void display()
	{
		cout << this->a << "x" << "+" << this->b << "y" << "+" << this->c << "=0" << endl;
	}


	friend void get_Point(Line& line1, Line& line2);
private:
	int a;
	int b;
	int c;

};


void get_Point(Line& line1, Line& line2)
{
	int x;
	int y;

	if ((line1.a * line2.b == line1.b * line2.a) && (line1.a * line2.c == line2.a * line1.c))
	{
		throw 10;
	}

	if ((line1.a * line2.b == line1.b * line2.a) && (line1.a * line2.c != line2.a * line1.c))
	{
		throw 'a';
	}

	x = (line1.b * line2.c - line2.b * line1.c) / (line2.b * line1.a - line1.b * line2.a);
	y = (line1.a * line2.c - line2.a * line1.c) / (line2.a * line1.b - line1.a * line2.b);

	if (abs(x)>= pow(10, 8) && abs(y) >= pow(10, 8))
	{
		throw "hello";
	}

	cout << "交点坐标" << "(" << x << "," << y << ")" << endl;
}


int main()
{
	Line line1;
	line1.set(1, 2, 3);
	line1.display();
	Line line2(2, 4, 6);
	line2.display();
	try
	{
		get_Point(line1,line2);
	}
	catch (int)
	{
		cout << "两直线重合" << endl;
	}
	catch (char)
	{
		cout << "两直线平行" << endl;
	}
	catch (const char*)
	{
		cout << "x,y绝对值大于10的8次方" << endl;
	}
	return 0;
}

运行结果

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值