Write a program that manages a list of 2D and 3D shapes Here
Solution
code:
#include<iostream>
#include<math.h>
#include<string>
#include <sstream>
using namespace std;
class square
{
float length;
float area;
float circumference;
public:
square()
{
length=0;
area=0;
}
square(float leng)
{
length=leng;
}
void calcArea()
{
area=length*length;
}
float getArea()
{
return area;
}
void calcCircum()
{
circumference=4*length;
}
float getCircum()
{
return circumference;
}
void print()
{
cout<<\"Name: square\"<<endl;
cout<<\"Length: \"<<length<<endl;
cout<<\"Circumference: \"<<circumference<<endl;
cout<<\"Area: \"<<area<<endl;
}
};
class rectangle
{
float length;
float breadth;
float area;
float circumference;
public:
rectangle()
{
length=0;
breadth=0;
area=0;
}
rectangle(float len,float br)
{
length=len;
breadth=br;
}
void calcArea()
{
area=length*breadth;
}
float getArea()
{
return area;
}
void calcCircum()
{
circumference=2*(length+breadth);
}
float getCircum()
{
return circumference;
}
void print()
{
cout<<\"Name: rectangle\"<<endl;
cout<<\"Length: \"<<length<<\"Breadth: \"<<breadth<<endl;
cout<<\"Circumference: \"<<circumference<<endl;
cout<<\"Area: \"<<area<<endl;
}
};
class circle
{
float radius;
float circumference;
float area;
public:
circle()
{
radius=0;
circumference=0;
area=0;
}
circle(float r)
{
radius=r;
}
void calcArea()
{
area=3.14*radius*radius;
}
float getArea()
{
return area;
}
void calcCircum()
{
circumference=2*3.14*radius;
}
float getCircum()
{
return circumference;
}
void print()
{
cout<<\"Name: circle\"<<endl;
cout<<\"Radius: \"<<radius<<endl;
cout<<\"Circumference: \"<<circumference<<endl;
cout<<\"Area: \"<<area<<endl;
}
};
class sphere
{
float radius;
float surfacearea;
float voloume;
public:
sphere()
{
}
sphere(float r)
{
radius=r;
}
void calcsurfarea()
{
surfacearea=4*3.14*radius*radius;
}
void calcVoloume()
{
voloume=(4/3)*3.14*radius*radius*radius;
}
float getsurfacearea()
{
return surfacearea;
}
float getVoloume()
{
return voloume;
}
void print()
{
cout<<\"Name: sphere\"<<endl;
cout<<\"Radius: \"<<radius<<endl;
cout<<\"Surface area: \"<<surfacearea<<endl;
cout<<\"Voloume: \"<<voloume<<endl;
}
};
class cone
{
float radius;
float height;
float surfacearea;
float voloume;
public:
cone()
{
}
cone(float r,float h)
{
radius=r;
height=h;
}
void calcsurfarea()
{
surfacearea=3.14*radius*sqrt((height*height)+(radius*radius));
}
void calcVoloume()
{
voloume=(1/3)*3.14*radius*radius*height;
}
float getsurfacearea()
{
return surfacearea;
}
float getVoloume()
{
return voloume;
}
void print()
{
cout<<\"Name: cone\"<<endl;
cout<<\"Radius: \"<<radius<<\"height: \"<<height<<endl;
cout<<\"Surface area: \"<<surfacearea<<endl;
cout<<\"Voloume: \"<<voloume<<endl;
}
};
class cylinder
{
float radius;
float height;
float surfacearea;
float voloume;
public:
cylinder()
{
}
cylinder(float r,float h)
{
radius=r;
height=h;
}
void calcsurfarea()
{
surfacearea=(2*3.14*radius*radius*2*3.14*radius*radius)+(2*3.14*radius*height);
}
void calcVoloume()
{
voloume=3.14*radius*radius*height;
}
float getsurfacearea()
{
return surfacearea;
}
float getVoloume()
{
return voloume;
}
void print()
{
cout<<\"Name: cylinder\"<<endl;
cout<<\"Radius: \"<<radius<<\"Height: \"<<height<<endl;
cout<<\"Surface area: \"<<surfacearea<<endl;
cout<<\"Voloume: \"<<voloume<<endl;
}
};
int main()
{
string twoD[20];
string threeD[20];
string s,shape;
square sq[10];
rectangle rec[10];
circle cir[10];
sphere sp[10];
cone co[10];
cylinder cy[10];
char ch;
size_t sz;
string radius,length,breadth,height;
int i=0,j=0;
int sqi=0,rei=0,cii=0,coi=0,cyi=0,sphi=0;
do
{
cout<<\"Enter shape followed by parameters\"<<endl;
cin>>s;
istringstream is(s);
is>>shape;
if (shape==\"square\")
{
is>>length;
cout<<length;
sq[sqi]=square(stoi(length));
sq[sqi].calcArea();
sq[sqi].calcCircum();
sqi++;
twoD[i++]=\"square\";
}
else if (shape==\"rectangle\")
{
is>>length;
is>>breadth;
rec[rei]=rectangle(stoi(length),stoi(breadth));
rec[rei].calcArea();
rec[rei].calcCircum();
rei++;
twoD[i++]=\"rectangle\";
}
else if (shape==\"circle\")
{
is>>radius;
cir[cii]=circle(stoi(radius));
cir[cii].calcArea();
cir[cii].calcCircum();
cii++;
twoD[i++]=\"circle\";
}
else if (shape==\"sphere\")
{
is>>radius;
sp[sphi]=sphere(stoi(radius));
sp[sphi].calcsurfarea();
sp[sphi].calcVoloume();
sphi++;
threeD[j++]=\"sphere\";
}
else if (shape==\"cone\")
{
is>>radius>>height;
co[coi]=cone(stoi(radius),stoi(height));
co[coi].calcsurfarea();
co[coi].calcVoloume();
coi++;
threeD[j++]=\"cone\";
}
else if (shape==\"cylinder\")
{
is>>radius>>height;
cy[cyi]=cylinder(stoi(radius),stoi(height));
cy[cyi].calcsurfarea();
cy[cyi].calcVoloume();
cyi++;
threeD[j++]=\"cylinder\";
}
cout<<\"Do you want to continue\";
cin>>ch;
}
while(ch==\'y\');
cout<<\"Two D objects\"<<endl;
int squi=0,recti=0,ciri=0,sphei=0,conei=0,cylini=0;
for(int k=0;k<i;k++)
{
if (twoD[k]==\"square\")
{
sq[squi++].print();
}
else if (twoD[k]==\"rectangle\")
{
rec[recti++].print();
}
else if (twoD[k]==\"circle\")
{
cir[ciri++].print();
}
}
cout<<\"Three D objects\"<<endl;
for(int k=0;k<j;k++)
{
if (threeD[k]==\"sphere\")
{
sp[sphei++].print();
}
else if (threeD[k]==\"cone\")
{
co[conei++].print();
}
else if (threeD[k]==\"cylinder\")
{
cy[cylini++].print();
}
}
system(\"pause\");
return 0;
}






