c#语言。把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect,要求成员函数能求出两点间的距离、矩形的周长和面积等。设计一个测试程序,并构造完整的程序
时间: 2024-11-27 07:22:50 浏览: 34
C# (C Sharp) 是一种广泛使用的现代、面向对象的编程语言,由Microsoft开发,主要用于Windows平台的软件开发。它结合了C++的强大功能和.NET框架的优势,支持垃圾回收机制,简化了内存管理。
在这个场景下,我们首先定义一个名为`CPoint`的基础类,用于表示平面直角坐标系上的点:
```csharp
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` 和 `CRect`:
```csharp
public class CLine : CPoint
{
public CPoint EndPoint { get; set; }
// 简单实现计算线段长度
public double LineLength()
{
return this.DistanceTo(EndPoint);
}
}
public class CRect : CPoint
{
private CPoint _topRight;
public CRect(double x, double y, double width, double height)
{
base.X = x;
base.Y = y;
_topRight = new CPoint(x + width, y + height);
}
// 计算矩形周长和面积
public double Perimeter()
{
return 2 * (Width() + Height());
}
public double Area()
{
return Width() * Height();
}
// 辅助方法获取宽度和高度
private double Width()
{
return _topRight.X - X;
}
private double Height()
{
return _topRight.Y - Y;
}
}
```
接下来,我们可以创建测试程序来验证这些类的功能:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
// 创建点对象
CPoint pointA = new CPoint(0, 0);
CPoint pointB = new CPoint(3, 4);
// 测试CPoint的DistanceTo方法
Console.WriteLine($"Distance between A and B: {pointA.DistanceTo(pointB)}");
// 创建线和矩形
CLine line = new CLine(0, 0, 5, 6);
CRect rect = new CRect(1, 1, 7, 8);
// 测试线段长度和矩形属性
Console.WriteLine($"Line length: {line.LineLength()}");
Console.WriteLine($"Rectangle perimeter: {rect.Perimeter()}, area: {rect.Area()}");
Console.ReadLine();
}
}
```
这个测试程序会输出点间距离、线段长度以及矩形的周长和面积。注意,这只是一个基础的示例,实际项目可能会包含更多的错误处理和功能。
阅读全文