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

Define, implement and test a Complex class, which has: (a) At least two construc

ID: 3862103 • Letter: D

Question

Define, implement and test a Complex class, which has: (a) At least two constructors. (b) A destructor. (c) Several Methods with functionality as described below: Returns real part. Returns imaginary part. Displays the number. Computes magnitude. Computes polar co-ordinates. Overloads operators +, -. * and/, with the corresponding operations. Overloads the operator ~ for complex conjugate. Overloads the operators == and != for comparison. The methods must make appropriate use of the reference variables, for arguments and return

Explanation / Answer

#include <iostream>
using namespace std;

class Complex {

   float real;
   float imag;
public:

Complex();

Complex(float r, float i);

ostream& operator<<(ostream &out,const Complex &c);
Complex operator+ (const Complex &num1, const Complex &num2);
Complex operator- (const Complex &num1, const Complex &num2);
Complex operator* (const Complex &num1, const Complex &num2);
Complex operator/ (const Complex &num1, const Complex &num2);

};


//Complex.cpp
#include "Complex.h"


Complex::Complex() //default
{
real = 0.0;
imag = 0.0
}

Complex::Complex(double r, double i)
{
real = r;
imag = i;
}

ostream& Complex::operator<< (ostream &out, const Complex &comp) {
   out << comp.real << "+" << comp.imag << "i";
   return out;
}

Complex Complex::operator+ (const Complex &num1, const Complex &num2) {
   Complex answer;

   answer.real = num1.real + num2.real;
   answer.imag = num1.imag + num2.imag;

   return answer;
}

Complex Complex::operator- (const Complex &num1, const Complex &num2) {
   Complex answer;

   answer.real = num1.real - num2.real;
   answer.imag = num1.imag - num2.imag;

   return answer;
}

Complex Complex::operator* (const Complex &num1, const Complex &num2) {
   Complex answer;

   answer.real = (num1.real * num2.real - num1.imag * num2.imag);
   answer.imag = (num1.real * num2.imag + num1.imag * num2.real);

   return answer;
}

Complex Complex::operator/ (const Complex &num1, const Complex &num2) {
   Complex answer;

   answer.real = (num1.real * num2.real + num1.imag * num2.imag) / (num2.real * num2.real + num2.imag * num2.imag);
   answer.imag = (num1.imag * num2.real - num1.real * num2.imag) / (num2.real * num2.real + num2.imag * num2.imag);

   return answer;
}

//main.cpp
#include <iostream>
#include "Complex.h"

using namespace std;

int main ()
{
   Complex a(1,2);
   Complex b(2,4);
   Complex sum = a+b;
   Complex min = a-b;
   Complex mul = a*b;
   Complex div = a/b;
  
   cout<<"Num 1 is "<<a;
   cout<<"Num 2 is "<<b;
   cout<<"Sum of is"<<sum<<endl;
   cout<<"Substraction is"<<min<<endl;
   cout<<"Multiplication is"<<mul<<endl;
   cout<<"Division is"<<div<<endl;

   return 0;
}

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