急需求助 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),如何对两个坐标点进行平移(也就是加运算),并增加你觉得合适的其他运算,如距离计算等
[解决办法]
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}秒", 度, 分, 秒); } }