C++ 设计一个Rectangle类,计算周长,面积,并绘制出来

这篇具有很好参考价值的文章主要介绍了C++ 设计一个Rectangle类,计算周长,面积,并绘制出来。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们先创建具有属性length(长度)和width(宽度)的类Rectangle(长方形),这两个属性的默认值为1。分别提供计算长方形perimeter(周长)和area(面积)的成员函数。另外,为lengthwidth两个属性提供设置获取函数。设置函数应该验证length和width是大于0.0且小于20.0的浮点数

 以下就是上述的实现代码:

//Rectangle类.cpp 
#include <iostream>
#include <iomanip>//使用了这个头文件中的stew()来设置输出宽度
using namespace std;
class Rectangle
{
	private:
		float length;
		float width;
	public:
		Rectangle()//Initialize in constructor(构造函数初始化数据成员)
		{
			length=1.0;
			width=1.0;
		}
		void setLength( float leng )//Length的设置函数
		{
			if( leng>0 || leng<20 )//保证>0且<20
			{
				length=leng;
			}
			else
			{
				cout << "Length out of range!!" << endl;
			}
		}
		void setWidth( float wid )//Width的设置函数
		{
			if( wid>0 || wid<20 )
			{
				width=wid;
			}
			else
			{
				cout << "Width out of range!!" << endl;
			}
		}
		float getLength()//Length的获取函数
		{
			return length;
		}
		float getWidth()//Width的获取函数
		{
			return width;
		}
		float perimerter()//计算周长
		{
			return 2.0*width+2.0*length;
		}
		float area()//计算面积
		{
			return width*length;
		}
};
int main()
{
	Rectangle rectangle;//创建一个Rectangle的对象
	float l;
	float w;
	cout << "Please enter the length and width of the rectangle :"<<endl;//提示输入长和宽
	cin >> l >> w ;
	rectangle.setLength( l );
	rectangle.setWidth( w );
	
	cout << "The perimerter of the rectangle is:"<< setw(4) << rectangle.perimerter() << endl << endl;
	cout << "The area of the rectangle is:" << setw(4) << rectangle.area() << endl << endl;
	
	return 0;
}

下面我们将创建一个比上面更复杂的Rectangle类。这个类只保存长方形四个角的笛卡儿坐标值。构造函数调用一个设置函数。该设置函数接受四组坐标值,验证它们都在第一象限中,没有一个x坐标或y坐标大于20.0,还验证提供的坐标确实构成长方形。该类提供成员函数计算length、width、perimeter 和area,其中长度是两维中的较大者。这个类还包含判定函数square,用以确定长方形是否是一个正方形。

代码实现如下:

//增强的Rectangle类.cpp 

#include <iostream>
#include <iomanip>
using namespace std;
class Rectangle
{
	private:
		float x1,x2,x3,x4;
		float y1,y2,y3,y4;
		int define; 
		
	public:
		Rectangle(float a,float b,float c,float d,float e,float f,float g,float h)//Initialize in constructor
		{
			setCoordinatesX(a,b,c,d);
			setCoordinatesY(e,f,g,h);
			
			if(x1==x3 && x2==x4 && y1==y2 && y3==y4)
			{
				cout << "this is a rectangle" << endl;
			}
			 
		}
		void setCoordinatesX(float X1,float X2,float X3,float X4 )
		{
			if(X1>=0&&X1<=20 && X2>=0&&X2<=20 && X3>=0&&X3<=20 && X4>=0&&X4<=20 )
			{
				x1=X1;
				x2=X2;
				x3=X3;
				x4=X4;
				
				define=1;	
			}
			else
			{
				cout << "x out of range" << endl;
				define=0;
			}
		
		} 
		
