# include<iostream.h>
class jihe{
public:
double s,l;
jihe(double i,double j)
{
s=i;
l=j;
}
virtual double mianji()=0;
virtual double tiji()=0;
virtual double zhouchang()=0;
};
class juxing:public jihe{
public:
int a,b;
juxing(int m,int n,double i,double j):jihe(i,j)
{
a=m;
b=n;
}
double zhouchang()
{
l=2*a+2*b;
cout<<"ju xing zhou chang: "<<l<<endl;
return l;
}
double mianji()
{
s=a*b;
cout<<"ju xing mian ji: "<<s<<endl;
return s;
}
double tiji()
{
cout<<"have not ti ji: "<<endl;
return 0;
}
};
class yuan:public jihe{
public:
int r ;
double tiji()
{
cout<<"have not ti ji: "<<endl;
return 0;
}
yuan(int i,double m,double n):jihe(m ,n)
{
r=i;
}
double zhouchang()
{
l=2*r*3.14;
cout<<" yuan zhou chang: "<<l<<endl;
return l;
}
double mianji()
{
s=3.14*r*r;
cout<<"yuan mian ji: "<<s<<endl;
return s;
}
};
class qiu:public yuan{
public:
double v;
qiu(double j,int i,double m,double n):yuan( i, m, n)
{
v=j;
}
double mianji()
{
s=3.14*4*r*r;
cout<<"qiu mian ji: "<<s<<endl;
return s;
}
double tiji()
{
v=r*r*r*3/4;
cout<<"qiu ti ji: "<<v<<endl;
return v;
}
};
class yuanzhu:public qiu
{
public:
int h;
yuanzhu(int gao,double j,int i,double m,double n):qiu(j,i,m,n)
{
h=gao;
}
double mianji()
{
s=3.14*r*r*2+3.14*r*h;
cout<<"yuan zhu biao mian ji: "<<s<<endl;
return s;
}
double tiji()
{
v=3.14*r*r*h;
cout<<"yuan zhu ti ji: "<<v<<endl;
return h;
}
};
void main()
{
yuan obj(2,0,0);
qiu obja(0,2,0,0);
yuanzhu objb(1,0,2,0,0);
juxing objc(2,3,0,0);
objc.zhouchang();
objc.mianji();
objc.tiji();
obj.zhouchang();
obj.mianji();
obj.tiji();
obja.mianji();
obja.tiji();
objb.mianji();
objb.tiji();
return;
}
class jihe{
public:
double s,l;
jihe(double i,double j)
{
s=i;
l=j;
}
virtual double mianji()=0;
virtual double tiji()=0;
virtual double zhouchang()=0;
};
class juxing:public jihe{
public:
int a,b;
juxing(int m,int n,double i,double j):jihe(i,j)
{
a=m;
b=n;
}
double zhouchang()
{
l=2*a+2*b;
cout<<"ju xing zhou chang: "<<l<<endl;
return l;
}
double mianji()
{
s=a*b;
cout<<"ju xing mian ji: "<<s<<endl;
return s;
}
double tiji()
{
cout<<"have not ti ji: "<<endl;
return 0;
}
};
public:
int r ;
double tiji()
{
cout<<"have not ti ji: "<<endl;
return 0;
}
yuan(int i,double m,double n):jihe(m ,n)
{
r=i;
}
{
l=2*r*3.14;
cout<<" yuan zhou chang: "<<l<<endl;
return l;
}
double mianji()
{
s=3.14*r*r;
cout<<"yuan mian ji: "<<s<<endl;
return s;
}
};
class qiu:public yuan{
public:
double v;
qiu(double j,int i,double m,double n):yuan( i, m, n)
{
v=j;
}
double mianji()
{
s=3.14*4*r*r;
cout<<"qiu mian ji: "<<s<<endl;
return s;
}
double tiji()
{
v=r*r*r*3/4;
cout<<"qiu ti ji: "<<v<<endl;
return v;
}
class yuanzhu:public qiu
{
public:
int h;
yuanzhu(int gao,double j,int i,double m,double n):qiu(j,i,m,n)
{
h=gao;
}
double mianji()
{
s=3.14*r*r*2+3.14*r*h;
cout<<"yuan zhu biao mian ji: "<<s<<endl;
return s;
}
double tiji()
{
v=3.14*r*r*h;
cout<<"yuan zhu ti ji: "<<v<<endl;
return h;
}
};
void main()
{
yuan obj(2,0,0);
qiu obja(0,2,0,0);
yuanzhu objb(1,0,2,0,0);
juxing objc(2,3,0,0);
objc.zhouchang();
objc.mianji();
objc.tiji();
obj.zhouchang();
obj.mianji();
obj.tiji();
obja.mianji();
obja.tiji();
objb.mianji();
objb.tiji();
return;
}