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

I am recieving an error of \'cannot open source file\' at #include <iomanip.h> T

ID: 3644929 • Letter: I

Question

I am recieving an error of 'cannot open source file' at #include <iomanip.h>
Then i have this to do and i dont know what to do.

Overload the addition operator (+) to perform complex mathmatical addition on two objects of the complex-number class.
Overload the subtraction operator (-) to perform complex mathmatical subtraction on two objects of the complex-number class.
Overload the multiplication operator (*) to perform complex mathmatical multiplication on two objects of the complex-number class.
Overload the division operator (/) to perform complex mathmatical division on two objects of the complex-number class.
Overload the assignment operator (=) to assign all the data values of an object in the complex-number class to another object in the complex-number class.

#include <cmath>
#include <iostream>
#include <iomanip.h>

using namespace std;


class complex
{
private:
float real; // Real Part
float imag; // Imaginary Part


public:
complex(float,float);
complex(complex&);
complex operator +(complex);
complex operator -(complex);
complex operator *(complex);
complex operator /(complex);
complex getconjugate();
complex getreciprocal();
float getmodulus();
void setdata(float,float);
void getdata();
float getreal();
float getimaginary();
bool operator ==(complex);
void operator =(complex);
friend ostream& operator <<(ostream &s,complex &c);
};
// CONSTRUCTOR
complex::complex(float r=0.0f,float im=0.0f)
{
real=r;
imag=im;
}

// COPY CONSTRUCTOR
complex::complex(complex &c)
{
this->real=c.real;
this->imag=c.imag;
}


void complex::operator =(complex c)
{
real=c.real;
imag=c.imag;
}


complex complex::operator +(complex c)
{
complex tmp;
tmp.real=this->real+c.real;
tmp.imag=this->imag+c.imag;
return tmp;
}

complex complex::operator -(complex c)
{
complex tmp;
tmp.real=this->real - c.real;
tmp.imag=this->imag - c.imag;
return tmp;
}

complex complex::operator *(complex c)
{
complex tmp;
tmp.real=(real*c.real)-(imag*c.imag);
tmp.imag=(real*c.imag)+(imag*c.real);
return tmp;
}

complex complex::operator /(complex c)
{
float div=(c.real*c.real) + (c.imag*c.imag);
complex tmp;
tmp.real=(real*c.real)+(imag*c.imag);
tmp.real/=div;
tmp.imag=(imag*c.real)-(real*c.imag);
tmp.imag/=div;
return tmp;
}

complex complex::getconjugate()
{
complex tmp;
tmp.real=this->real;
tmp.imag=this->imag * -1;
return tmp;
}

complex complex::getreciprocal()
{
complex t;
t.real=real;
t.imag=imag * -1;
float div;
div=(real*real)+(imag*imag);
t.real/=div;
t.imag/=div;
return t;
}

float complex::getmodulus()
{
float z;
z=(real*real)+(imag*imag);
z=sqrt(z);
return z;
}

void complex::setdata(float r,float i)
{
real=r;
imag=i;
}

void complex::getdata()
{
cout<<"Enter Real:";
cin>>this->real;
cout<<"Enter Imaginary:";
cin>>this->imag;

}

float complex::getreal()
{
return real;
}

float complex::getimaginary()
{
return imag;
}

bool complex::operator ==(complex c)
{
return (real==c.real)&&(imag==c.imag) ? 1 : 0;
}

ostream& operator <<(ostream &s,complex &c)
{
s<<"Real Part = "<<c.real<<endl
<<"Imaginary Part = "<<c.imag<<endl;
s<<"z = "<<c.real<<setiosflags(ios::showpos)
<<c.imag<<"i"<<endl<<resetiosflags(ios::showpos);
return s;
}



int main()
{
complex a(10.0f,-2.f); // Calls Constructor
cout<<a<<endl; // Calls the overloaded << operator
complex b(-2); // Calls Constructor
complex c=b; // Calls Copy Constructor
c=a; // calls overloaded = operator
b.getdata(); // Calls Getdata()
c.getdata();
if(b==c) // calls overloaded == operator
cout<<"b == c";
else
cout<<"b != c";


cout<<endl<<c.getmodulus()<<endl; // calls getmodulus function()
complex d;
d=a+b; // Calls overloaded +
cout<<d<<endl;
d=a-b; // Calls overloaded -
cout<<d<<endl;
d=a*b; // calls overloaded *
cout<<d<<endl;
d=a/b; // calls overloaded /
cout<<d<<endl;

return 0;
}

Explanation / Answer

I have modified the code and it runs fine for me try it out.... //Modified Code #include #include #include using namespace std; struct complex { float real; float imag; }; complex operator + (complex a,complex b); complex operator - (complex a,complex b); complex operator * (complex a,complex b); complex operator / (complex a,complex b); main() { complex a,b,c; int ch; void menu(void); //clrscr(); couta.real>>a.imag; coutb.real>>b.imag; menu(); while ((ch = getchar()) != 'q') { switch(ch) { case 'a':c =a + b; cout