		void setCoordinatesY(float Y1,float Y2,float Y3,float Y4 )
		{
			if(Y1>=0&&Y1<=20 && Y2>=0&&Y2<=20 && Y3>=0&&Y3<=20 && Y4>=0&&Y4<=20 )
			{
				y1=Y1;
				y2=Y2;
				y3=Y3;
				y4=Y4;
				
				define=1;	
			}
			else
			{
				cout << "y out of range" << endl;
				define=0;
			}
				
		} 
		float length()
		{
			if( (x2-x1) < (y1-y3) )
			{
				cout << "Error: Length is less than width" << endl;
			}
			return x2-x1;
		}
		float width()
		{
			return y1-y3;
		}
		float perimeter()//计算周长 
		{
			return 2*(x2-x1)+2*(y1-y3);
		}
		float area()
		{
			return (x2-x1)*(y1-y3);
		}
		void square()//判定函数 
		{
			if( define==1 && (x1-x2)==(y1-y2) )
			{
				cout << "The rectangle is a square" <<endl; 
			}
			else
			{
				cout << "The rectangle is not a square" << endl;
			}
		}
		
};
int main()
{
	float x1,x2,x3,x4;
	float y1,y2,y3,y4;
	
	cout << "Please enter coordinates :" 
		 << endl;
	cin  >>x1 >>x2 >>x3 >>x4
		 >>y1 >>y2 >>y3 >>y4;
		
	Rectangle a(x1,x2,x3,x4,y1,y2,y3,y4);
	cout << "The length is : "    << a.length()    << endl;
	cout << "The width is : "     << a.width()     << endl;
	cout << "The perimeter is : " << a.perimeter() << endl;
	cout << "The area is : "      << a.area()      << endl;
	a.square();//判定是否为正方形
	return 0;
}

下面我们将继续增强这个Rectangle类,使它包含drawsetFillCharactersetPerimeterCharacter函数。draw成员函数在长方形所在第一象限的25x25封闭框中显示该长方形;setFillCharacter函数指定要绘制的长方形外部的字符,setPerimeterChar acter函数指定用来绘制长方形边缘的字符。这样我们就可以把长方形给绘制出来了。

 实现代码如下:

#include <iostream>
#include <string>

using namespace std;
class Rectangle
{
	private:
		float x1,x2,x3,x4;
		float y1,y2,y3,y4;
		int define;
		char outnumber,a;
		char innumber,b;
		float Length;
		float Width;
		
