定义复数类,数据成员包括实部和虚部;成员函数有构造函数,带默认参数值(1,1)。以成员函数或友元函数的方式重载+运算符,实现两个复数相加的功能。还有一个成员函数,输出复数a+bi。
编写主程序测试复数相加,输入4个整数,分别作为两个复数的实部和虚部,如果第3个整数为-1000,则使用输入的前两个整数构造一个复数,利用默认参数构造另一个复数,并相加。最后输出两个复数之和。(2分)
方法1 友元函数
#include <iostream>
#include <cstring>

 using namespace std;

 class complex_num
  {
  public:
    complex_num(int i=1,int j=1)
    {
        r=i;c=j;
    }
    friend complex_num operator +(complex_num &a,complex_num &b)
    {
        return complex_num(a.r+b.r,a.c+b.c);
    }
    void show()
    {
        cout<<r<<'+'<<c<<'i'<<endl;
    }
 private:
    int r,c;
 };
 int main()
 {   int a,b,c,d;
     cin>>a>>b>>c>>d;
     complex_num c1(a,b),c2(c,d),c3,c4;
     if(c==-1000)
     {
         c4=c1+c3;
         c4.show();
     }

     else{
         c3=c1+c2;
     c3.show();
     }

 }
方法2 成员函数
#include <iostream>
#include <cstring>

 using namespace std;

 class complex_num
  {
  public:
    complex_num(int i=1,int j=1)
    {
        r=i;c=j;
    }
     complex_num operator +(complex_num &a)
    {
        return complex_num(a.r+r,a.c+c);
    }
    void show()
    {
        cout<<r<<'+'<<c<<'i'<<endl;
    }
 private:
    int r,c;
 };
 int main()
 {   int a,b,c,d;
     cin>>a>>b>>c>>d;
     complex_num c1(a,b),c2(c,d),c3,c4;
     if(c==-1000)
     {
         c4=c1+c3;
         c4.show();
     }

     else{
         c3=c1+c2;
     c3.show();
     }

 }
定义屏幕上的坐标点point为类类型,数据成员包括x坐标、y坐标、颜色,均为私有成员;成员函数有构造函数,带默认参数值(0,0,255),会输出提示信息“point(x,y,color)”,其中x,y,color输出实际值。还有getx和gety以及getColor函数,分别返回3个数据成员的值,析构函数中输出提示信息“point~~~”。
定义矩形类,数据成员包括左上角的坐标点(内嵌point类对象),还有矩形的长、宽;成员函数有构造函数,会输出提示信息“rect”,信息输出函数,输出矩形的x坐标、y坐标、长、宽,析构函数中输出提示信息“rect~~~”。
编写主程序,读取用户输入的x坐标、y坐标、长、宽的值,定义矩阵类对象,然后调用信息输出函数,测试类的组合应用。(3分)

#include <iostream>
#include <cstring>

 using namespace std;

class pointer{
public:
    pointer(int xx=0,int yy=0,int ccolor=255)
    {
        x=xx;y=yy;color=ccolor;
        cout<<"point("<<xx<<','<<yy<<','<<color<<')'<<endl;   }
    int getx()
    {
        return x;
    }
    int gety()
    {
        return y;
    }
    int getcolor()
    {
        return color;
    }
    ~pointer()
    {
        cout<<"point~~~"<<endl;
    }

private:
    int x,y,color;
    };

    class rec{
    public:
        rec(int xx,int yy,int ll,int ww):p1(xx,yy)
        {
            l=ll;w=ww;
             cout<<"rect"<<endl;
        }
      void  show()
        {
             cout<<p1.getx()<<','<<p1.gety()<<','<<l<<','<<w<<endl;
        }
        ~rec()
        {
            cout<<"rect~~~"<<endl;
        }
private:
     pointer p1;
     int l;
     int w;
    };
 int main()
 {   int a,b,c,d;
     cin>>a>>b>>c>>d;
     rec myrec(a,b,c,d);
     myrec.show();

 }

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