{
static void Main(string[] args)
{
//定義壹個點
Cpoint cpoint = new Cpoint(1,2);
Console.WriteLine("點的坐標為({0},{1})",cpoint.X,cpoint.Y);
//定義壹條直線
Cline cline = new Cline(1, 1, 3, 3);
Console.WriteLine("直線的長度為{0}", cline.GetLength());
//定義壹個矩形
Crect crect = new Crect(1, 1, 3, 3);
Console.WriteLine("矩形的周長為{0},面積為{1}", crect.GetLength(), crect.GetArea());
Console.ReadLine();
}
}
class Cpoint
{//點類
private double x;//坐標x軸的值
public double X
{
get { return x; }
set { x = value; }
}
private double y;//坐標y軸的值
public double Y
{
get { return y; }
set { y = value; }
}
public Cpoint()
{//沒有參數的構造函數
this.X = 0;
this.Y = 0;
}
public Cpoint(double x, double y)
{//有參數的構造函數
this.X = x;
this.Y = y;
}
}
class Cline : Cpoint
{
//直線類
private Cpoint a = new Cpoint();//直線的壹個端點
public Cpoint A
{
get { return a; }
set { a = value; }
}
private Cpoint b = new Cpoint();//直線的另壹個端點
public Cpoint B
{
get { return b; }
set { b = value; }
}
//有參數的構造函數
public Cline(double a1, double a2, double b1, double b2)
{
A.X = a1;
A.Y = a2;
B.X = b1;
B.Y = b2;
}
//求直線長度
public double GetLength()
{
double m = A.X - B.X;
double n = A.Y - B.Y;
return Math.Sqrt(Math.Pow(m, 2) + Math.Pow(n, 2));
}
}
class Crect : Cpoint
{//矩形類
private Cpoint a = new Cpoint();//矩形的壹個端點
public Cpoint A
{
get { return a; }
set { a = value; }
}
private Cpoint b = new Cpoint();//與a為對角的點
public Cpoint B
{
get { return b; }
set { b = value; }
}
//有參數的構造函數
public Crect(double a1, double a2, double b1, double b2)
{
A.X = a1;
A.Y = a2;
B.X = b1;
B.Y = b2;
}
//求周長
public double GetLength()
{
double m = Math.Abs(A.X - B.X);
double n = Math.Abs(A.Y - B.Y);
return 2.0 * (m + n);
}
//求面積
public double GetArea()
{
double m = Math.Abs(A.X - B.X);
double n = Math.Abs(A.Y - B.Y);
return m * n;
}
}