第十三周 项目三 立体类族共有的抽象类
来源:互联网 发布:什么软件可以ps图片 编辑:程序博客网 时间:2024/05/06 07:45
问题及代码:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:Project.cpp*作 者:chenqin.*完成日期:2015年6月3日*版 本 号:v1.0**问题描述: 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。*程序输入:略*程序输出:略*/#include <iostream>using namespace std;class CSolid{public: virtual double area()const=0; virtual double volume()const=0;};class CCube:public CSolid{public: CCube(double a=0); virtual double area()const { return 6.0*length*length; } virtual double volume()const { return length*length*length; }protected: double length;};CCube::CCube(double a){ length=a;}class CBall:public CSolid{public: CBall(double r=0); virtual double area()const { return 4*3.14*rad*rad; } virtual double volume()const { return (4/3)*3.14*rad*rad*rad; }protected: double rad;};CBall::CBall(double r){ rad=r;}class CCylinder:public CSolid{public: CCylinder(double r=0,double h=0); virtual double area()const { return 2.0*3.14*rad*rad+2.0*3.14*rad*height; } virtual double volume()const { return 3.14*rad*rad*height; }private: double height; double rad;};CCylinder::CCylinder(double r,double h){ rad=r; height=h;}int main(){ CSolid *p; CCube z(6); cout<<"该正方体的表面积为:"; p=&z; cout<<p->area()<<endl; cout<<"改正方体的体积为:"<<p->volume()<<endl; CBall q(10); cout<<"该球体的表面积为:"; p=&q; cout<<p->area()<<endl; cout<<"该球体的体积为:"<<p->volume()<<endl; CCylinder y(5,10); p=&y; cout<<"该圆柱体的表面积为:"<<p->area()<<endl; cout<<"该圆柱体的体积为:"<<p->volume()<<endl;}
运行结果:
知识点总结:和前面的程序都是一样的道理。
学习心得:这周的项目少,也比较简单,完成起来还是蛮轻松的。
0 0
- 第十三周项目:立体类族共有的抽象类
- 第十三周 项目三:立体类族共有的抽象类
- 第十三周项目三:立体类族共有的抽象类
- 第十三周项目三 立体类族共有的抽象类
- 第十三周项目三——立体类族共有的抽象类
- 第十三周项目三 立体类族共有的抽象类
- 第十三周项目三立体类族共有的抽象类
- 第十三周 项目三--立体类族共有的抽象类
- 15第十三周项目三——立体类族共有的抽象类
- 第十三周项目三:立体类族共有的抽象类
- 2015年第十三周项目三:立体类族共有的抽象类
- 第十三周 项目三 立体类族共有的抽象类
- 第十三周项目三--立体类族共有的抽象类
- 第十三周项目三-立体类族共有的抽象类
- 第十三周 课后实践:项目三——立体类族共有的抽象类
- 第十三周项目-4-立体族类共有的抽象类
- 第十三周(立体类族共有的抽象类)
- 第十三周--立体类族共有的抽象类
- C#第五次作业:开源项目“网页正文提取”的理解
- u-boot的Makefile分析
- CentOS 7 可动态切换运行级别,设置默认运行级别(启动方式)
- sudo:无法解析主机 解决方案
- 重装系统以及无线打印机连接
- 第十三周 项目三 立体类族共有的抽象类
- 求职面试自我介绍技巧
- 修改swap交换分区的大小
- 杂想
- Android 上传中文到服务器时的乱码问题
- 面试时怎样做精彩的自我介绍
- 百度地图创建InfoWindow自定义View显示
- 浅谈求职面试礼仪
- 似然函数