您的位置:首页 > 其它

第十一周项目四类族的设计(2)

2015-05-21 16:34 253 查看
问题及代码:

/*
* Copyright (c) 2014, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:test.cpp
* 作    者:郝俊宇
* 完成日期:2015年 5 月21 日
* 版 本 号:v1.0
* 问题描述:(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试;
* 输入描述:无
* 程序输出:对应的内容
*/
#include <iostream>

using namespace std;
const double pi=3.14;
class Point
{
public:
Point(double i=0,double j=0):x(i),y(j) {}
~Point() {}
double getx()
{
return x;
}
double gety()
{
return y;
}
void setxy(double,double);
friend ostream&operator<<(ostream &out,const Point &p);
protected:
double x;
double y;
};
void Point::setxy(double i,double j)
{
x=i;
y=j;
}
ostream &operator<<(ostream &out,const Point &p)
{
out<<"("<<p.x<<","<<p.y<<")";
return out;
}
class Circle:public Point
{
public:
Circle(double i,double j,double k):Point(i,j),r(k) {}
~Circle() {}
void setr(double t);
double getr()const{return r;}
friend ostream&operator<<(ostream &out,const Circle &c);
double area1()const;
protected:
double r;
};
void Circle::setr(double t)
{
r=t;
}
double Circle::area1()const
{
return pi*r*r;
}
ostream &operator<<(ostream &out,const Circle &c)
{
out<<"圆心为:"<<"("<<c.x<<","<<c.y<<")"<<"半径为:"<<c.r<<"圆的面积为:"<<c.area1();
return out;
}
int main()
{
Point p(1,2);
cout<<"x="<<p.getx()<<endl;
cout<<"y="<<p.gety()<<endl;
cout<<"点的坐标为:";
cout<<p<<endl;
p.setxy(3,4);
cout<<"x="<<p.getx()<<endl;
cout<<"y="<<p.gety()<<endl;
cout<<"新的点的坐标为:";
cout<<p<<endl;
Circle c(3,4,5);
cout<<"x="<<c.getx()<<",y="<<c.gety()<<",r="<<c.getr()<<endl;
cout<<"圆心为:"<<"("<<c.getx()<<","<<c.gety()<<")"<<"半径为:"<<c.getr()<<"圆的面积为:"<<c.area1()<<endl;
c.setr(6);
cout<<"新的半径为:"<<c.getr()<<endl;
cout<<c<<endl;
return 0;
}


运行结果:



知识点总结:

派生的应用

学习心得:

自己写完程序运行之后出现几个错误,但是我自己怎么看都觉着没有错误,然后就看了看老师的博文,发现和老师写的只是差两个const,然后我也加上了,但是一运行出现了更多的错误,但是我还是觉着这些地方都没有错,我就把const的位置变了一下,一编译,没有错误,哎,又被const玩弄了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: