Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In this exercise, you will define a complex data type complx, to manipulate comp

ID: 3545125 • Letter: I

Question


In this exercise, you will define a complex data type complx, to manipulate complex numbers: a + bi. In complx class where you can declare complex data, input/output complex data and check if two complex numbers equal each other or not using the same operators used for other built-in data types.


This is what I have so far:


// Complx.h

#include <iostream>

#include <fstream>

using namespace std;

class complx

{

      double real,

             imag;

public:

      complx( double real = 0., double imag = 0.); // constructor

      ~complx();                      // destrcutor

      friend int operator== (const complx&, const complx&);

       //Sets private data members.

     void Set(double new_real, double new_imaginary) {

     real = new_real;

     imag = new_imaginary;

     }

     //Returns the real part of the complex number.

          double Real() {

          return real;

     }

     //Returns the imaginary part of the complex number.

     double Imaginary() {

     return imag;

     }

};

extern ifstream &operator >> ( ifstream &in_file, complx &number );

extern istream &operator >> ( istream &in_file, complx &number );

extern ostream &operator << ( ostream &out_file, complx &number );

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

// Complx.cpp

#include "complx.h"

complx::~complx() {

}

ostream &operator<< ( ostream &out_file, complx &number )

{

/*  TEST

out_file <<

if(number.new_imaginary < 0)

{

out_file << "-";

}else{

out_file << "+";

}

out_file << number.new_imaginary << "i";

return out_file;

*/

}

extern ifstream &operator >> ( ifstream &in_file, complx &number )

{

     double re, is;

     char ch;

     if (in_file >> ch && ch == '('&& in_file >> re >> ch && ch == ','

          && in_file >> is >> ch && ch == ')')

              number.Set(re,is);

     else cerr << "Finish the input"<<endl;

     return in_file;

}

extern istream &operator >> ( istream &in_file, complx &number )

{

/*  TEST

in_file >> number.new_real >> number.new_imaginary;

return in_file;

*/

}

// define constructor

complx::complx( double r, double i )

{

      real = r; imag = i;

}

int operator== (const complx& a, const complx& b){

return (a.r*b.i == b.r*a.i);

}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//call_complx.cpp

#include "complx.h"

int main()

{

        int i=0;

          complx c1, c2(3,5),in[5];

          cout<< "Please input a complex number in the format of (a,b) - " << endl;

         while ((cin  >> in[i])&& (i<4)){

              cout << in[i] << endl;

              i++;

        }      

        if (c1 == in[0] )        

          cout << c1 << " equals to " << in[0] << endl;

        else

           cout << c1 << " not equal to " << in[0]<< endl;

        if (in[1] == in[2] )          

          cout << in[1] << " equals to " << in[2] << endl;

        else

           cout << in[1] << " not equal to " << in[2]<< endl;        

       

        char c; cin >> c;

          return 0;   //successful termination

}


SAMPLE OUTPUT:

Please input a complex number in the format of (a,b) -

(2,3)

(2,3)

(6,7)

(6,7)

(6,7)

(6,7)

(4,5)

(4,5)

(2,3)

(0,0) not equal to (2,3)

(6,7) equals to (6,7)

Explanation / Answer

answer


Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote