thespeedracer38

Complex Number in C++

Jan 14th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. class Complex{
  8.     double real;
  9.     double img;
  10. public:
  11.     Complex();
  12.     Complex(double, double);
  13.     void input();
  14.     Complex* add(Complex, Complex);
  15.     Complex* add(Complex, Complex, Complex);
  16.     Complex* subtract(Complex, Complex);   
  17.     Complex* subtract(Complex, Complex, Complex);  
  18.     Complex* multiply(Complex,Complex);
  19.     Complex* multiply(Complex,Complex, Complex);
  20.     Complex* divide(Complex, Complex);
  21.     Complex* divide(Complex, Complex, Complex);
  22.     void display();
  23.     ~Complex();
  24. };
  25.  
  26. Complex::~Complex(){
  27.    
  28. }
  29.  
  30. Complex::Complex(){
  31.     real = 0.0;
  32.     img = 0.0;
  33. }
  34.  
  35. Complex::Complex(double real, double img){
  36.     this->real = real;
  37.     this->img = img;
  38. }
  39.  
  40. void Complex::input(){
  41.     cout << "Enter the real part: ";
  42.     cin >> real;
  43.     cout << "Enter the imaginary part: ";
  44.     cin >> img;
  45. }
  46.  
  47. Complex* Complex::add(Complex num1, Complex num2){
  48.     Complex *result = new Complex;
  49.     result->real = num1.real + num2.real;
  50.     result->img = num1.img + num2.img;
  51.     return result;
  52. }
  53.  
  54. Complex* Complex::add(Complex num1, Complex num2, Complex num3){
  55.     Complex *temp = add(num1, num2);
  56.     Complex sum(temp->real, temp->img);
  57.     delete temp;
  58.     return add(sum, num3);
  59. }
  60.  
  61. Complex* Complex::subtract(Complex num1, Complex num2){
  62.     Complex *result = new Complex;
  63.     result->real = num1.real - num2.real;
  64.     result->img = num1.img - num2.img;
  65.     return result;
  66. }
  67.  
  68. Complex* Complex::subtract(Complex num1, Complex num2, Complex num3){
  69.     Complex *temp = subtract(num1, num2);
  70.     Complex diff(temp->real, temp->img);
  71.     delete temp;
  72.     return subtract(diff, num3);
  73. }
  74.  
  75. Complex* Complex::multiply(Complex num1, Complex num2){
  76.     Complex *result = new Complex;
  77.     result->real = (num1.real * num2.real) - (num1.img * num2.img);
  78.     result->img = (num1.real * num2.img) + (num2.real * num1.img);
  79.     return result;
  80. }
  81.  
  82. Complex* Complex::multiply(Complex num1, Complex num2, Complex num3){
  83.     Complex *temp = multiply(num1, num2);
  84.     Complex prod(temp->real, temp->img);
  85.     delete temp;
  86.     return multiply(prod, num3);
  87. }
  88.  
  89. Complex* Complex::divide(Complex num1, Complex num2){
  90.     Complex *result = new Complex;
  91.     result->real = ((num1.real * num2.real) + (num1.img * num2.img))
  92.                     /(pow(num2.real, 2) - pow(num2.img, 2));
  93.     result->img = ((num2.real * num1.img) - (num1.real * num2.img))
  94.                     /(pow(num2.real, 2) - pow(num2.img, 2));
  95.     return result;
  96. }
  97.  
  98. Complex* Complex::divide(Complex num1, Complex num2, Complex num3){
  99.     Complex *temp = divide(num1, num2);
  100.     Complex quot(temp->real, temp->img);
  101.     delete temp;
  102.     return divide(quot, num3);
  103. }
  104.  
  105. void Complex::display(){
  106.     cout << real << " + i" << img << endl;
  107. }
  108.  
  109. int main() {
  110.     system("cls");
  111.     cout << "For complex number 1" << endl;
  112.     Complex num1;double real, img;
  113.     num1.input();
  114.     cout << "For complex number 2" << endl;
  115.     cout << "Enter the real part: ";
  116.     cin >> real;
  117.     cout << "Enter the imaginary part: ";
  118.     cin >> img;
  119.     Complex num2(real, img);
  120.     Complex *sum = num1.add(num1, num2);
  121.     Complex *diff = num1.subtract(num1, num2);
  122.     Complex *prod = num1.multiply(num1, num2);
  123.     Complex *quot = num1.divide(num1, num2);
  124.     cout << "Sum" << endl;
  125.     sum->display();
  126.     cout << "Product" << endl;
  127.     prod->display();
  128.     cout << "Difference" << endl;
  129.     diff->display();
  130.     cout << "Division" << endl;
  131.     quot->display();   
  132.     cin.ignore();
  133.     delete sum;
  134.     delete diff;
  135.     delete prod;
  136.     delete quot;
  137.     cin.get();
  138.     return 0;
  139. }
Add Comment
Please, Sign In to add comment