类与对象 实验二 期末回顾

实验题目录:点击打开链接

1.第一题

表示X-Y平面直角坐标系上的点,编写程序,顺序读入一个四边形的4个顶点坐标,判别由这个顶点的连线构成的图形是否为正方形、矩形或其它四边形。

源代码:

#include<bits/stdc++.h>
using namespace std;
class Point
{
	double  x,y;
public:
	double getx();
	double gety();
	friend istream &operator >>(istream&in,Point &p)
	{
		cout<<"请输入横坐标:";
		in>>p.x;
		cout<<"请输入纵坐标:";
		in>>p.y;
	}	
};
double Point::getx()
{
	return x;
}
double Point::gety()
{
	return y;
}
double d( Point &p1, Point &p2)
{
	
	return sqrt(pow(p1.getx()-p2.getx(),2)+pow(p1.gety()-p2.gety(),2));
}
int main()
{
	Point p[4];
	for(int i=0;i<4;i++)
	{
		cout<<"请输入"<<i+1<<"点坐标"<<endl;
		cin>>p[i];
	}
	 //判断距离是否为0,系统认为差值小于一个很小很小的数(这里为1e-8)时,差值即为0
	if(fabs(d(p[0],p[1])-d(p[2],p[3]))<=1e-8&&fabs(d(p[0],p[3])-d(p[1],p[2]))<=1e-8&&fabs(d(p[0],p[2])-d(p[1],p[3]))<=1e-8)
		  
		if(fabs(d(p[0],p[1])-d(p[1],p[2])<=1e-8))
		     cout<<"该四边形为正方形"<<endl;
		else 
			 cout<<"该四边形为长方形"<<endl;
	else 
	    cout<<"该四边形为其他四边形"<<endl;
	return 0;
}

2.第二题

  复数的运算

#include<bits/stdc++.h>
using namespace std;
class Complex
{
	double  re,im;
public:
	double getre();
	double getim();
	friend istream &operator >>(istream&in,Complex &p)
	{
		cout<<"输入复数的实部和虚部:"<<endl;;
		in>>p.re;
		in>>p.im;
		return in;
	}
	friend ostream &operator <<(ostream&out,Complex &p)
	{
	 out<<"c="<<p.re;
	 out<<setiosflags(ios::showpos);//显示正负符号
     out<<p.im << "i" << endl;
     return out;
	}
	Complex operator +(Complex &b)
	{
		Complex c;
		c.re=re+b.re;
		c.im=im+b.im;
		return c;
	}
	Complex operator -(Complex &b)
	{
		Complex c;
		c.re=re-b.re;
		c.im=im-b.im;
		return c;
	}	
	Complex operator *(Complex &b)
	{
		Complex c;
		c.re=re*b.re-im*b.im;
		c.im=re*b.im+im*b.re;
		return c;
	}
	Complex operator /(Complex &b)
	{
		Complex c;
		c.re=(re*b.re+im*b.im)/(b.re*b.re+b.im*b.im);
		c.im=(im*b.re-re*b.im)/(b.re*b.re+b.im*b.im);
		return c;
	}		
};
double Complex::getre()
{
	return re;
}
double Complex::getim()
{
	return im;
}
int main()
{
	Complex a,b,c;
	
	cin>>a;
	cin>>b;
	char ch;
	cout<<"请输入操作符进行运算,输出‘#’退出程序"<<endl;
	while(cin>>ch)
	{
		switch(ch)
		{
			case '+':c=a+b;cout<<c<<endl;break;
			case '-':c=a-b;cout<<c<<endl;break;
		    case '*':c=a*b;cout<<c<<endl;break;
		    case '/':c=a/b;cout<<c<<endl;break;
			case '#':break;
			default:cout<<"输入错误,请重新输入"<<endl;
		}
		if(ch=='#') break;
		cout<<"请输入操作符进行运算"<<endl;
	}
	
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/sdz20172133/article/details/80863390
今日推荐