Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <cmath>
- using namespace std;
- class Complex{
- double real;
- double img;
- public:
- Complex();
- Complex(double, double);
- void input();
- Complex* add(Complex, Complex);
- Complex* add(Complex, Complex, Complex);
- Complex* subtract(Complex, Complex);
- Complex* subtract(Complex, Complex, Complex);
- Complex* multiply(Complex,Complex);
- Complex* multiply(Complex,Complex, Complex);
- Complex* divide(Complex, Complex);
- Complex* divide(Complex, Complex, Complex);
- void display();
- ~Complex();
- };
- Complex::~Complex(){
- }
- Complex::Complex(){
- real = 0.0;
- img = 0.0;
- }
- Complex::Complex(double real, double img){
- this->real = real;
- this->img = img;
- }
- void Complex::input(){
- cout << "Enter the real part: ";
- cin >> real;
- cout << "Enter the imaginary part: ";
- cin >> img;
- }
- Complex* Complex::add(Complex num1, Complex num2){
- Complex *result = new Complex;
- result->real = num1.real + num2.real;
- result->img = num1.img + num2.img;
- return result;
- }
- Complex* Complex::add(Complex num1, Complex num2, Complex num3){
- Complex *temp = add(num1, num2);
- Complex sum(temp->real, temp->img);
- delete temp;
- return add(sum, num3);
- }
- Complex* Complex::subtract(Complex num1, Complex num2){
- Complex *result = new Complex;
- result->real = num1.real - num2.real;
- result->img = num1.img - num2.img;
- return result;
- }
- Complex* Complex::subtract(Complex num1, Complex num2, Complex num3){
- Complex *temp = subtract(num1, num2);
- Complex diff(temp->real, temp->img);
- delete temp;
- return subtract(diff, num3);
- }
- Complex* Complex::multiply(Complex num1, Complex num2){
- Complex *result = new Complex;
- result->real = (num1.real * num2.real) - (num1.img * num2.img);
- result->img = (num1.real * num2.img) + (num2.real * num1.img);
- return result;
- }
- Complex* Complex::multiply(Complex num1, Complex num2, Complex num3){
- Complex *temp = multiply(num1, num2);
- Complex prod(temp->real, temp->img);
- delete temp;
- return multiply(prod, num3);
- }
- Complex* Complex::divide(Complex num1, Complex num2){
- Complex *result = new Complex;
- result->real = ((num1.real * num2.real) + (num1.img * num2.img))
- /(pow(num2.real, 2) - pow(num2.img, 2));
- result->img = ((num2.real * num1.img) - (num1.real * num2.img))
- /(pow(num2.real, 2) - pow(num2.img, 2));
- return result;
- }
- Complex* Complex::divide(Complex num1, Complex num2, Complex num3){
- Complex *temp = divide(num1, num2);
- Complex quot(temp->real, temp->img);
- delete temp;
- return divide(quot, num3);
- }
- void Complex::display(){
- cout << real << " + i" << img << endl;
- }
- int main() {
- system("cls");
- cout << "For complex number 1" << endl;
- Complex num1;double real, img;
- num1.input();
- cout << "For complex number 2" << endl;
- cout << "Enter the real part: ";
- cin >> real;
- cout << "Enter the imaginary part: ";
- cin >> img;
- Complex num2(real, img);
- Complex *sum = num1.add(num1, num2);
- Complex *diff = num1.subtract(num1, num2);
- Complex *prod = num1.multiply(num1, num2);
- Complex *quot = num1.divide(num1, num2);
- cout << "Sum" << endl;
- sum->display();
- cout << "Product" << endl;
- prod->display();
- cout << "Difference" << endl;
- diff->display();
- cout << "Division" << endl;
- quot->display();
- cin.ignore();
- delete sum;
- delete diff;
- delete prod;
- delete quot;
- cin.get();
- return 0;
- }
Add Comment
Please, Sign In to add comment