c#静态无返回值有参数方法SortCar,功能为: 接收Car类的数组和排序标志(1-表示根据油耗 2-表示根据加速度) 1根据车辆油耗进行排序(从高到低),将排序后的车辆品牌型号输出。 2根据车辆加速度进行排序(从快到慢),输出车辆品牌型号。 有返回值无参数方法GetRestDistance,功能为:获取调用者的剩余里程。 无返回值有参数方法AddFuel,功能为:给调用者加油,加油量由参数控制,最后输出加油信息。 有返回值有参数方法ChangeSpeed,功能为:给调用者加速/减速,参数是目标速度,返回值是所需时间。(设目标速度是speed,原来速度为speed0,那么所需时间为:t=(speed-speed0)/acc) 公有的有返回值有参数方法CompareTo,功能是: 接受一个Car参数,计算调用该方法的对象何时追上参数对象,要考虑燃料。 若调用者本身位置就大于参数对象,则计算何时被追上,返回所需时间(负数) 若调用者位置落后于参数对象,计算追上参数对象所需时间。返回时间(正数) 若无法追上对方则返回0
时间: 2024-03-29 20:38:23 浏览: 91
C# return 返回的几种用法
下面是对应的 C# 代码实现:
```csharp
public class Car
{
// 定义车辆属性
public string Brand { get; set; } // 品牌
public string Model { get; set; } // 型号
public double FuelConsumption { get; set; } // 油耗
public double Acceleration { get; set; } // 加速度
public double Position { get; set; } // 当前位置
public double FuelQuantity { get; set; } // 当前油量
// 静态无返回值有参数方法 SortCar
public static void SortCar(Car[] cars, int sortFlag)
{
if (sortFlag == 1)
{
// 根据油耗从高到低排序
Array.Sort(cars, (a, b) => b.FuelConsumption.CompareTo(a.FuelConsumption));
}
else if (sortFlag == 2)
{
// 根据加速度从快到慢排序
Array.Sort(cars, (a, b) => a.Acceleration.CompareTo(b.Acceleration));
}
// 输出排序后的车辆品牌型号
foreach (var car in cars)
{
Console.WriteLine("{0} {1}", car.Brand, car.Model);
}
}
// 有返回值无参数方法 GetRestDistance
public double GetRestDistance()
{
// 假设每升油可以行驶10公里
return FuelQuantity * 10;
}
// 无返回值有参数方法 AddFuel
public void AddFuel(double fuelQuantity)
{
FuelQuantity += fuelQuantity;
Console.WriteLine("加入 {0} 升油,当前油量为 {1} 升。", fuelQuantity, FuelQuantity);
}
// 有返回值有参数方法 ChangeSpeed
public double ChangeSpeed(double targetSpeed)
{
// 计算所需时间
double t = (targetSpeed - Position) / Acceleration;
Position = targetSpeed;
return t;
}
// 公有的有返回值有参数方法 CompareTo
public double CompareTo(Car other)
{
// 计算调用者本身位置与参数对象之间的距离
double distance = other.Position - Position;
if (distance <= 0)
{
// 若调用者位置就大于参数对象,则计算何时被追上,返回所需时间(负数)
double t = -Position / (other.Position - Position) * (FuelQuantity / FuelConsumption);
return t;
}
else
{
// 若调用者位置落后于参数对象,计算追上参数对象所需时间。返回时间(正数)
double t = distance / (Position - other.Position) * (other.FuelQuantity / other.FuelConsumption);
return t;
}
}
}
```
阅读全文