OJ第三批——Problem P: B 繼承 圓到圓柱體

問題及代碼:

Problem P: B 繼承 圓到圓柱體

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 231  Solved: 169
[Submit][Status][Web Board]

Description

定義了Circle圓形類,在此基礎上派生出Cylinder圓柱體類。

Circle圓形類定義如下:

class Circle
{
public:
Circle(double r):radius(r){ }
double area(){return PI*radius*radius;} //圓面積
protected:
double radius; //圓半徑
};

請在下面的程序段基礎上完成整個設計。
在主程序中輸出指定半徑的圓的面積(area),輸出指定圓底半徑和高的圓柱體表面積(area)和體積(volume)。

#include <iostream>
#include <iomanip>
using namespace std;

#define PI 3.14

class Circle
{
public:
Circle(double r):radius(r){ }
double area(){return PI*radius*radius;} //圓面積
protected:
double radius; //圓半徑
};

//將程序需要的其他成份寫在下面,只提交begin到end部分的代碼
//******************** begin ********************


//********************* end ********************

int main()
{
double r,h;

cout<<setiosflags(ios::fixed);
cout<<setprecision(2);

cin>>r;
Circle c(r);
cout<<c.area()<<endl;

cin>>r>>h;
Cylinder cy(r,h);
cout<<cy.area()<<" "<<cy.volume()<<endl;

return 0;
}

Input

圓的半徑

圓柱體圓底半徑 和 圓柱體的高

Output

 圓的面積

圓柱體的表面積 和  體積

Sample Input

1
2 2.5

Sample Output

3.14
56.52 31.40

HINT

 只提交begin到end部分的代碼

 

 

 

#include <iostream>
#include <iomanip>
using namespace std;

#define PI 3.14
class Circle
{
public:
    Circle(double r):radius(r) { }
    double area()
    {
        return PI*radius*radius;   //圓面積
    }
protected:
    double radius; //圓半徑
};

//將程序需要的其他成份寫在下面,只提交begin到end部分的代碼
//******************** begin ********************
class Cylinder:public Circle
{
public:
    Cylinder(double r,double h):Circle(r),high(h) {}
    double area()
    {
        return (2*PI*radius*high+PI*2*radius*radius);
    }
    double volume()
    {
        return Circle::area()*high;
    }
private:
    double high;
};
//********************* end ********************

int main()
{
    double r,h;
    cout<<setiosflags(ios::fixed);
    cout<<setprecision(2);
    cin>>r;
    Circle c(r);
    cout<<c.area()<<endl;
    cin>>r>>h;
    Cylinder cy(r,h);
    cout<<cy.area()<<" "<<cy.volume()<<endl;
    return 0;
}


 

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章