In: Computer Science
Please refer to screenshots
Code
Output
Code to copy
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
// structure to hold complex number
struct complexnumber{
double real;
double imaginary;
};
complexnumber add(complexnumber a, complexnumber b){
complexnumber z;
z.real = a.real + b.real; // calculating real
part
z.imaginary = a.imaginary + b.imaginary; //
calculating imaginary part
return z;
}
complexnumber subtract(complexnumber a, complexnumber b){
complexnumber z;
z.real = a.real - b.real; // calculating real
part
z.imaginary = a.imaginary - b.imaginary; //
calculating imaginary part
return z;
}
complexnumber multiply(complexnumber a, complexnumber b){
complexnumber z;
// calculating real part
z.real = (a.real * b.real) - (a.imaginary *
b.imaginary);
// calculating imaginary part
z.imaginary = (a.real + a.imaginary) * (b.real +
b.imaginary);
z.imaginary = z.imaginary - ((a.real * b.real) +
(a.imaginary * b.imaginary));
return z;
}
complexnumber divide(complexnumber a, complexnumber b){
// denominator of result, common for real and
imaginary part
double den = (b.real * b.real) + (b.imaginary *
b.imaginary);
complexnumber z;
// calculating real part
z.real = (a.real * b.real) + (a.imaginary *
b.imaginary);
z.real = z.real / den;
// calculating imaginary part
z.imaginary = (a.imaginary * b.real) - (a.real *
b.imaginary);
z.imaginary = z.imaginary / den;
return z;
}
void calculator(){
cout<<"Welcome to complex number
calculator\n\n";
cout<<"1 for Addition\n";
cout<<"2 for Subtration\n";
cout<<"3 for Multiplication\n";
cout<<"4 for Division\n";
complexnumber a, b;
// Input first number
cout<<"Enter First Complex
Number\n";
cout<<"Enter Real Part: ";
cin>>a.real;
cout<<"Enter Imaginary Part: ";
cin>>a.imaginary;
// Input second number
cout<<"Enter Second Complex
Number\n";
cout<<"Enter Real Part: ";
cin>>b.real;
cout<<"Enter Imaginary Part: ";
cin>>b.imaginary;
cout<<"\nChoose your operation\n";
int ch;
cin>>ch; // input choice
complexnumber z;
switch(ch){
// if user choose
addition
case 1: z = add(a,
b);
break;
// if user choose subtract
case 2: z = subtract(a,
b);
break;
// if user choose multiply
case 3: z = multiply(a,
b);
break;
// if user choose division
case 4: z = divide(a,
b);
break;
// If user choose invalid option
default:
cout<<"Invalid Operation\n";
return;
}
cout<<"Result of operation is\n";
cout<< fixed << setprecision(1); //
setting precision to one decimal point
cout<<z.real;
if(z.imaginary < 0){
z.imaginary *= -1; // if
imaginary part is negative
cout<<" - ";
} else {
cout<<" + "; // if
imaginary part is positive
}
cout<<z.imaginary<<'\n'; // printing
imaginary part
}
int main(){
calculator();
return 0;
}
Thank you