第十一周项目4——类族的设计

来源:互联网 发布:先帝知臣谨慎中考题 编辑:程序博客网 时间:2024/06/06 00:01
/**Copyright (c) 2014,烟台大学计算机学院void change(int a[8][8]);*All rights reserved.*文件名称:main.cpp*作者:苏强*完成日期:2015年5月18日*版本号:v1.0**问题描述:定义一个Point类,派生一个Circl类,再派生出一个Cylinder类,并输出他们的信息*/#include<iostream>#include<Cmath>using namespace std;class Point //定义坐标点类{protected:    double x;    double y;public:    Point(double xx,double yy):x(xx),y(yy) {}    void setPoint(double a,double b);    friend ostream &operator<<(ostream &output,Point &p);};void Point::setPoint(double a,double b){    x=a;    y=b;}ostream &operator<<(ostream &output,Point &p){    output<<"point:("<<p.x<<","<<p.y<<")"<<endl;    return output;}class Circle:public Point{protected:    double r;public:    Circle(double a,double b,double R):Point(a,b),r(R) {}    void setR(double Radius);    double area();    friend ostream&operator<<(ostream&output,Circle c);};double Circle::area(){    return r*r*3.14;}void Circle::setR(double Radius){    r=Radius;}ostream&operator<<(ostream&output,Circle c){    output<<"Center:"<<"("<<c.x<<"<"<<c.y<<"),R="<<c.r<<",Area="<<c.area()<<endl;    return output;}class Cylinder:public Circle{private:    double h;public:    Cylinder(double a,double b,double r,double H);    void setHeight(double Height);    double area1();    double volume();    friend ostream&operator<<(ostream&output,Cylinder c);};Cylinder::Cylinder(double a,double b,double r,double H):Circle(a,b,r),h(H){}void Cylinder::setHeight(double Height){    h=Height;}double Cylinder::area1(){    return (2*r*r*3.14+2*3.14*r*h);}double Cylinder::volume(){    return 3.14*r*r*h;}ostream&operator<<(ostream&output,Cylinder c){    output<<"Center:"<<"("<<c.x<<","<<c.y<<"),R="<<c.r<<",H="<<c.h<<",Area="<<c.area()<<endl;    output<<"AllArea="<<c.area1()<<",Volunme="<<c.volume()<<endl;    return output;}int main( ){    Cylinder cy1(3.5,6.4,5.2,10);    cout<<cy1<<endl;    cy1.setHeight(15);    cy1.setR(7.5);    cy1.setPoint(5,5);    cout<<"\nnew cylinder:\n"<<cy1;    return 0;}


 

 

 

 

 

0 0