您好,欢迎访问三七文档
设计三个图形类:Circle(圆)、Rectangle(矩形)、Triangle(三角形);1、Cirlce类基本信息:圆心坐标、半径;Rectangle类基本信息:长、宽;Triangle类基本信息:三个顶点坐标;其中:成员变量为private属性,成员函数为public属性;2、每个图形类有多个构造函数:缺省构造函数、带参数的构造函数;3、每个图形类有计算图形的面积GetArea(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。以Circle类为例:通过GetArea()计算圆的面积,Show()函数中显示圆心坐标、直径、周长、面积等基本信息;Set(intx,inty,intr)函数可以修改圆心坐标和半径。[实验提示]1、注意多个构造函数的声明方式与定义实现;2、当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三角形),提示用户输入错误;[测试数据]1、Circle类测试数据:圆心:(20,30)半径:5(-20,40)30(40,-10)-52、Rectangle类测试数据:顶点坐标:20,5040,5-9,1043,-83、Triangle类测试数据:顶点:(20,30)、(40,50)、(40,20)(10,10)、(50,10)、(35,10)#includeiostreamusingnamespacestd;#includemath.hclassShape//抽象类,公共基类{public:virtualdoubleArea()const=0;//计算各对象面积virtualdoublePerim()const=0;//计算各对象周长virtualvoidShow()=0;//输出各对象面积和周长};classRectangle:publicShape//矩形类{private:doubleLength;//长doubleWidth;//宽public:Rectangle(doubleLength=0,doubleWidth=0)//构造函数{this-Length=Length;this-Width=Width;}~Rectangle()//析构函数{}doubleArea()const//矩形面积{returnLength*Width;}doublePerim()const//矩形周长{return2*(Length+Width);}voidShow()//输出矩形面积和周长{coutAreais:Area()endl;coutPerimis:Perim()endlendl;}};constdoublePI=3.14159;classCircle:publicShape//圆类{private:doubleRadius;//圆的半径public:Circle(doubleRadius=0)//构造函数{this-Radius=Radius;}~Circle()//析构函数{}doubleArea()const//圆面积{returnPI*Radius*Radius;}doublePerim()const//圆周长{return2*PI*Radius;}voidShow()//输出圆的面积和周长{coutAreais:Area()endl;coutPerimis:Perim()endlendl;}};classTriangle:publicShape//三角形类{private:doubleA,B,C;//三角形三边public:Triangle(doubleA=0,doubleB=0,doubleC=0)//构造函数{this-A=A;this-B=B;this-C=C;}~Triangle()//析构函数{}doubleArea()const//三角形面积{doubleP;P=(A+B+C)/2;returnsqrt(P*(P-A)*(P-B)*(P-C));}doublePerim()const//三角形周长{return(A+B+C);}voidShow()//输出三角形面积和周长{coutAreais:Area()endl;coutPerimis:Perim()endlendl;}};voidmain(){doubleLength,Width,Radius,A,B,C;coutRectangle:endl;loopa:cout请输入矩形的长和宽(Length,Width):endl;cinLengthWidth;if(Length=0||Width=0){cout输入的长宽不能构成一个矩形!请重新输入!endl;gotoloopa;}else{RectangleRect(Length,Width);//建立矩形对象Rect.Show();//调用矩形类的输出函数coutCircle:endl;}loopb:cout请输入圆形的半径(Radius):endl;cinRadius;if(Radius=0){cout输入的半径不能构成一个圆!请重新输入!endl;gotoloopb;}else{CircleCir(Radius);//建立圆对象Cir.Show();//调用圆类的输出函数coutTriangle:endl;}loopc:cout请输入三角形的三边(A,B,C):endl;cinABC;if(A=0||B=0||C=0||(A+B)=C||(A+C)=B||(B+C)=A)//判断是否能构成三角形{cout输入的三边值不能构成一个三角形!请重新输入!endl;gotoloopc;}else{TriangleTri(A,B,C);//建立三角形对象Tri.Show();//调用三角形输出函数}}
本文标题:c++图形类设计
链接地址:https://www.777doc.com/doc-5720706 .html