Skip to main content

Complex Number Class (C++ with Exception Handling)

This is a Complex Number Class Definition in C++. The basic Operations on Complex Numbers are defined here also, from taking input to Algebra. And it has a tiny example of Exception Handling for new operator

#include <iostream.h>
class complex{
private:
float *x,*y;

public:
complex(float a=0.0, float b=0.0)
{
 try{
  x=new float;
  *x=a;
  y=new float;
  *y=b;
}
catch(...)
 {
  cout<<"Memory is not sufficient";
 }
}

complex operator + (complex c){
 complex z;
 *(z.x)=(*x) + *(c.x);
 *(z.y)=(*y) + *(c.y);
 return z;
}

complex operator - (complex c){ // Binary Minus
 complex z;
 *(z.x)=(*x) - *(c.x);
 *(z.y)=(*y) - *(c.y);
 return z;
}

complex operator - (){ // Unary Minus
complex z;
*(z.x)=-(*x);
*(z.y)=-(*y);
return z;
}

complex operator * (complex c){
 complex z;
 *(z.x)=(*x)*(*(c.x))-(*y)*(*(c.y));
 *(z.y)=(*y)*(*(c.x))+(*x)*(*(c.y));
 return z;
}

complex operator / (complex c){
 complex z;
 float t;
 t=(*(c.x))*(*(c.x)) + (*(c.y))*(*(c.y));
 *(z.x)=((*x)*(*(c.x)) + (*y)*(*(c.y)))/t;
 *(z.y)=((*y)*(*(c.x)) - (*x)*(*(c.y)))/t;
 return z;
}

friend ostream & operator << (ostream &o,complex c);
friend istream & operator >> (istream &i,complex c);
};



ostream & operator << (ostream &o,complex c){
 if (*(c.y)>=0.0)
 o<<*(c.x)<<"+"<<*(c.y)<<"i";
 else
 o<<*(c.x)<<*(c.y)<<"i";

 return o;
}

istream & operator >> (istream &i,complex c){
cout<<"(Real Part):: ";
i>>*(c.x);
cout<<"(Img. Part):: ";
i>>*(c.y);

return i;
}


void main()
{
 complex a,b,c;
 cout<<"Enter complex Number 1:: ";
 cin>>a;
 cout<<"Enter complex Number 2:: ";
 cin>>b;
 cout<<"The Complex Numbers are::\nA="<<a<<endl<<"B="<<b;
 cout<<"\n-B="<<-b;           //Negetive of Complex Number
 cout<<"\nA+B="<<a+b;         //Addition of Complex Numbers
 cout<<"\nA-B="<<a-b;         //Subtraction of Complex Numbers
 cout<<"\nAxB="<<a*b;         //Multiplication of Complex Numbers
 cout<<"\nA/B="<<a/b;         //Division of Complex Numbers

}

This may not run on all Turbo C++ Compiler due to exception handling code.

Comments

Popular posts from this blog

Class Point:: It holds co-ordinates of a point in format (x,y)

A class Named "Point" which stores the Co-ordinates of a point in (x,y) Format. This Class Contains:: O Constructor with default arguments O Copy Constructor O Function to display which Co-ordinate a Point belongs to O Function to get value of x of a point O Function to get value of y of a point O Function to get the Radious Vector (r) of a point O Function to get the Theta of a point O Overloaded Operator - to find out distance between two points O Overloaded Operator >> to take input O Overloaded operator O Destructor #include<iostream.h> #include<math.h> class point{ //Data Members int x,y; //They hold the value of X and Y co-ordinate of a Point. public: //Member Functions point(int t1=0, int t2=0) //Constructor with default arguments. { x=t1; y=t2; } point(point &t) //Copy Constructor { x=t.x; y=t.y; } int coordinate(void); //It returns the point's Co-ordinate, e.g., 1, 2, 3, or 4th. int getx(...

Day of Week according to Date

We have 7 days in a week. And the first Day of the Date System is Sunday . And it should be. So, 01.01.0001, i.e., First Date of Christ was Sunday. We just number the days as follows. 0 = Sunday 1 = Monday 2 = Tuesday 3 = Wednessday 4 = Thursday 5 = Friday 6 = Saturday So, we can handle every day by the reminder of 7. Cause, u just see, after every 7 days the same day is repeated. Then, lets a rough Calculation. 01/01/0001 => Sunday = 0 Now, we just try to find out the day on 1st January on next year, i.e., 01/01/0002 0001 has 365 days. So, after 365 days which day will come? To find out the answer of this question we have to perform following calculation. 7 ) 365 ( 52 35 ----- 15 14 ---- 1 The reminder is 1, i.e.,Monday. But, using this method, it is very critical to find out the day of 1st January of 1988. So, we have an another idea. Find out how many Leap years are present before current year. Suppose it is L . So, L = y/4 If Current year is...