2015年大一下第8周项目3-类族的设计
来源:互联网 发布:抗战网络电影 编辑:程序博客网 时间:2024/05/17 23:13
/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:王耀鹏*完成日期:2015年5月14日*版本号:v1.0**问题描述:由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务。*输入描述:无。*输出描述:圆柱体的表面积,体积等信息。*/#include<iostream>using namespace std;class Point{public: Point(double a,double b):x(a),y(b) {}; double getx(); double gety(); void setXY(double a,double b); friend ostream &operator <<(ostream &out,Point &p);protected: double x,y;};double Point::getx(){ return x;}double Point::gety(){ return y;}void Point::setXY(double a,double b){ x=a; y=b;}ostream &operator <<(ostream &out,Point &p){ cout<<"("<<p.x<<","<<p.y<<")"<<endl; return out;}class Circle:public Point{public: Circle(double a,double b,double c):Point(a,b),r(c) {}; double area(); double getR(); void setR(double a); friend ostream &operator <<(ostream & out ,Circle &c);protected: double r;};double Circle::area(){ return 3.1415926*r*r;}double Circle::getR(){ return r;}void Circle::setR(double a){ r=a;}ostream &operator <<(ostream & out ,Circle &c){ cout<<"该圆是以"<<"("<<c.x<<","<<c.y<<")为圆心,"<<c.r<<"为半径的圆。该圆的面积为:"<<c.area()<<endl; return out;}class Cylinder:public Circle{public: Cylinder(double a,double b,double c,double d):Circle(a,b,c),h(d) {}; double Sarea(); double volume(); double getH(); void setH(double a); friend ostream &operator <<(ostream &out ,Cylinder &c);private: double h;};double Cylinder::Sarea(){ return 3.1415926*2*r*h+3.1415926*r*r*2;}double Cylinder::volume(){ return 3.1415926*r*r*h;}double Cylinder::getH(){ return h;}void Cylinder::setH(double a){ h=a;}ostream &operator<<(ostream &out ,Cylinder &c){ cout<<"该圆柱是以"<<"("<<c.x<<","<<c.y<<")为中心,"<<c.r<<"为半径,"<<c.h<<"为高的圆柱体。该圆柱体的表面积为:"<<c.Sarea()<<",体积为:"<<c.volume()<<endl; return out;}int main( ){ Cylinder cy1(3.5,6.4,5.2,10); cout<<"\noriginal cylinder:\nx="<<cy1.getx( )<<", y="<<cy1.gety( )<<", r=" <<cy1.getR( )<<", h="<<cy1.getH( )<<"\narea="<<cy1.Sarea() <<",volume="<<cy1.volume()<<endl; cy1.setH(15); cy1.setR(7.5); cy1.setXY(5,5); cout<<"\nnew cylinder:\n"<<cy1; return 0;}
运行结果:
0 0
- 2015年大一下第8周项目3-类族的设计
- 2015年大一下第12周项目3--立体类族共有的抽象类
- 2015年大一下第1周项目3-长方体类
- 2015年大一下第12周项目2-形状类族的中的纯虚函数
- 2015年大一下第3周项目2-分数类的雏形
- 2015年大一下第3周项目4-指向学生类的指针
- 2015年大一下第5周项目3-人数不定的工资类
- 2015年大一下第3周项目1-三角形的构造函数(2)设计默认构造函数
- 2015年大一下第8周项目0-是春哥啊
- 2015年大一下第1周项目4-时间类
- 2015年大一下第2周项目3-程序的多文件组织
- 2015年大一下第4周项目3-用多文件组织多个类的程序
- 2015年大一下第5周项目2-我的数组类
- 2015年大一下第6周项目4-String类的构造
- 2015年大一下第7周项目4-我的向量类
- 2015年大一下第8周项目1-存储班长信息的学生类(1)访问权限为public
- 2015年大一下第8周项目1-存储班长信息的学生类(2)访问权限为private
- 2015年大一下第6周项目3-分数类中的运算符重载(1)分数类的加减乘除
- 如何管理多个dialog弹出
- SSO 原理浅谈
- Keil C51内存
- 前端构建工具gulpjs的使用介绍及技巧
- 黑马程序员_Java基础_IO(2)
- 2015年大一下第8周项目3-类族的设计
- 学linux,不用必须使用linux的图形界面
- 简单分页后台计算
- jmeter脚本参数化(三)
- 短信发送
- python MySQLdb API的数据库更新操作
- HashMap的接口原理和遍历方式
- 黑马程序员--ios基础--oc-内存管理之ARC、Block
- 前端分页拼接页码