博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

圆点作业讲解.avi

Posted on 2010-10-04 00:41  EVON168  阅读(147)  评论(0编辑  收藏  举报
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 namespace Task
  7 {
  8     /// <summary>
  9     /// 当值只有固定几种情况时使用枚举
 10     /// </summary>
 11     public enum 位置
 12     { 
 13         在圆上,
 14         在圆内,
 15         在圆外
 16     }
 17 
 18     public class 圆
 19     {
 20         private static int _Count = 0;
 21 
 22         public static int Count
 23         {
 24             get { return 圆._Count; }
 25         }
 26 
 27 
 28         private int _半径;
 29 
 30         public int 半径
 31         {
 32             get { return _半径; }
 33             set 
 34             {
 35                 if (value < 0)
 36                 {
 37                     Console.WriteLine("您输入的半径小于0");
 38                 }
 39                 else
 40                 {
 41                     _半径 = value;
 42                 }
 43             }
 44         }
 45 
 46         /// <summary>
 47         /// 属性是数据,可在里面直接写计算表达式
 48         /// </summary>
 49         public double 面积
 50         {
 51             get
 52             {
 53                 return Math.PI * Math.Pow(_半径, 2);
 54             }
 55         }
 56 
 57         /// <summary>
 58         /// 此处使用点类型,体现抽像思想
 59         /// </summary>
 60         
 61         public 点 圆心;
 62 
 63         /// <summary>
 64         /// 以下构造函数使用This关键字,主要体现代码重用
 65         /// </summary>
 66         public 圆():this(10)
 67         {
 68 
 69         }
 70 
 71         public 圆(int 半径):this(半径,new 点())
 72         {
 73 
 74         }
 75 
 76         public 圆(int 半径,点 圆心):this(半径,圆心.x坐标,圆心.y坐标)
 77         {
 78 
 79         }
 80 
 81         public 圆(int 半径, int 圆心X, int 圆心Y)
 82         {
 83             this._半径 = 半径;
 84             this.圆心 = new 点(圆心X, 圆心Y);
 85             圆._Count++;
 86         }
 87 
 88         public 位置 比较(int x, int y)
 89         {
 90             位置 result = 位置.在圆上;
 91             double a2 = Math.Pow(圆心.x坐标 - x, 2);
 92             double b2 = Math.Pow(圆心.y坐标 - y, 2);
 93 
 94             double c2 = a2 + b2;
 95             double c = Math.Sqrt(c2);
 96 
 97             if (c > _半径)
 98             {
 99                 result = 位置.在圆外;
100             }
101             else
102             {
103                 result = 位置.在圆内;
104             }
105             return result;
106         }
107 
108         /// <summary>
109         /// 高度重用,直接调用上一个方法
110         /// </summary>
111         /// <param name="圆心"></param>
112         /// <returns></returns>
113         public 位置 比较(点 点)
114         {
115             return 比较(点.x坐标, 点.y坐标);
116         }
117     }
118 
119     /// <summary>
120     /// 点是轻量级的类
121     /// </summary>
122     public struct 点
123     {
124         public int x坐标;
125         public int y坐标;
126 
127         public 点(int x,int y)
128         {
129             this.x坐标 = x;
130             this.y坐标 = y;
131         }
132     }
133 
134     class Program
135     {
136         static void Main(string[] args)
137         {
138 
139         }
140     }
141 }
142