喜刷刷4——shape类—4(完成RsubC类)

原创 2015年07月06日 20:01:10
小聪送给小亮和小华的形状他们都很喜欢,小亮和小华非要比一下他们两个的形状,来看看小聪更爱谁,请完成RsubC类。RsubC类中包括Rectangle类和Circle类的数据成员,新增布尔类型的数据成员sign(sign等于0时,新面积等于Rectangle+Circle,sign等于1时,新面积等于Rectangle-Circle),新定义了求面积的成员函数area()。但是小聪没有为RsubC类写构造函数和成员函数,请帮助小聪完成RsubC类。

小强写的文件头和Shape类

#include<iostream>
#define PI 3.14
using namespace std;
class Shape
{
public: 
 Shape();
 Shape(int c);
 int getcolor();
 double area();
protected:
 int color;
};
Shape::Shape()
{
 color=0;
}
Shape::Shape(int c)
{
 color=c;
}
int Shape::getcolor()
{
 return color;
}
double Shape::area()
{
 return 10000;
}

小聪写的Rectangle类
class Rectangle:public Shape
{
public:
 Rectangle(int c,double w,double h);
 double getwidth();
 double getheight();
 double area();
 double price();
protected:
 double height;
 double width;
};
Rectangle::Rectangle(int c,double w,double h):Shape(c)
{
 width=w;
 height=h;
}
double Rectangle::getwidth()
{
 return width;
}
double Rectangle::getheight()
{
 return height;
}
double Rectangle::area()
{
 return height*width;
}
double Rectangle::price()
{
 return height*width*color;
}

小聪写的Circle类

class Circle:public Shape
{
public:
 Circle(int c,double r);
 double getradius();
 double area();
 double price();
protected:
 double radius;
};

Circle::Circle(int c,double r):Shape(c)
{
 radius=r;
}
double Circle::getradius()
{
 return radius;
}

double Circle::area()
{
 return PI*radius*radius;
}
double Circle::price()
{
 return PI*radius*radius*color;
}

小聪的测试函数:

int main()

{

RsubC rc=RsubC(1,2,3,1,1);
cout<<"RsubC area:"<<rc.area()<<endl;
return 0;

}

#include<iostream>
#define PI 3.14
using namespace std;
class Shape
{
public:
 Shape();
 Shape(int c);
 int getcolor();
 double area();
protected:
 int color;
};
Shape::Shape()
{
 color=0;
}
Shape::Shape(int c)
{
 color=c;
}
int Shape::getcolor()
{
 return color;
}
double Shape::area()
{
 return 10000;
}
class Rectangle:public Shape
{
public:
 Rectangle(int c,double w,double h);
 double getwidth();
 double getheight();
 double area();
 double price();
protected:
 double height;
 double width;
};
Rectangle::Rectangle(int c,double w,double h):Shape(c)
{
 width=w;
 height=h;
}
double Rectangle::getwidth()
{
 return width;
}
double Rectangle::getheight()
{
 return height;
}
double Rectangle::area()
{
 return height*width;
}
double Rectangle::price()
{
 return height*width*color;
}

class Circle:public Shape
{
public:
 Circle(int c,double r);
 double getradius();
 double area();
 double price();
protected:
 double radius;
};

Circle::Circle(int c,double r):Shape(c)
{
 radius=r;
}
double Circle::getradius()
{
 return radius;
}

double Circle::area()
{
 return PI*radius*radius;
}
double Circle::price()
{
 return PI*radius*radius*color;
}
class RsubC:public Shape
{
public:
 RsubC(int c,double w,double h,double r,bool s);
 double area();
private:
 Rectangle rectangle;
 Circle circle;
 bool sign;
};
RsubC::RsubC(int c,double w,double h,double r,bool s):Shape(c),rectangle(c,w,h),circle(c,r),sign(s){}
double RsubC::area()
{
if(sign==0)
    return rectangle.area()+circle.area();
else
    return rectangle.area()-circle.area();
}
int main()
{
RsubC rc=RsubC(1,2,3,1,1);
cout<<"RsubC area:"<<rc.area()<<endl;
return 0;

}

结果输出小聪测试的RsubC的面积即RsubC area:2.86

学习总结:

这几个shape类的题层层嵌套,循序渐进,很有用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

定义一个基类shape,实现正方形,矩形,圆类

#include  using namespace std;   const float PI = (float)3.14159;   class Shape{ p...
  • z1002137615
  • z1002137615
  • 2015年11月05日 18:36
  • 2884

建立一个Shape类,有Circle(圆形)和Rect(矩形)子类

Shape类有zhouchang()和area()两种方法。 Rect有cha()用于比较长宽的差,若长大于宽输出“长比宽大”,否则输出“宽比长大”。(正方形)Squ为Rect子类,在Squ类中,重写...
  • junli_chen
  • junli_chen
  • 2015年10月30日 22:10
  • 1657

MATLAB2009A实现Kmeans实例

本人刚学习数据挖掘没有多久,数据挖掘中要用不少聚类算法。Kmeans作为其中常用的一种算法,聚类效果还行。   下面是我做了几个简单的MATLAB实现Kmeans的小实例 100*2列矩阵聚类成3...
  • pandana
  • pandana
  • 2012年03月31日 15:45
  • 2846

tensorflow:3)实现简单的卷积网络

tensorflow:3)实现简单的卷积网络
  • jiangpeng59
  • jiangpeng59
  • 2017年06月01日 21:11
  • 401

sqlserver连接和操作数据库

1、概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库;第二,建立SqlCommand对象,负责SQL语句的执行和存储过...
  • u011555996
  • u011555996
  • 2018年01月05日 11:24
  • 68

类4

银行存款是一项经典的循环判断及类知识的总结,可以说一道题包罗万象 从整道题来看,分六个小问:开户,登录,存钱,取钱,查询,销户。 所用到的知识有: 1数据类型 2创建方法 3循环 4判断 ...
  • fsqrocket
  • fsqrocket
  • 2014年12月01日 23:02
  • 129

(4)类

*面向对象的特征:封装(访问修饰符)、继承、多态(方法)。 *要用new运算符指示“运行时”为一个类的对象分配内存、实例化对象,并返回对实例化对象的引用。 *垃圾回收器(garage collec...
  • xiaotaibai2008
  • xiaotaibai2008
  • 2011年11月03日 09:29
  • 191

【虚幻4】学习总结4-蓝图碰撞与蓝图间的通信

由于上周考试一周,所以虚幻的学习断了一周,博客也断了一周 最近正好学习蓝图碰撞和蓝图间通信的有关部分,所以,我正好在此记录一下,首先是蓝图和角色间的碰撞,比如下面这个蓝图 蓝图与玩家间的碰撞,其实...
  • shangdi712
  • shangdi712
  • 2016年01月04日 13:41
  • 2714

caffe源码 之 Blob类

caffe中Blob类主要用来表示网络中的数据,包括训练数据,网络各层自身的参数(包括权值、偏置以及它们的梯度),网络之间传递的数据都是通过 Blob 来实现的,同时 Blob 数据也支持在 CPU ...
  • lanxueCC
  • lanxueCC
  • 2016年11月15日 11:41
  • 1287

C#语法和深入string类

1.简述switch选择结构在C#和java中使用上有什么不同。 java语言允许case中没有break语句。 如果当执行的case没有break语句,程序会继续执行下一个case,直到遇到第一...
  • kuqi2001
  • kuqi2001
  • 2017年04月24日 09:27
  • 180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:喜刷刷4——shape类—4(完成RsubC类)
举报原因:
原因补充:

(最多只允许输入30个字)