欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 编程语言 > c# >内容正文

c#

c#——ellipse(椭圆)类[继承ellipse(椭圆)类重构circle(圆)类] -尊龙游戏旗舰厅官网

发布时间:2024/10/5 c# 33 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 c#——ellipse(椭圆)类[继承ellipse(椭圆)类重构circle(圆)类] 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

定义一个circle类,其功能有:

1)两个double类型属性x和y,可读写圆心坐标

2)一个double类型属性radius,可读写圆的半径

3)一个构造方法,以指定的x,y,radius来构造

4)一个只读属性area,获取圆面积

5)一个只读属性perimeter,获取圆周长

6)一个方法bool contains(double x, double y),如果指定的点(x, y)处于本圆内,返回true

7)一个方法bool contains(circle circle),如果指定的圆circle包含在本圆内,返回true

8)一个方法bool extend(double range, out circle newcircle),半径扩大(加上range),输出扩大后的newcircle,返回true。如果radius range为负,无法扩大,则输出原来的圆,且返回false。

在一个main方法中对上述功能进行测试 

 

添加一个ellipse(椭圆)类:

1)x, y, majorradius, minorradius属性

2)至少两个ellipse构造方法,一个调用另一个

3)只读属性area

4)实例方法bool contains(double x, double y)

5)实例方法string tostring()

6)让circle类继承ellipse类,将其中的重复代码删去

7)在majorradius, minorradius属性的set访问器中,对value进行检查,如果value<=0,抛出异常(throw new argumentexception("主轴长度不能为负");),并保证majorradius>=minorradius 

在一个main方法中对上述功能进行测试 

using system;namespace homework1 {//定义一个circle类,其功能有class circle{//-两个double类型属性x和y,可读写圆心坐标public double x{set;get;}public double y{set;get;}//-一个double类型属性radius,可读写圆的半径public double radius {set;get;}//-一个构造方法,以指定的x,y,radius来构造public circle(double x, double y, double radius) {this.x = x;this.y = y;this.radius = radius;}//-一个只读属性area,获取圆面积public double area {get {return radius * radius * 3.1415926;}}//-一个只读属性perimeter,获取圆周长public double perimeter{get { return 2 * radius * 3.1415926;}}//-如果指定的点(x, y)处于本圆内,返回truepublic bool contains(double x, double y) {if ((x - x) * (x - x) (y - y)* (y - y) < radius * radius) {return true;}return false;}//-如果指定的圆circle包含在本圆内,返回truepublic bool contains(circle circle) {if (radius>circle.radius && (radius - circle.radius) * (radius - circle.radius) > (circle.x - x) * (circle.x - x) (circle.y - y) * (circle.y - y)){return true;}return false;}//-半径扩大(加上range),输出扩大后的newcircle,返回true。如果radius range为负,无法扩大,则输出原来的圆,且返回false。public bool extend(double range, out circle newcircle) {newcircle = this;if (newcircle.radius range > 0) {newcircle.radius = newcircle.radius range;return true;}return false;}}class program{static void main(string[] args){circle circle = new circle(1,1,3);console.writeline("面积:{0}\t周长:{1}",circle.area, circle.perimeter);console.writeline("(2,2)在本圆内:{0}", circle.contains(2,2));console.writeline("circle(1,1,1)在本圆内:{0}", circle.contains(new circle(1,1,1)));circle.extend(2,out circle);console.writeline("面积:{0}\t周长:{1}", circle.area, circle.perimeter);}} } using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks;namespace homework4 {/*** 添加一个ellipse(椭圆)类:* 1)x, y, majorradius, minorradius属性* 2)至少两个ellipse构造方法,一个调用另一个* 3)只读属性area* 4)实例方法bool contains(double x, double y)* 5)实例方法string tostring()* 6)让circle类继承ellipse类,将其中的重复代码删去* 7)在majorradius, minorradius属性的set访问器中,* 对value进行检查,如果value<=0,抛出异常(throw new argumentexception("主轴长度不能为负");),* 并保证majorradius>=minorradius*/class ellipse {//-两个double类型属性x和y,可读写圆心坐标public double x{set;get;}public double y{set;get;}private double majorradius {set;get;}private double minorradius{set;get;}public double majorradius {set {if (value < 0) {throw new argumentexception("主轴长度不能为负");}majorradius = value;}get {return majorradius;}}public double minorradius{set{if (value > majorradius){throw new argumentexception("主轴长度不能为负");}minorradius = value;}get{return minorradius;}}//一个只读属性area,获取椭圆面积public double area {get { return x * y * math.pi; }}public ellipse():this(1,2) {}public ellipse(double x,double y) { }//-如果指定的点(x, y)处于椭圆内,返回truepublic bool contains(double x, double y) {if ((x - x) * (x - x) * minorradius * minorradius (y - y) * (y - y) * majorradius * majorradius < majorradius * majorradius * minorradius * minorradius){return true;}return false;}public string tostring() { return "ellipse{" "x: " x " " "y: " y " " "majorradius: " majorradius " " "minorradius: " minorradius " " "}";}}class circle:ellipse{//-一个double类型属性radius,可读写圆的半径public double radius{set {minorradius = majorradius = value;}get { return majorradius; }}//-一个构造方法,以指定的x,y,radius来构造public circle(double x, double y, double radius){this.x = x;this.y = y;this.radius = radius;}//-//-一个只读属性perimeter,获取圆周长public double perimeter{get{return 2 * radius * math.pi;}}//-如果指定的圆circle包含在本圆内,返回truepublic bool contains(circle circle){if (radius > circle.radius&& (radius - circle.radius) * (radius - circle.radius) > (circle.x - x) * (circle.x - x) (circle.y - y) * (circle.y - y)){return true;}return false;}//-半径扩大(加上range),输出扩大后的newcircle,返回true。如果radius range为负,无法扩大,则输出原来的圆,且返回false。public bool extend(double range, out circle newcircle){newcircle = this;if (newcircle.radius range > 0){newcircle.radius = newcircle.radius range;return true;}return false;}public string tostring(){return "circle{" "x: " x " " "y: " y " " "radius: " radius " " "}";}}class program{static void main(string[] args){circle circle = new circle(1, 1, 3);console.writeline("面积:{0}\t周长:{1}", circle.area, circle.perimeter);console.writeline("(2,2)在本圆内:{0}", circle.contains(2, 2));console.writeline("circle(1,1,1)在本圆内:{0}", circle.contains(new circle(1, 1, 1)));circle.extend(2, out circle);console.writeline(circle.tostring());console.writeline("面积:{0}\t周长:{1}", circle.area, circle.perimeter);}} }

 

https://blog.csdn.net/pengpengblog/article/details/53213454

https://shentuzhigang.blog.csdn.net/article/details/104880342 

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是尊龙游戏旗舰厅官网为你收集整理的c#——ellipse(椭圆)类[继承ellipse(椭圆)类重构circle(圆)类]的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图