从立方体、圆柱体抽象出一个公共基类Container,定义抽象类Container,模拟实现一个容器类层次结构,在主函数进行多态机制测试。各派生类要求实现基类的所有纯虚函数。

抽象类class Container {
protected:
static double pi;
public:
virtual double area()=0; //纯虚函数,计算对象的表面积
virtual double volume()=0; //纯虚函数,计算对象的体积
static double sumofarea(Container *c[],int n) ; //静态成员函数,计算所有对象的面积之和
static double sumofvolume(Container *c[],int n); //静态成员函数,计算所有对象的体积之和
};
double Container::pi=3.1415926;

Cube类、Cylinder类均继承抽象类Container。
Cube类(属性:边长double类型)、Cylinder类(属性:底圆半径、高,double类型)。

在主函数用new运算符生成若干容器类的堆对象,定义基类指针数组,其元素分别指向不同容器类对象,实现多态的异质数组,通过调用Container::sumofarea、Container::sumofvolume计算所有容器对象的表面积之和、体积之和 。

输入格式:

第一行n表示对象个数,对象类型用cube、cylinder区分,cube表示立方体对象,后面输入边长,cylinder表示圆柱体对象,后面是底圆半径、高。

输出格式:

分别输出所有容器对象的表面积之和、体积之和,结果保留小数点后2位。

输入样例:

在这里给出一组输入。例如:

4
cube
15.7
cylinder
23.5 100
cube
46.8
cylinder
17.5 200

输出样例:

在这里给出相应的输出。例如:

56771.13
472290.12
    #include<bits/stdc++.h>#include <iomanip>using namespace std;const double PI=3.1415926;class Container{public:virtual double surface_area()=0; virtual double volume()=0;      };class Cylinder:public Container{private:double radius,height;public:Cylinder(double a=0, double b=0):radius(a),height(b){};double surface_area(){double temp;temp = 2*PI*radius*radius+2*PI*radius*height;return temp;}double volume(){double temp;temp = PI*radius*radius*height;return temp;}};class Cube:public Container{private:double edgeLength;public:Cube(double a = 0):edgeLength(a){};double surface_area(){return 6*edgeLength*edgeLength;}double volume(){return edgeLength*edgeLength*edgeLength;}};int main(){int n;string type;int t;double radius,height,sideLength;double s1=0,s2=0,v1=0,v2=0,s=0,v=0;cin>>n;Cylinder cy;Cube cu;cout<<fixed<<setprecision(2);for(int i=0;i<n;i++){  cin>>type;if(type=="cylinder"){cin>>radius>>height;cy=Cylinder(radius,height);   s1=s1+cy.surface_area();v1=v1+cy.volume();}else{cin>>sideLength;cu=Cube(sideLength);s2=s2+cu.surface_area();v2=v2+cu.volume();}}cout<<s1+s2<<endl;cout<<v1+v2<<endl;return 0;}

