using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 综合练习 { /// <summary> /// 点的构造函数 /// </summary> public struct Point { public int X; public int Y; public Point(int x, int y) { this.X = x; this.Y = y; } } /// <summary> /// 圆的位置枚举 /// </summary> public enum Position { On, In, Out } public class Circle { private Point center; private double area; private double radius = 0; private static int count = 0; #region 构造函数 public Circle() { radius = 5; center = new Point(0, 0); Circle.count++; } public Circle(int radius) { this.radius = radius; center = new Point(0, 0); Circle.count++; } public Circle(int radius, Point center) { this.radius = radius; this.center = center; Circle.count++; } public Circle(int radius, int centerX, int centerY) { this.radius = radius; center = new Point(centerX, centerY); Circle.count++; } #endregion /// <summary> /// 圆心 /// </summary> public Point Center { get { return center; } set { center = value; } } /// <summary> /// 圆的面积 /// </summary> public double Area { get { return Math.PI * (Math.Pow(radius, 2)); } } /// <summary> /// 圆的半径 /// </summary> public double Radius { get { return radius; } set { if (value < 0) { Console.WriteLine("半径错误!"); } else { radius = value; } } } public static int Count { get { return count; } } #region 方法 /// <summary> /// 比较位置 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <returns></returns> public Position GetResult(int x,int y) { Position result; double x1 = Math.Pow((x - center.X), 2); double x2 = Math.Pow((y - center.Y), 2); double d = Math.Sqrt(x1 + x2); if (d > radius) { result = Position.Out; } else { if (d == radius) { result = Position.On; } else { result = Position.In; } } return result; } public Position GetResult(Point center) { return GetResult(center.X, center.Y); } #endregion } class Program { static void Main(string[] args) { Point p1 = new Point(10, 5); Point p2 = new Point(20,35); Circle c1 = new Circle(30); Circle c2 = new Circle(40, p1); Circle c3 = new Circle(50, 10, 25); Circle c4 = new Circle(); Console.WriteLine("一共创建圆的实例个数为:{0}",Circle.Count); Console.WriteLine("------------------------"); Console.WriteLine("半径为{0}的圆形面积为{1}",c1.Radius,c1.Area); Console.WriteLine("点与圆的位置为{0}",c1.GetResult(p1)); Console.WriteLine("------------------------"); Console.WriteLine("半径为{0}的圆形面积为{1}", c2.Radius, c2.Area); Console.WriteLine("点与圆的位置为{0}", c2.GetResult(30,50)); Console.WriteLine("------------------------"); Console.WriteLine("半径为{0}的圆形面积为{1}", c3.Radius, c3.Area); Console.WriteLine("点与圆的位置为{0}", c3.GetResult(p2)); Console.WriteLine("------------------------"); Console.WriteLine("半径为{0}的圆形面积为{1}", c4.Radius, c4.Area); Console.WriteLine("点与圆的位置为{0}", c4.GetResult(10,10)); } } }