	public:
		Rectangle(float a,float b,float c,float d,float e,float f,float g,float h);//Initialize in constructor
		void setCoordinatesX(float X1,float X2,float X3,float X4 );
		void setCoordinatesY(float Y1,float Y2,float Y3,float Y4 );
		float length();
		float width();
		float perimeter();
		float area();
		void square();
		void draw();
		void setFillCharacter(char outnumber);
		void setPerimeterCharacter(char innumber);
		char getPerimeterCharacter();
		char getFillCharacter();
};

		Rectangle::Rectangle(float a,float b,float c,float d,float e,float f,float g,float h)//Initialize in constructor
		{
			setCoordinatesX(a,b,c,d);
			setCoordinatesY(e,f,g,h);
			define=0;
			outnumber='*';
			innumber='#';
			if(x1==x3 && x2==x4 && y1==y2 && y3==y4)
			{
				cout << "This is a rectangle !" << endl;
			}	 
		}
		
		void Rectangle:: setCoordinatesX(float X1,float X2,float X3,float X4 )
		{
			if(X1>=0&&X1<=20 && X2>=0&&X2<=20 && X3>=0&&X3<=20 && X4>=0&&X4<=20 )
			{
				x1=X1;
				x2=X2;
				x3=X3;
				x4=X4;
				define=1;	
			}
			else
			{
				cout << "x out of range" << endl;
				define=0;
			}
		
		}
		
		void Rectangle:: setCoordinatesY(float Y1,float Y2,float Y3,float Y4 )
		{
			if(Y1>=0&&Y1<=20 && Y2>=0&&Y2<=20 && Y3>=0&&Y3<=20 && Y4>=0&&Y4<=20 )
			{
				y1=Y1;
				y2=Y2;
				y3=Y3;
				y4=Y4;
				
				define=1;	
			}
			else
			{
				cout << "y out of range" << endl;
				define=0;
			}
				
		}
		
		float Rectangle:: length()
		{
			if( (x2-x1) < (y1-y3) )
			{
				cout << "Error: Length is less than width" << endl;
			}
			Length = x2-x1;
			return Length;
		}
		
		float Rectangle:: width()
		{
			Width =  y1-y3;
			return Width;
		}
		
		float Rectangle:: perimeter()//计算周长 
		{
			return 2*(x2-x1)+2*(y1-y3);
		}
		
		float Rectangle:: area()
		{
			return (x2-x1)*(y1-y3);
		}
		
		void Rectangle:: square()//判定函数 
		{
			if( define==1 && (x1-x2)==(y1-y2) )
			{
				cout << "The rectangle is a square" <<endl; 
			}
			else
			{
				cout << "The rectangle is not a square" << endl;
			}
		}
		
		void Rectangle::draw() //The rectangle is shown in a closed box of 25 * 25
		{
			int i,j;		
				for(i=25;i>=0;i--)	
				{	
					cout<<endl;	
					for(j=0;j<25;j++)	//2 9 6 9 2 1 6 1
					{	
						if(i<=y2 && i>=y3)	
						{	
							if(j==x1 || j==x2)
								cout<<getPerimeterCharacter();	
							else 
							{
								
								if(i==y1||i==y3)
								{
								
									if(j<x2&&j>x3)	
									{
										cout<<getPerimeterCharacter();
									}
										else 
										cout<<getFillCharacter();
								}	
								else 
								cout<<getFillCharacter();
							}
	
						}
	
						else cout<<getFillCharacter();
	
					}
	
				}
				cout<<endl;
			
		}
		
		void Rectangle::setFillCharacter(char b) //Draw the characters outside the rectangle
		{
			outnumber=a;;
		}
		
		void Rectangle::setPerimeterCharacter(char b) //Draw characters with rectangular edges
		{
			innumber=b;
		}
		
		char Rectangle::getFillCharacter()
		{
			return outnumber;
		}
		
		char Rectangle::getPerimeterCharacter()
		{
			return innumber;
		}
		
		
int main()
{
	float x1,x2,x3,x4;
	float y1,y2,y3,y4;
	
	cout << "Please enter coordinates :" //2 9 6 9 2 1 6 1 测试数据
		 << endl;
	cin  >>x1 >>y1 >>x2 >>y2
		 >>x3 >>y3 >>x4 >>y4;
		
	Rectangle a(x1,x2,x3,x4,y1,y2,y3,y4);
	cout << "The length is    : "      << a.length()    << endl;
	cout << "The width is     : "      << a.width()     << endl;
	cout << "The perimeter is : "      << a.perimeter() << endl;
	cout << "The area is      : "      << a.area()      << endl;
	a.square();
	cout << endl;
	a.setFillCharacter('#');
	a.setPerimeterCharacter('*');  
	a.draw();
	return 0;
} 

以上就是我对Rectangle类的设计,学习C++不久,能力有限,只能写到这里,若有不足,欢迎在评论区留言。文章来源地址https://www.toymoban.com/news/detail-448916.html

