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 com

ID: 663789 • 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.

You need to partially implement a few functions (in red) in class complx. This exercise is a supplement and preparation to the Assignment.

// 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 );

The following code implements two functions in the class.  You need to implement the rest of the operators (in red …).   You may refer to the sample program on class complx in week 5 lectures Objects and Classes and the solutions to question 5 in Quiz 3 on how to implement functions/operators related to class complx.  For the creation and compilation of multiple source file project in Dev-C++, please refer to Separate Compilation in Module 6.

// Complx.cpp

#include "complx.h"

complx::~complx() {

}

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

{

}

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 )

{

}

// define constructor

complx::complx( double r, double i )

{

      real = r; imag = i;

}

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

}



Submission

1.    Run the following main program using the input sequence

(2,3) (6,7) (6,7) (4,5) (2,3)

2.    Capture the screen output using Ctrl+Alt+PrintScreen and Paste and save the screen image into a Word file output.doc.

//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

}

This is a sample output screen for the input and the output.

Package source files (complx.h, complx.cpp, call_complx.cpp and output.doc) into exer4.zip and upload it online usingAssignments menu.

// 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 );

Explanation / Answer

int operator== (const complx& a, const complx& a){
if( a.real == b.real && a.imag==b.imag)
return 1;
else
return 0;
}

ostream &operator << ( ostream &out_file, complx &number ){
out_file<<number.real<<" i"<<number.imag<<endl;
return out_file
}

extern istream &operator >> ( istream &in_file, complx &number ){
in_file>> &number.real >> &number.imag;
return in_file;
}

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