第十一周项目1——点-圆-圆柱类族的设计

来源:互联网 发布:windows smb远程漏洞 编辑:程序博客网 时间:2024/05/23 12:13

问题及代码:

/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作    者:赵志君 * 完成日期:2016年5月12日 * 版 本 号:v1.0 * * 问题描述:先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; */#include <iostream>using namespace std;class Point{private:    double x,y;public:    Point(double a=0,double b=0):x(a),y(b){};    void pointShow();    double getx(){return x;}    double gety(){return y;}    };void Point::pointShow(){    cout<<"x="<<x<<"  y="<<y<<endl;}int main(){    Point a(1,2);    a.pointShow();    return 0;}

/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作    者:赵志君 * 完成日期:2016年5月12日 * 版 本 号:v1.0 * * 问题描述:以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试; */#include <iostream>#include <cmath>using namespace std;class Point{protected:    double x,y;public:    Point(double m=0,double n=0):x(m),y(n){};    void showPoint();    double getx(){return x;}    double gety(){return y;}};void Point::showPoint(){    cout<<"x="<<x<<"  y="<<y<<endl;}class Circle:protected Point{public:    Circle(double m,double n):Point(m,n){};    void handle(Point &p);    void show()    {        cout<<"圆的半径:"<<r<<endl;        cout<<"圆的面积:"<<area<<endl;    }private:    double area;    double pi=3.1415926;    double r;};void Circle::handle(Point &p){    r=sqrt((x-p.getx())*(x-p.getx())+(y-p.gety())*(y-p.gety()));    area=pi*r*r;}int main(){    Point a(1,2);    a.showPoint();    Circle c(1,1);    c.handle(a);    c.show();    return 0;}


/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作    者:赵志君 * 完成日期:2016年5月12日 * 版 本 号:v1.0 * * 问题描述:再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),             以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。 */#include <iostream>#include <cmath>using namespace std;class Point{protected:    double x,y;public:    Point(double m,double n):x(m),y(n){};    void showPoint();    double getx(){return x;}    double gety(){return y;}};void Point::showPoint(){    cout<<"点的 x="<<x<<"  y="<<y<<endl;}class Circle:protected Point{public:    Circle(double m,double n,double a,double b):Point(m,n),p(a,b){};    void handle();    void show()    {        showPoint();        cout<<"圆的半径:"<<r;        cout<<"   圆的面积:"<<area<<endl;    }protected:    double area;    double pi=3.1415926;    double r;    Point p;};void Circle::handle(){    r=sqrt((x-p.getx())*(x-p.getx())+(y-p.gety())*(y-p.gety()));    area=pi*r*r;}class Cylinder:protected Circle{private:    double h;    double bArea;    double v;public:    Cylinder(double m,double n,double a,double b,double hh):Circle(m,n,a,b),h(hh){};    void Area();    void yolume();    void showCylinder();};void Cylinder::Area(){    handle();    bArea=2*area+2*pi*r*h;}void Cylinder::yolume(){    v=area*h;}void Cylinder::showCylinder(){    show();    cout<<"圆柱体的表面积:"<<bArea<<endl;    cout<<"圆柱体的体积:"<<v<<endl;}int main(){    Cylinder zhu(1,1,1,2,10);    zhu.Area();    zhu.yolume();    zhu.showCylinder();    return 0;}



0 0
原创粉丝点击