用c#把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect。要求成员函数能求出两点间的距离,矩形的周长和面积。设计一个测试程序,并构造完整的程序。
时间: 2024-11-09 13:27:37 浏览: 16
设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数
在C#中,你可以创建一个名为`CPoint`的基础类来表示平面直角坐标系中的一个点,然后根据需求分别派生出`CLine`和`CRect`两个类。这里是一个简单的代码结构:
```csharp
// 基础类 CPoint
public class CPoint
{
public double X { get; set; }
public double Y { get; set; }
// 构造函数
public CPoint(double x, double y)
{
X = x;
Y = y;
}
// 计算两点间距离的方法
public double DistanceTo(CPoint other)
{
return Math.Sqrt(Math.Pow(X - other.X, 2) + Math.Pow(Y - other.Y, 2));
}
}
// CLine 类,继承自 CPoint 并添加直线的相关属性和方法
public class CLine : CPoint
{
public CPoint EndPoint { get; set; } // 直线的终点
public double GetLength()
{
return DistanceTo(EndPoint);
}
}
// CRect 类,继承自 CPoint 并添加矩形的相关属性和方法
public class CRect : CPoint
{
public CPoint TopRight { get; set; } // 矩形右上角点
public double Width { get; set; } // 矩形宽度
public double Height { get; set; } // 矩形高度
public double Perimeter()
{
return 2 * (Width + Height);
}
public double Area()
{
return Width * Height;
}
}
// 测试程序
class Program
{
static void Main(string[] args)
{
// 创建点对象
CPoint p1 = new CPoint(0, 0);
CPoint p2 = new CPoint(5, 10);
// 创建直线对象并设置起点和终点
CLine line = new CLine(p1, p2);
Console.WriteLine($"线段长度: {line.GetLength()}");
// 创建矩形对象并设置顶点
CRect rect = new CRect(new CPoint(0, 0), new CPoint(10, 8));
Console.WriteLine($"矩形周长: {rect.Perimeter()}");
Console.WriteLine($"矩形面积: {rect.Area()}");
}
}
```
这个例子展示了如何定义基础类、派生类以及使用这些类创建实例并计算所需的几何量。运行`Main`方法将输出两点之间的距离和矩形的周长和面积。
阅读全文