问题描述:从立方体、圆柱体抽象出一个公共基类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位。

#include<iostream>
#include<iomanip>
using namespace std;
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;
Container * pShapes[100];class Cube : public Container{public:double lenth;double area(){return lenth*lenth*6;}double volume(){return lenth*lenth*lenth;}
};class Cylinder : public Container{public:double round,height;double area(){return 2*pi*round*height+2*pi*round*round;}double volume(){return pi*round*round*height;}
};double sumofarea(Container * pShapes[],int n){int i; double sum=0;for(i=0;i<n;i++){sum=sum+pShapes[i]->area();}cout<<fixed<<setprecision(2)<<sum<<endl;return sum;
}double sumofvolume(Container * pShapes[],int n){int i; double sum=0;for(i=0;i<n;i++){sum=sum+pShapes[i]->volume();}cout<<fixed<<setprecision(2)<<sum;return sum;
}int main(){Cube * pbe; Cylinder * per;int n,i;cin>>n;for(i=0;i<n;i++){string c;cin>>c;if(c=="cube"){pbe=new Cube();cin>>pbe->lenth;pShapes[i]=pbe;}if(c=="cylinder"){per=new Cylinder();cin>>per->round>>per->height;pShapes[i]=per;}}sumofarea(pShapes,n);sumofvolume(pShapes,n);return 0;
}

PTA---C++实现,计算正方体、圆柱体的表面积、体积相关推荐

  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. 6-4 计算圆柱体的表面积(函数名隐藏)

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

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

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

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

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

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

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

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

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

  9. 零起点学算法10——求圆柱体的表面积

    零起点学算法10--求圆柱体的表面积 Description 很简单的问题,求圆柱体的表面积 Input 多组测试数据,每组输入底面半径r和高h Output 每组输出圆柱体的表面积,保留3位小数 S ...

  10. 自定义函数求圆和圆柱体的表面积

    本题要求自定义函数求圆和圆柱体的表面积. 自定义两个area函数,一个形参的实现求圆的面积,两个形参的实现求圆柱体的表面积.PI是全局符号常量. 函数接口定义: double area(double ...

最新文章

  1. Linux BSP非标准HDMI分辨率
  2. php mail函数_PHP发送电子邮件函数mail详解
  3. 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计
  4. 山西计算机应用基本技能,山西应用科技学院计算机应用技术专业课程介绍/专业代码-卧龙指南...
  5. linux下播放wma格式,Ubuntu 20.04中使Rhythmbox支持WMA格式文件播放
  6. 【代理】http代理之快代理
  7. dimm和udimm_RDIMM和UDIMM内存的区别
  8. Postman设置请求cookie
  9. 组装服务器3c,服务器3C认证如何办理
  10. php模板开发教程,discuz模板开发教程系列教程整理
  11. 040 罗尔定理与零点定理、介值定理综合应用;柯西中值定理; 型二( f(n) (ξ) =0 )
  12. 计算机中利用的物理原理,现代电脑技术中物理原理.doc
  13. 微信小程序 基础库版本与客户端版本对应关系
  14. 7-24 到底是不是太胖了 (10分)
  15. PHP多人聊天系统,ttltCha​tPHP多人在线聊天系统软件源码 v0.0.12
  16. springboot 事件监听器
  17. 图说三极管,太容易懂了!(史上最详细版本)
  18. 手机安装python jam有什么影响_Python入门用Bug修改和.jam文件需要注意的问题
  19. AOP—面向切面编程
  20. 把绝对时间转换成当前时间

热门文章

  1. I. chino with mates
  2. spark报错:CREATE TEMPORARY TABLE
  3. 《资治通鉴》读书笔记及阅读感悟2200字
  4. 8.0强行转换后变成了7_干货|从中式英语,到雅思听力8.0,外研社英语演讲省一,非英专的她做了这些...
  5. USART向串口助手发送数据(DMA方式)
  6. [FPGA 日常记录] #5 常见 FPGA 论坛排名 / 按活跃度
  7. Python编码,解码问题
  8. 线上服务器CPU占用率高如何排查定位问题?
  9. 云演CTF刷题 lfi
  10. .bat文件实现一个简单的http请求工具(支持get和post请求)