第十一周项目实践1————点-圆-圆柱类族设计
2016-05-05 11:09
183 查看
问题及代码:
运行结果:
学习心得:
通过本次练习我理解了派生类构造函数的意义及运用,能够熟练掌握派生类的运用
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年5月4日 * 版本号:codeblock * * 问题描述: 点-圆-圆柱类族设计 * 输入描述: * 程序输出: 输出结果 */ #include<iostream> using namespace std; class Point { public: Point(double x=0,double y=0); double getX() { return x; } double getY() { return y; } void setPoint(double,double); void show(); protected: double x; double y; }; Point::Point(double x,double y) { this->x=x; this->y=y; } void Point::setPoint(double x,double y) { this->x=x; this->y=y; } void Point::show() { cout<<"该点坐标为"<<x<<","<<y<<endl; } class Circle:public Point { public: Circle(double a=0,double b=0,double r=0); void setRadius(double); void show(); double getRadius( ) const { return rd; } double area()const; protected: double rd; }; Circle::Circle(double a,double b,double r):Point(a,b),rd(r){} void Circle::setRadius(double r) { rd=r; } double Circle::area()const { return 3.14*rd*rd; } void Circle::show() { cout<<"圆的面积为的"<<area()<<endl; } class Cylinder:public Circle { public: Cylinder(double a=0,double b=0,double r=0,double he=0); void setHeight(double); double area()const; void show()const; double volume()const; double getH()const { return h; } private: double h; }; Cylinder::Cylinder(double a,double b,double r,double he):Circle(a,b,r),h(he){} double Cylinder::area()const { return 2*Circle::area()+2*3.14*rd*h; } void Cylinder::setHeight(double h) { this->h=h; } double Cylinder::volume()const { return 3.14*rd*rd*h; } void Cylinder::show()const { cout<<"圆柱体的面积为"<<area()<<endl; cout<<"圆柱的体积为"<<volume()<<endl; } int main() { Cylinder cy1(3.5,6.4,5.2,10); cout<<"\noriginal cylinder:\nx="; cy1.show(); cy1.setHeight(15); cy1.setRadius(7.5); cy1.setPoint(5,5); cout<<"\nnew cylinder:\n"; cy1.show(); return 0; }
运行结果:
学习心得:
通过本次练习我理解了派生类构造函数的意义及运用,能够熟练掌握派生类的运用
相关文章推荐
- 数据库安全--授权GRANT和回收REVOKE
- java 集合类Array、List、Map区别和联系
- POJ 2096 Collecting Bugs(概率DP求期望)
- c++第五次上机
- Android--自定义控件---自动分页的GridView
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- Struts2+jquery.form.js实现图片与文件上传的方法
- mongdb在linux环境下设置开机自动启动
- 进程调度--load balance
- android popupwindow的实现
- Win10怎么给照片文件设置备注?win10自带备注功能介绍
- Spring+SpringMVC+MyBatis+Maven框架整合
- Android随手记
- Mongodb的分片和副本集
- sed命令简介
- 如果Android项目右击,run as Android Applicantion后,并选择虚拟机,但是在虚拟机上没有找到该应用,怎么办?
- 原创:分享封装好的面向JAVA的memcached客户端操作类
- java基础作业之猜数字游戏;
- 160505、oracle 修改字符集 修改为ZHS16GBK
- Leetcode 86. Partition List