关闭

第十三周项目4立体类族共有的抽象类

94人阅读 评论(0) 收藏 举报
/*Copyright (c) 2016,烟台大学计算机学院 
*All rights reserved. 
*文件名称 : 
*作    者 : 李钊 
*完成日期 : 2016年5月31号 
*版 本 号 : v1.0 
* 
*问题描述 : 立体类族共有的抽象类
*输入描述 : 
*程序输出 : 各个立体图形的表面积与体积
*/
#include <iostream>
using namespace std;
class L
{
public:
    virtual double barea() =0;
    virtual double bv() =0;
};
class Zhengfangti:public L
{
public:
    Zhengfangti(double a):bianchang(a){}
    virtual double barea();
    virtual double bv();
protected:
    double bianchang;
};
double Zhengfangti::barea()
{
    return 6*bianchang*bianchang;
}
double Zhengfangti::bv()
{
    return bianchang*bianchang*bianchang;
}
class Qiu:public L
{
public:
    Qiu(double r):banjing(r){}
    virtual double barea();
    virtual double bv();
protected:
    double banjing;
};
double Qiu::barea()
{
    return 4*3.14*banjing*banjing;
}
double Qiu::bv()
{
    return 4/3*3.14*banjing*banjing*banjing;
}
class Yuanzhu:public L
{
public:
    Yuanzhu(double dr,double h):dbanjing(dr),gao(h){}
    virtual double barea();
    virtual double bv();
protected:
    double dbanjing;
    double gao;
};
double Yuanzhu::barea()
{
    return 2*3.14*dbanjing*gao+2*3.14*dbanjing*dbanjing;
}
double Yuanzhu::bv()
{
    return 3.14*dbanjing*dbanjing*gao;
}
int main()
{
    L *p;
    double s,v;
    Zhengfangti a1(3);
    cout<<"正方体边长为 3 "<<endl;
    p=&a1;
    s=p->barea();
    v=p->bv();
    cout<<"正方体表面积为:"<<s<<endl;
    cout<<"正方体体积为:"<<v<<endl;
    Qiu a2(2);
    cout<<"球半径为 2 "<<endl;
    p=&a2;
    s=p->barea();
    v=p->bv();
    cout<<"球表面积为:"<<s<<endl;
    cout<<"球体积为:"<<v<<endl;
    Yuanzhu a3(1,2);
    cout<<"圆柱底半径为 1 ,高为 2 "<<endl;
    p=&a3;
    s=p->barea();
    v=p->bv();
    cout<<"圆柱体表面积为:"<<s<<endl;
    cout<<"圆柱体体积为:"<<v<<endl;
    return 0;


}

运行结果:

学习心得:

纯虚函数的运用

知识点总结:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18959次
    • 积分:1218
    • 等级:
    • 排名:千里之外
    • 原创:109篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条