首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

急需 C#高手 帮小弟我做做这个题目

2012-03-16 
急需求助C#高手 帮我做做这个题目2.定义角度类Angle,包含3个int型分量信息度、分、秒。(1)为其定义恰当的构造

急需求助 C#高手 帮我做做这个题目
2.定义角度类Angle,包含3个int型分量信息度、分、秒。
(1)为其定义恰当的构造函数。
(2)对两个角度进行加、减运算的运算符进行重载。(注意:进位和借位)
如:19度21分30秒+1度39分34秒=21度1分4秒

(3)定义从整型数到Angle的隐式转换,整型数表示某角度的用秒作单位的值。如:4201=1度10分1秒
(4)定义从Angle到int的显式转换
(5)定义函数将某个角度值的信息输出。
(6)控制类定义如下:
定义控制类
  (1)类名Test,只包含如下Main()函数;
  (2)Main()的定义
  public static void Main()
{
  int i=4201;
 Angle a1=new Angle(19,30,22);
 Angle a2=new Angle(11,34,39);
 Angle a3=c1+c2;
  输出a3;
  a3=a1-a2;
  输出a3;
  a3=a1+i;
  输出复数a3;
  int j=(int)a3; //注意显式类型转换与隐式类型转换的区别
输出j;
}

3.定义一个三维空间坐标类,包含三个分量的值(x,y,z),如何对两个坐标点进行平移(也就是加运算),并增加你觉得合适的其他运算,如距离计算等


[解决办法]

C# code
    class Test    {        static void Main(string[] args)        {            int i = 4201;            Angle a1 = new Angle(19, 30, 22);            Angle a2 = new Angle(11, 34, 39);            Angle a3 = a1 + a2;            a3.输出();            a3 = a1 - a2;            a3.输出();            a3 = a1 + i;            a3.输出();            int j = (int)a3; //注意显式类型转换与隐式类型转换的区别            Console.WriteLine(j.ToString());            Console.Read();        }    }    class Angle    {        public int 度 { get; set; }        public int 分 { get; set; }        public int 秒 { get; set; }        public Angle(int 度, int 分, int 秒)        {            this.度 = 度;            this.分 = 分;            this.秒 = 秒;        }        static public implicit operator Angle(int i)        {            return new Angle(i /3600,(i/60)%60,i % 60);        }        static public explicit operator int(Angle a)        {            return a.度 * 3600 + a.分 * 60 + a.秒;        }        static public Angle operator +(Angle a1, Angle a2)        {            return (int)a1+(int)a2;        }        static public Angle operator -(Angle a1, Angle a2)        {            return (int)a1 - (int)a2;        }        public void 输出()        {            Console.WriteLine("{0}度{1}分{2}秒", 度, 分, 秒);        }    } 

热点排行