第十周项目4——类族的设计(3)
来源:互联网 发布:c语言菜单设计模板 编辑:程序博客网 时间:2024/05/22 15:39
问题及代码:
/**Copyright (c)2015,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:point.cpp*作 者:赵敏*完成日期:2015年5月25日*版 本 号:v1.0**问题描述:1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试;(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试;(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。 要求编写程序,设计出各类中“需要的成员函数”,包括构造函数、析构函数、修改数据成员和获取数据成员的公共接口、用于输出的重载运算符“<<”函数等。 (提示:此任务可以分为三个子任务分成若干步骤进行。先声明基类,再声明派生类,逐级进行,分步调试。——这种方法适用于做任何的项目)。*/#include<iostream>#include<Cmath>using namespace std;class Point //定义坐标点类{public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; friend ostream & operator<<(ostream &,const Point &); double getX() { return x; } double getY() { return y; }protected: double x,y; //点的横坐标和纵坐标};ostream & operator<<(ostream &output,const Point &p){ output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}class Circle:public Point{protected: double radius;public: Circle (double x,double y,double r):Point(x,y),radius(r){} double area()const { return 3.14*radius*radius; } friend ostream &operator<<(ostream &,const Circle &);};ostream &operator<<(ostream &output,const Circle &c){ output<<"["<<c.x<<", "<<c.y<<"],"<<" area="<<c.area( )<<endl; return output;}class Cylinder:public Circle{protected: double height;public: Cylinder(double x,double y,double r,double h):Circle(x,y,r),height(h){} double area( )const { return 2*Circle::area( )+2*3.14*radius*height; } double volume()const { return Circle::area()*height; } friend ostream& operator<<(ostream&,const Cylinder&);};ostream &operator<<(ostream &output,const Cylinder& cy){ output<<"point=["<<cy.x<<","<<cy.y<<"]" <<"\narea="<<cy.area( )<<", volume="<<cy.volume( )<<endl; return output;}int main(){ Cylinder c(2.2,3.4,4,5); cout<<"point:x="<<c.getX()<<", y="<<c.getY()<<", area="<<c.area( )<<",volume="<<c.volume()<<endl; return 0;}
运行结果:
0 0
- 第十周项目4——类族的设计(3)
- 第十一周项目4——类族的设计
- 第十一周项目4——类族的设计
- 第十周项目4—— 类族的设计(1)
- 第十周项目4——类族的设计(2)
- 第十一周上机实践项目4——类族的设计(3)
- 第十一周上机实践项目4——类族的设计(1)
- 第十一周上机实践项目4——类族的设计(2)
- 第十周 【项目4 - 类族的设计】
- 第十一周项目四——类族的设计
- 第十一周【项目4 - 类族的设计】(1)
- 第十一周【项目4 - 类族的设计】(2)
- 第十一周 项目4-类族的设计(2)
- 第十一周 项目4 类族的设计(1)
- 第十一周 项目四(3):类族的设计
- 第十一周 项目四--类族的设计(3)
- 第十一周 项目四 类族的设计(3)
- 第十周第十一周上机实践项目-项目1-3-点-圆-圆柱类族的设计
- Hadoop集群搭建遇上的问题
- 多边形裁剪圆的实现细节之求直线段与圆的交点
- Android 获取本地外网IP、内网IP、计算机名等信息
- IDF实验室:倒行逆施--python ByteCode
- Java 类的继承
- 第十周项目4——类族的设计(3)
- hdu 2833 WuKong【floyd】
- 【leetcode】Rotate List
- 利用VML标记语言画图、动画制作
- Codeforces Round #149 (Div. 2) Dispute (队列+容器模拟)
- 【java之路】我的java之路
- Let the Balloon Rise
- 状态位
- tomcat