第十一周项目训练8.3 圆,圆柱类族的设计
2016-06-01 19:15
309 查看
/*
*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights reserved.
*文件名称:main.cpp
*作者:王玙璠
*完成日期:2016年6月1日
问题描述:问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、
体积并输出并且完成要求的计算任务:
(1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试;
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其
他需要的成员函数,设计main函数完成测试;
(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面
积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。
程序:
运行结果:
*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights reserved.
*文件名称:main.cpp
*作者:王玙璠
*完成日期:2016年6月1日
问题描述:问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、
体积并输出并且完成要求的计算任务:
(1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试;
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其
他需要的成员函数,设计main函数完成测试;
(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面
积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。
程序:
#include <iostream> using namespace std; #define PI 3.1415926 class Point { public: Point(double xx,double yy):x(xx),y(yy){} double getX( ) { return x; } double getY( ) { return y; } void show(); protected: double x,y; }; void Point::show() { cout<<"("<<x<<","<<y<<")"<<endl; } class Circle:public Point //定义Point的派生类Circle { public: Circle(double xx,double yy,double rr):Point(xx,yy),r(rr){} void setR(double rr); double getR() { return r; } double area(); void show(); protected: double r; }; void Circle::setR(double rr) { r=rr; } double Circle::area() { return PI*r*r; } void Circle::show() { cout<<"中心为:("<<x<<","<<y<<") 半径为:"<<r<<"面积为:"<<area()<<endl; } class Cylinder:public Circle { public: Cylinder(double xx,double yy,double rr,double hh):Circle(xx,yy,rr),h(hh){} void setH(double hh); double getH() { return h; } double area(); double volume(); void show(); protected: double h; }; void Cylinder::setH(double hh) { h=hh; } double Cylinder::area() { return 2*Circle::area()+2*PI*r*h; } double Cylinder::volume() { return Circle::area()*h; } void Cylinder::show() { cout<<"面积为:"<<area()<<"体积为:"<<volume()<<endl; } int main() { Point p1(3,5); cout<<"点"<<endl; p1.show(); Circle c(1,1,2); cout<<"圆形"<<endl; c.show(); cout<<"圆柱"<<endl; Cylinder cy(1,1,2,3); cy.show(); return 0; }
运行结果:
相关文章推荐
- HDU 2516取石子游戏(巴什博弈)
- [数据结构]10.4实现avl Tree的插入和删除操作。
- [数据结构]10.2实现binary search tree的查找和插入操作,用非递归的方法实现
- UVA oj 10300 Ecological Premium(水题)
- JavaScript学习--Item31 值得你挑战的JavaScript面试题(45题)
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- Linux Shell系列教程之(六)Shell数组
- U3D多点触控框架实例(上)
- Web经典配置vs登录用户的信息进行保存vs绝对路径
- 堆外内存(off-heap),堆内存(on-heap)
- zookeeper framework 之 Netflix curator
- Android支付宝,微信,银联支付支付的集成
- QT creator的安装与使用 linux
- 连通图_连通分量FloodFill
- 机器学习十大算法的核心思想、工作原理、适用 情况及优缺点
- 三维重建基础
- 深入理解java中HelloWorld的执行流程
- SICP 练习1.18
- 三维重建基础
- Linux 中的Makefile 的一些简单使用