第十一周上机实践项目 项目1-点-圆-圆柱类的设计(2)

来源:互联网 发布:android解析json 编辑:程序博客网 时间:2024/05/16 06:05

问题及代码:

【项目 - 点-圆-圆柱类族的设计】 
按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: 
(1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; 
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试; 
(3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main函数完成测试。 
要求编写程序,设计出各类中“需要的成员函数”,包括构造函数、析构函数、修改数据成员和获取数据成员的公共接口、用于输出的重载运算符“<<”函数等。

/* Copyright(c)2016,烟台大学计算机与控制工程学院  All rights reserced 文件名称:test.cpp 作    者:蔡汝佳 完成日期:2016年5月18日 版 本 号:v1.0 问题描述: 输入描述: 程序输出:*/#include <iostream>using namespace std;class Point{public:    Point(double xx=0,double yy=0)    {        x=xx;        y=yy;    }    void setpoint(double ,double);    double getx(){return x;}    double gety(){return y;}    void Point_show();protected:    double x,y;};void Point::setpoint(double xx,double yy){    x=xx;    y=yy;}void Point::Point_show(){    cout<<"x="<<x<<"   y="<<y<<endl;}class Circle:public Point{public:    Circle(double xx=0,double yy=0,double rr=0);    void setRaidus(double rr);    double getradius(){return radius;}    double area() const;    void show();protected:    double radius;};Circle::Circle(double xx,double yy,double rr):Point(xx,yy),radius(rr){}void Circle::setRaidus(double rr){        radius=rr;}double Circle::area() const{    return 3.14159*radius*radius;}void Circle::show(){    cout<<"圆心为:("<<x<<","<<y<<")  radius="<<radius<<"  area="<<area()<<endl;}int main(){    Circle c(1.2,2.1,3.6);    c.show();    c.setpoint(2.5,2.5);    c.show();    return 0;}


运行结果:


知识点总结:

运用了继承和派生。

学习心得:

0 0