计算正方体、圆柱体的表面积、体积相关推荐

  1. python计算正方体和长方体_定义一个接口,计算正方体和长方体的体积,并写一个测试类进行测试...

    展开全部 三位的水仙花数共有4个:153,370,371,407: 四位的水仙花数共有3个:1634,8208,9474: 五位636f70793231313335323631343130323136 ...

  2. C++编程练习:多态实验——利用抽象类和纯虚函数,编程计算正方体、球体和圆柱体的表面积和体积。

    例.要求利用抽象类和纯虚函数,编程设计一个程序计算正方体.球体和圆柱体的表面积和体积,具体要求如下: 1.设计一个抽象类为公共基类 : 2.设计成员函数source_area( ),求表面积: 3.设 ...

  3. 编写计算正方体、圆柱体、球体的表面积和体积的类。要求: (1)这三个类有一个公共的基类; (2)这三个类计算正方体、圆柱体、球体的表面积和体积的成员函数名字相同; (3)按照运行时的多态性方法设计一个

    本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2020年11月24日发表于BLOG上 本BLOG上原创文章未经本人许可,不得用于商业用途.转载请经允许后注明出处,否则保留追究法 ...

  4. 创建一个Python脚本,实现以下功能。(1)定义一个函数,用于计算圆柱体的表面积、体积,函数名为comput,.输入参数为底半径(r)、高(h),返回值为表面积(S)、体积(V),返回多值的函

    创建一个Python脚本,实现以下功能. (1)定义一个函数,用于计算圆柱体的表面积.体积,函数名为comput,.输入参数为底 半径(r).高(h),返回值为表面积(S).体积(V),返回多值的函数 ...

  5. 用python计算圆柱体的体积和表面积_Java圆柱体表面积和体积计算代码实例

    题目描述 Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入底面圆的半径和圆柱体的高,然后输出结果. 题目分析 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象 ...

  6. python怎么求圆柱表面积半径和高由键盘输入_Java圆柱体表面积和体积计算代码实例...

    题目描述 Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入底面圆的半径和圆柱体的高,然后输出结果. 题目分析 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象 ...

  7. java设计一个立方体类box_实例1: 设计一个立方体类Box,定义三个属性,分别是长,宽,高。定义二个方法,分别计算并输出立方体的体积和表面积。_学小易找答案...

    [填空题]表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为 _________ . [填空题]表达式 len(' 中国 '.encode('ut ...

  8. 6-4 计算圆柱体的表面积(函数名隐藏)

    6-4 计算圆柱体的表面积(函数名隐藏) (6 分) Cylinder类是Circle类的派生类,在下面的程序中计算并输出了圆柱体的表面积.请阅读理解下面的程序.将下面的Cylinder类补充完整后提 ...

  9. C语言计算圆柱的表面积 体积

    C语言计算圆柱的表面积 体积 #include <stdio.h> int main() {float r, h, v, s;printf("请输入圆柱的半径 高"); ...

  10. c语言计算正方体表面积的程序,智能控制程序设计 正方体求体积 项目一任务4:正方体求体积.doc...

    PAGE 课 题 正方体求体积 课 型 讲练 授课班级 授课时数 2 教学目标 1.了解算术运算符,关系运算符并且会合理的使用它们. 2.会判断逻辑值的真和假 3.会编写程序计算 教学重点 算术运算符 ...

最新文章

  1. SAP事务码f-02做账界面显示“页数”字段
  2. Spring 三种注入方式
  3. matlab 点云特征_基于点云的3D障碍物检测
  4. php null截断 漏洞,CVE-2015-3412,CNNVD-201507-164|PHP NULL Character 安全漏洞 - 信息安全漏洞门户 VULHUB...
  5. 转:SQL:外连接on条件与where条件的区别
  6. V.Replication and Sharding(创建主从数据库)
  7. 《工业设计史》 第二章:手工艺设计阶段
  8. 怎样恢复手机oracle默认窗口,通达信恢复默认版面,Effects界面如何恢复初始默认设置...
  9. python怎么爬取电影海报_Python3 爬取时光网电影海报和电影数据
  10. 武汉最最最牛逼的IT公司全在这了
  11. 中间件 | 负载均衡策略
  12. 事件抽取(event extraction)
  13. Matlab绘图保存为.fig格式以使用,及.fig文件的加载与数据读取
  14. 4种FPGA时钟分频 【附源码】:1.偶数分频;2.奇数分频(占空比50%);3.奇数分频(任意无占空比);4.小数分频;
  15. 待办工作是什么意思?
  16. 06 现有原件模型的创建
  17. XP局域网内共享不了文件
  18. File上传文件后缀名 限制
  19. c语言指针与一维数组PPT,C语言第5章指针和一维数组.ppt
  20. 想学习计算机,高考志愿应该怎么选择学校和专业,城市、学校、专业哪个更重要?

热门文章

  1. Android 开发技术趋势
  2. m基于MATLAB的上行链路MIMO关键技术的研究与性能分析
  3. 人生六十才开始(转载)
  4. SnowNLP使用自定义语料进行模型训练(情感分析)
  5. 升级coda_Coda:从我们周围的结构中学习
  6. 基于国产FPGA紫光同创Titan2 PG2T390H的PCIe链式DMA控制器设计
  7. Java多线程爬取豆瓣排行榜Top250(maven)
  8. Mac Docker Desktop “Mounts denied: EOF.“解决方法
  9. adb 删除文件时提示Read-only file system问题【not in /proc/mounts】
  10. ESD二极管各项参数字母的解释-优恩