# C++ > Beginners Lab Assignments Code Examples

## Program to perform various operation on a vector using operator overloading

``` Program to perform various operation on a vector using operator overloading This Program deals with the basic operation like Addition(+), Subtraction(-), Dot Product, Cross Product etc. on Two 3-D vectors. #include "Vector.cpp" void main() { system("cls"); Vector A,B,C; int k,ch; char choice = 'y'; do { if(choice == 'y' || choice == 'Y') { cout<<" INPUT VECTOR "; cout<<" ENTER THE FIRST VECTOR. "; A.GetData(); cout<<" ENTER THE SECOND VECTOR. "; B.GetData(); } system("cls"); cout<<" PROGRAM FOR VECTOR OPERATIONS. "; cout<<" First Vector(A)= "<<A<<" Second Vector(B)= "<<B<<" "; cout<<" 1.Addition Of Two Vectors. "; cout<<" 2.Subtraction Of Two Vectors. "; cout<<" 3.Multiplication Of A Vector With The Scalar. "; cout<<" 4.Cross Product Of Two Vectors. "; cout<<" 5.Scalar(or Dot) Product Of Two Vectors. "; cout<<" 6.Negative Of Vectors. "; cout<<" 7.Exit "; cout<<" Enter The Choice. "; cin>>ch; switch(ch) { case 1: cout<<" ADDITION OF TWO VECTORS. "; C = A + B; cout<<" The Value Of A+B Is: "<<C; break; case 2: cout<<" SUBTRACTION OF TWO VECTORS. "; C = A - B; cout<<" The Value Of A-B Is: "<<C; break; case 3: cout<<" MULTIPLICATION OF A VECTOR WITH A SCALAR. "; cout<<" Enter The Value Of The Scalar: "; cin>>k; C = A * k; cout<<" The Value Of Ak Is (k Is the Scaler): "<<C; C = k * B; cout<<" The Value Of kB Is (k Is the Scaler): "<<C; break; case 4: cout<<" CROSS PRODUCT OF TWO VECTORS. "; C = A * B; cout<<" The Value Of A*B(Cross Product) Is: "<<C; break; case 5: cout<<" SCALAR(OR DOT) PRODUCT OF TWO VECTORS. "; A.DotProd(B); break; case 6: cout<<" NEGATIVE OF A VECTOR. "; C = -A; cout<<"The Value Of -A Is: "<<C; C = -B; cout<<" The Value Of -B Is: "<<C; break; case 7: return; default: cout<<" WRONG CHOICE. "; break; getch(); } cout<<" DO YOU WANT TO ENTER A NEW VECTOR (y/n): "; cin>>choice; system("cls"); }while(1); } ////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// //VECTOR.CPP #include"Vector.h" Vector::Vector():x(0),y(0),z(0) { //cout<<"This Is A Default Constructor."; } Vector Vector::operator +(const Vector &v)const //Addition { Vector res; res.x = x + v.x; res.y = y + v.y; res.z = z + v.z; return res; } Vector Vector::operator -(const Vector &v)const //Subtraction { Vector res; res.x = x - v.x; res.y = y - v.y; res.z = z - v.z; return res; } Vector Vector::operator *(const int k)const //Multiplication By Scalar { Vector res; res.x = k * x; res.y = k * y; res.z = k * z; return res; } void Vector::GetData() //Input The Vector { cout<<" Enter The Value Of x : "; cin>>x; cout<<" Enter The Value Of y : "; cin>>y; cout<<" Enter The Value Of z : "; cin>>z; } Vector operator *(int k,const Vector &v) { return v * k; } Vector Vector::operator -()const //Negative Of A Vector { Vector res; res.x = -x; res.y = -y; res.z = -z; return res; } Vector Vector::operator *(const Vector &v)const //Cross (or Vector) Product { Vector res; res.x = (y * v.z) - (z * v.y); res.y = (z * v.x) - (x * v.z); res.z = (x * v.y) - (y * v.x); return res; } void Vector::DotProd(Vector v2) //Dot(Or Scalar) Product { int v1v2; v1v2 = (x * v2.x)+(y * v2.y)+(z * v2.z); cout<<" The Value Of A.B Is: "<<v1v2; } ostream & Vector::Show(ostream & out)const { if((x<0) && (y<0) && (z<0)) out<<x<<"I"<<y<<"J"<<z<<"K"; if((x<0) && (y<0) && (z>=0)) out<<x<<"I"<<y<<"J+"<<z<<"K"; if((x<0) && (y>=0) && (z<0)) out<<x<<"I+"<<y<<"J"<<z<<"K"; if((x<0) && (y>=0) && (z>=0)) out<<x<<"I+"<<y<<"J+"<<z<<"K"; if((x>=0) && (y<0) && (z<0)) out<<x<<"I"<<y<<"J"<<z<<"K"; if((x>=0) && (y<0) && (z>=0)) out<<x<<"I"<<y<<"J+"<<z<<"K"; if((x>=0) && (y>=0) && (z<0)) out<<x<<"I+"<<y<<"J"<<z<<"K"; if((x>=0) && (y>=0) && (z>=0)) out<<x<<"I+"<<y<<"J+"<<z<<"K"; return out; } //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// // VECTOR.H #include<iostream> #include<conio.h> #include<stdlib.h> using namespace std; class Vector { private: int x,y,z; public: Vector(int,int,int); Vector(); void GetData(); Vector operator+(const Vector &v)const; Vector operator-(const Vector &v)const; Vector operator*(const int k)const; //Multiplication by Scalar Vector operator*(const Vector &v)const; //Cross Product Vector operator-()const; //Negative Of A Scaler void DotProd(Vector); //Dot Product ostream & Show(ostream & out)const; friend Vector operator*(const int k,const Vector &v); friend ostream & operator<<(ostream & out,const Vector &v) { v.Show(out); return out; } }; ```