实验题目录:点击打开链接
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;
}