天天看點

第十三周任務(四)

#include <iostream>
using namespace std;
const double pi = 3.1415926;
class CSolid
{
public:
	virtual double area() const = 0;
	virtual double volume() const = 0;
};
class CCube:public CSolid
{
public:
	CCube(double l):len(l){}
	~CCube();
	double area() const;
	double volume() const;
private:
	double len;
};
class CBall:public CSolid
{
public:
	CBall(double r):rang(r){}
	~CBall();
	double area() const;
	double volume() const;
private:
	double rang;
};
class CCylinder:public CSolid
{
public:
	CCylinder(double R,double h):Rang(R),high(h){}
	~CCylinder();
	double area() const;
	double volume() const;
private:
	double Rang;
	double high;
};

CCube::~CCube(){}
double CCube::area() const
{
	return 6*len*len;
}
double CCube::volume() const
{
	return len*len*len;
}

CBall::~CBall(){}
double CBall::area() const
{
	return 4*pi*rang*rang;
}
double CBall::volume() const
{
	return 1.33*pi*rang*rang*rang;
}

CCylinder::~CCylinder(){}
double CCylinder::area() const
{
	return 2*pi*Rang*high+2*pi*Rang*Rang;
}
double CCylinder::volume() const
{
	return pi*Rang*Rang*high;
}

int main( )  
{  
    CSolid *p;  
    double s,v;  
    CCube x(30);  
    cout<<"立方體邊長為30"<<endl;  
    p=&x;  
    s=p->area( );  
    v=p->volume( );  
    cout<<"表面積:"<<s<<endl;  
    cout<<"體積:"<<v<<endl;  
    cout<<endl;  
    CBall y(4.5);  
    cout<<"球體半徑為4.5"<<endl;  
    p=&y;  
    s=p->area( );  
    v=p->volume( );  
    cout<<"表面積:"<<s<<endl;  
    cout<<"體積:"<<v<<endl;  
    cout<<endl;  
    CCylinder z(10,20);  
    cout<<"圓柱體底面半徑、高分别為10, 20"<<endl;  
    p=&z;  
    s=p->area( );  
    v=p->volume( );  
    cout<<"表面積:"<<s<<endl;  
    cout<<"體積:"<<v<<endl;  
    cout<<endl;  
    system("pause");  
    return 0;  
}  
/*int main()
{
	CCube c1(1);
	CBall c2(2);
	CCylinder c3(3,4);
	CSolid *p;

	p = &c1;
	cout << "正方體的表面積是:" << p->area() << "體積是:" << p->volume() <<endl;

	p = &c2;
	cout << "球體的表面積是:" << p->area() << "體積是:" << p->volume() << endl;

	p = &c3;
	cout << "圓柱體的表面積是:" << p->area() << "體積是:" << p->volume() << endl;

	system("pause");
	return 0;
}*/
           
第十三周任務(四)

感悟:這個任務其實就是任務三的改變而已,沒有什麼,就是主函數那的問題了,定義指針類的問題,搞定這一切萬事大吉,找到書了,是以OK了,但還是用了老師的主函數,看着比我的好多了,我的就陪襯吧。

繼續閱讀