using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 圆 { class circle { int center_x; int center_y; double Radius; public int x { get { return center_x; } set { center_x = value; } } public int y { get { return center_y; } set { center_y = value; } } public double radius { get { return Radius; } set { Radius = value; } } } class Program { static void Main(string[] args) { circle myCircle = new circle(); myCircle.x = 10; myCircle.y = 10; myCircle.radius = 8; Console.WriteLine("Center:({0},{1})", myCircle.x, myCircle.y); Console.WriteLine("Radius:{0}", myCircle.radius); Console.WriteLine("Circumference:{0}", (double)(2 * 3.141592653 * myCircle.radius)); Console.ReadKey(); } } }
问题描述
定义一个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)
//进行初始化后,求出矩形与圆的面积。
//同时具有如下功能:可以设置和读取矩形的边长和圆的半径,
//但只能读取它们的面积,不能修改面积。
class Rect//矩形类 { public double a, b;//矩形的两条边 public Rect()//无参构造函数 { a = Convert.ToDouble(Console.ReadLine()); b = Convert.ToDouble(Console.ReadLine()); } } class Circle//圆形类 { public double r;//圆的半径 public Circle()//无参构造函数 { r = Convert.ToDouble(Console.ReadLine()); } } class Program { static void Main(string[] args) { double PI = 3.14; Console.WriteLine("请输入矩形的长和宽:"); Rect rect1 = new Rect();//创建一个Rect类的对象:rect1 double Srect1 = rect1.a * rect1.b;//矩形面积 Console.WriteLine($"矩形面积:{Srect1}"); Console.WriteLine(); Console.WriteLine("请输入圆的半径:"); Circle circle1 = new Circle();//创建一个Circle类的对象:circle1 double Scircle = circle1.r * circle1.r * PI;//圆面积 Console.WriteLine($"圆面积:{Scircle}"); Console.ReadKey(); } }
运行效果
创建圆形按钮挺简单的。
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# 圆形类内容请搜索呐喊教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持呐喊教程!