3d and 2d shape by using class , inheritance, overloading, overriding, virtual function in c++

#include<iostream>
#include<math.h>
using namespace std;
class shape
{

    protected:
double radius,length,width;
public:
shape()
{
length=0;
width=0;
radius=0;
}
virtual void print()
{
cout<<"shape"<<endl;
}
};
class twodimenssional:public shape
{
protected:
double twoarea ;
public:
twodimenssional()
{
twoarea=0;
}
void getdata();
};
 
class threedimenssional:public shape
{
protected:
double threearea;
public:
threedimenssional()
{
threearea=0;
}
};
class triangle:public twodimenssional
{
public:
void calculatearea()
{
twoarea=length*width/2;
}
void print()
   {
    cout<<"area of triangle is : "<<twoarea<<endl;
   }
void setdata(double a,double b)
{
width=a;
length=b;
}
void getdata()
{
cout<<"enter width  : ";
cin>>width;
cout<<"enter lenght : ";
cin>>length;
}
};
class sequare:public twodimenssional
{
protected:
double base,height;
public:
  
void setdata(double a,double b)
{
base=a;
height=b;
}
void calculatearea()
{
twoarea=base*height;
}
   void print()
   {
        cout<<"area of sequare is : "<<twoarea<<endl;
   }
   void getdata()
{
cout<<"enter base  : ";
cin>>base;
cout<<"enter height : ";
cin>>height;
}
};
class circle:public twodimenssional
{
public:
void setdata(double b)
{
radius=b;
}
void calculatearea()
{
twoarea=3.14*radius*radius;
}
   void print()
   {
    cout<<"area of circle is : "<<twoarea<<endl;
   }
   void getdata()
{
cout<<"enter radius for circle : ";
cin>>radius;
}
};
class sphere:public threedimenssional
{
public:
void setdata(double b)
{
radius=b;
}
void calculatearea()
{
threearea=4*3.14*radius*radius;
}
   void print()
   {
    cout<<"area of circle is : "<<threearea<<endl;
   }
   void getdata()
{
cout<<"enter radius for sphere : ";
cin>>radius;
}
};
class cube:public threedimenssional
{
public:
void setdata(double b)
{
length=b;
}
void calculatearea()
{
threearea=6*length*length; //a=length accordingly net
}
   void print()
   {
    cout<<"area of circle is : "<<threearea<<endl;
   }
   void getdata()
{
cout<<"enter length for cube : ";
cin>>length;
}
};
class tetrahadron:public threedimenssional
{
public:
void setdata(double b)
{
length=b;
}
void calculatearea()
{
threearea=(sqrt(3)*(length*length)); //a=length accordingly net
}
   void print()
   {
    cout<<"area of circle is : "<<threearea<<endl;
   }
   void getdata()
{
cout<<"enter length for tetrehadron : ";
cin>>length;
}
};
int main()
{
shape*p;
triangle t1;
sequare s1;
circle c1;
sphere s2;
cube c2;
tetrahadron t2;
p=&t1;
t1.getdata();
t1.calculatearea();
p->print();
t1.setdata(2.3,3.4);
t1.calculatearea();
p->print();
p=&s1;
s1.getdata();
s1.calculatearea();
p->print();
s1.setdata(5,3.4);
s1.calculatearea();
    p->print();
    p=&c1;
c1.getdata();
c1.calculatearea();
p->print();
c1.setdata(5.3);
c1.calculatearea();
    p->print();
    p=&s2;
s2.getdata();
s2.calculatearea();
p->print();
s2.setdata(5.3);
s2.calculatearea();
    p->print();
    p=&c2;
c2.getdata();
c2.calculatearea();
p->print();
c2.setdata(5.3);
c2.calculatearea();
    p->print();
      p=&t2;
t2.getdata();
t2.calculatearea();
p->print();
t2.setdata(5.3);
t2.calculatearea();
    p->print();
}

Comments

Popular posts from this blog

Online games