时间:2021-05-20
问题描述
定义一个Circle类,其功能有:
-两个double类型属性X和Y,可读写圆心坐标
-一个double类型属性Radius,可读写圆的半径
-一个构造方法,以指定的x,y,radius来构造
-一个只读属性Area,获取圆面积
-一个只读属性Perimeter,获取圆周长
-一个方法bool Contains(double x, double y),如果指定的点(x, y)处于本圆内,返回true
-一个方法bool Contains(Circle circle),如果指定的圆circle包含在本圆内,返回true
-一个方法bool Extend(double range, out Circle newCircle),半径扩大(加上range),输出扩大后的newCircle,返回true。如果Radius+range为负,无法扩大,则输出原来的圆,且返回false。
在一个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)处于本圆内,返回true public bool Contains(double x, double y) { if ((x - X) * (x - X) + (y - Y)* (y - Y) < Radius * Radius) { return true; } return false; } //-如果指定的圆circle包含在本圆内,返回true public 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); } }}运行结果
题目:
编写一个矩形类(Rect)与一个圆类(Circle),
//分别通过构造方法对一个矩形对象(rect1) 与一个圆对象(circle1)
//进行初始化后,求出矩形与圆的面积。
//同时具有如下功能:可以设置和读取矩形的边长和圆的半径,
//但只能读取它们的面积,不能修改面积。
运行效果
创建圆形按钮挺简单的。
public class EllipseButton : Button{ protected override void OnPaint(PaintEventArgs pevent) { GraphicsPath gPath = new GraphicsPath(); // 绘制椭圆形区域 gPath.AddEllipse(0, 0, this.ClientSize.Width, this.ClientSize.Height); // 将区域赋值给Region this.Region = new System.Drawing.Region(gPath); base.OnPaint(pevent); }}效果图
到此这篇关于c#创建圆形类Circle、矩形类实现代码的文章就介绍到这了,更多相关c# 圆形类内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
通常来说,C#中的子类无法调用父类的事件,但是可以通过在父类中创建一个方法来调用父类的事件,而子类通过调用父类的方法来触发事件。具体实现代码如下:classpa
本文演示了在C#中使用画笔的源代码,供大家参考使用。下面的源代码中首先定义了一个矩形类(Rectangle),这个类从Shape类中派生出来,在类中定义了两个变
本文实例为大家分享了C#抽象类与抽象方法的具体实现代码,供大家参考,具体内容如下1.代码classProgram{staticvoidMain(string[]
本文实例为大家分享了C#实现剪刀石头布游戏的具体代码,供大家参考,具体内容如下游戏界面如下所示:首先我们必须知道要创建三个类玩家类,电脑类,裁判类1、玩家类中的
本文实例讲述了C#实现日期格式转换的公共方法类。分享给大家供大家参考,具体如下:这里演示了C#中一些日期格式的转换。创建公共方法类(UtilityHandle.