到了这里,关于C++ 设计一个Rectangle类,计算周长,面积,并绘制出来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java定义能计算圆的面积、周长的类 Circle

    定义能计算圆的面积、周长的类 Circle,半径r为私有数据变量,其值由类circle的构造方法初始化,类circle提供读取半径r的方法getr();t算面积的方法area();计算周长的方法circlelength()。再定义类Circlecomputer,其包含程序运行所需的方法main,请设计程序完成初始化数据变量和

    2024年02月08日
    浏览(31)
  • chatgpt赋能python:Python计算面积和周长的简单方法

    Python是一门高级编程语言,已经成为了当前世界上最受欢迎的编程语言之一。在Python中,我们可以使用一些简单的方法来计算面积和周长。本文将介绍几种用Python计算面积和周长的简单方法。 矩形 矩形是最简单的图形之一。Python可以轻松计算矩形的面积和周长。 输出结果:

    2024年02月05日
    浏览(42)
  • opencv计算植物叶面积_叶直径_叶周长_python

    项目简介 实习方法 源码分享 利用python自带的opencv库来计算植物叶片的叶面积、叶直径和叶周长,拍摄图片就可以直接得到真实的叶面积、叶直径和叶周长。 首先,我们需要这样拍摄一张植物的图片, 需要一个黑色的底板,一张A4纸,拍摄时需要将植物叶面放平,A4纸的四个

    2024年02月04日
    浏览(29)
  • c语言求圆的面积和周长(c语言求圆的面积和周长,半径为5)

    用c语言计算圆周长和面积编程有两种。 #include #define PI 3.1415926 int main(){ double r,l,s; printf(\\\"请输入半径:\\\"); scanf(\\\"%lf\\\",r); if(r=0)printf(\\\"输入错误!\\\"); else { l=PI*2*r; s=PI*r*r; printf(\\\"周长=%lf 面积=%lfn。\\\",l,s); (return 0;) #include #include #define PI 3.14 void main() { float r; double c; double s; printf(\\\"请输入

    2024年02月07日
    浏览(26)
  • 定义矩形类,求其面积和周长(java)

    编写一个 矩形 类 R ectangle,该类拥有: 两个 成员变量 : Length(私有,双精度型); // 存放矩形的长;      Width(私有,双精度型); // 存放矩形的宽;       两个构造方法 :     1.Rectangle ( )            // 将高和宽设为0          2.Rectangle (double l,double W

    2024年04月12日
    浏览(23)
  • JavaScript实现输入圆的半径,输出周长、体积和面积的代码

    以下为输入圆的半径,输出周长、体积和面积实现结果的代码和运行截图 目录 前言 一、请输入圆的半径,输出周长、体积和面积 1.1运行流程及思想 1.2代码段 1.3 JavaScript语句代码 1.4运行截图 1.若有选择,您可以在目录里进行快速查找; 2.本博文代码可以根据题目要求实现相关

    2024年02月07日
    浏览(29)
  • 【OpenCV实现图像找到轮廓的不同特征,就像面积,周长,质心,边界框等等。】

    OpenCV是一个流行的计算机视觉库,它提供了许多图像处理和分析功能,其中包括查找图像中物体的轮廓。通过查找轮廓,可以提取许多有用的特征,如面积、周长、质心、边界框等。 以下是几种使用OpenCV查找轮廓时常见的特征: 面积:可以使用 cv2.contourArea() 函数计算轮廓的

    2024年02月06日
    浏览(38)
  • 第1关:学习-Java类和对象之static关键字之求圆环面积和周长

    本关任务:已知圆环的大圆半径 R 和 小圆半径 r 的长度分别为 32.0 和 10.0,求该圆环的面积和周长。 圆环面积公式为:S=π(R 2−r 2 ); 圆环周长公式为:C=2π(R+r)。 /** 任务:已知圆环的大圆半径 R 和 小圆半径 r 的长度分别为 32.0 和 10.0,求该圆环的面积和周长。 类名为:Ri

    2023年04月08日
    浏览(31)
  • 【C++练习】普通方法+利用this 设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义一下成员函数

    设置一个矩形类(Rectangle), 包含私有成员长(length)、 宽(width), 定义成员函数:         void set_ len(int l);  //设置长度         设置宽度void set_ wid(int w);          获取长度: int get len();          获取宽度: int get _wid);          显示周长和面积: void show();   

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包