C++走向远洋——60(项目四、立体类族共有的抽象类)
*/
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:text.cpp
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年6月1日
* 版本号:V1.0
* 问题描述: 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。
* 程序输入:无
* 程序输出:见运行结果
*/
#include<iostream>
using namespace std;
const double pai=3.1415;
class Csolid
{
public:
virtual double SurfaceArea() const=0;
virtual double Volume()const=0;
};
class CCube:public Csolid
{
public:
CCube(double len=0);
double SurfaceArea()const;
double Volume()const;
private:
double length;
};
CCube::CCube(double len)
{
length=len;
}
double CCube::SurfaceArea()const
{
double c;
c=6*length*length;
return c;
}
double CCube::Volume()const
{
double c;
c=length*length*length;
return c;
}
class CBall:public Csolid
{
private:
double radius;
public:
CBall(double r=0);
double SurfaceArea()const;
double Volume()const;
};
CBall::CBall(double r)
{
radius=r;
}
double CBall::SurfaceArea()const
{
double c;
c=4*pai*radius*radius;
return c;
}
double CBall::Volume()const
{
double c;
c=pai*radius*radius*radius*4/3;
return c;
}
class CCylinder:public Csolid
{
private:
double radius;
double height;
public:
CCylinder(double r=0,double high=0);
double SurfaceArea()const;
double Volume()const;
};
CCylinder::CCylinder(double r,double high)
{
radius=r;
height=high;
}
double CCylinder::SurfaceArea() const
{
double c;
c=2*pai*radius*radius+2*pai*radius*height;
return c;
}
double CCylinder::Volume() const
{
double c;
c=pai*radius*radius*height;
return c;
}
int main( )
{
Csolid *p;
double s,v;
CCube x(30);
cout<<"立方体边长为 30 "<<endl;
p=&x;
s=p->SurfaceArea( );
v=p->Volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CBall y(4.5);
cout<<"球体半径为 4.5 "<<endl;
p=&y;
s=p->SurfaceArea( );
v=p->Volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CCylinder z(10,20);
cout<<"圆柱体底面半径、高分别为 10, 20"<<endl;
p=&z;
s=p->SurfaceArea( );
v=p->Volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
return 0;
}
运行结果:
C++走向远洋——60(项目四、立体类族共有的抽象类)的更多相关文章
- C++走向远洋——(项目二、存储班长信息的学生类、派生)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——39(指向学生类的指针)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:zhizhen.cpp * 作者:常轩 * 微信公众号:Worl ...
- C++走向远洋——29(长方柱类)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:长方柱类.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——60(十四周阅读程序、STL中的简单容器和迭代器)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- (转载)项目实战工具类(一):PhoneUtil(手机信息相关)
项目实战工具类(一):PhoneUtil(手机信息相关) 可以使用的功能: 1.获取手机系统版本号 2.获取手机型号 3.获取手机宽度 4.获取手机高度 5.获取手机imei串号 ,GSM手机的 ...
- docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- [Effective Java]第四章 类和接口
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 存储数据键和项目对的类(Dictionary对象)
存储数据键和项目对的类(Dictionary对象) <% Class Dictionary Public Copyright, Developer, Name, Version, Web Pri ...
- uml系列(四)——类图
类图是uml的核心.学习类图,总共须要掌握三个部分:类:类之间的关系:类图怎么画. 首先,类.老规矩,先来张图. 类是什么:举个简单的样例:猫.狗.猪三个都是动物.这里面的"动物" ...
随机推荐
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:输入数据处理框架
import tensorflow as tf # 1. 创建文件列表,通过文件列表创建输入文件队列 files = tf.train.match_filenames_once("F:\\o ...
- 绿洲作业第二周 - Y3每日中文学习任务清单
1. 本周仍是古诗学习周,老师已在“最美诵读”上布置本周需完成的任务,请孩子在“最美诵读”小程序中,结合老师发的学习任务清单,合理安排时间进行学习.如果孩子另有学习安排,可在周日(2.23)23:59 ...
- Java之多线程方式二(实现Runnable接口)
/** * 创建多线程的方式二:实现Runnable接口 * 1. 创建一个实现了Runnable接口的类 * 2. 实现类去实现Runnable中的抽象方法:run() * 3. 创建实现类的对象 ...
- drf框架概况-resful接口规范-请求模块-渲染模块-Postman-drf请求生命周期
drf框架 全称:django-rest- framework 知识点: """ 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码-基于restful ...
- jQuery方法及使用
jQuery内容: 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each.data.Ajax 剩余未写的有: 1.表单筛选器: :text :password :fi ...
- ZJNU 1133 - Subset sequence——中级
推出n=1到4时,An排列的种类数分别为1 4 15 64可得(1+1)*2=4(4+1)*3=15(15+1)*4=64...故用一数列r[n]记录An的种类总数当n=3时,列举出以下15种从大到小 ...
- drf中的请求模块和渲染模块
请求模块:request对象 APIView request.py # 在rest_framework.request.Request实例化方法中 self._request = request 将原 ...
- kaggle——绝地求生游戏最终排名预测
绝地求生游戏最终排名预测 知识点 数据读取与预览 数据可视化 构建随机森林预测模型 导入数据并预览 先导入数据并预览.本次实验同样来源于 Kaggle 上的一个竞赛: 绝地求生排名预测 ,由于原始数据 ...
- druid yml
application-db.yml pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true p ...
- VB6制作的自定义ocx控件
下载后,解压缩,有一个TreeviewExplorer.ocx文件 在Excel的开发工具选项卡,点击插入ActiveX控件 VBA窗体,VB6窗体.VB.Net窗体都可以使用这个自定义控件的功能. ...