用C#网站设计途径站点信息类(车次,站名,到时,发时,停留时长),其中始发站到站时间为空,终到站发车时间为空,列车信息类(车次、途径站点(途径站点信息类数组或集合)、运行时长),实例化相关类并输出字段信息。
时间: 2024-09-27 14:02:23 浏览: 34
在C#中,你可以创建两个相关的类来表示站点信息和列车信息。首先,我们来定义`StationInfo`类:
```csharp
public class StationInfo
{
public string TrainNo; // 车次
public string StationName; // 站名
public DateTime ArrivalTime; // 到达时间
public DateTime DepartureTime; // 发车时间
public TimeSpan StayDuration; // 停留时长
// 构造函数默认到达时间和发车时间为空
public StationInfo(string trainNo, string stationName)
{
this.TrainNo = trainNo;
this.StationName = stationName;
this.ArrivalTime = default(DateTime);
this.DepartureTime = default(DateTime);
this.StayDuration = TimeSpan.Zero;
}
}
```
接着,定义`TrainInfo`类,它包含一个`StationInfo[]`类型的途径站点列表以及运行时长:
```csharp
public class TrainInfo
{
public string TrainNo; // 车次
public StationInfo[] RouteStations; // 途径站点信息数组
public TimeSpan TotalRunTime; // 运行时长
// 构造函数
public TrainInfo(string trainNo, StationInfo[] routeStations, TimeSpan totalTime)
{
this.TrainNo = trainNo;
this.RouteStations = routeStations;
this.TotalRunTime = totalTime;
}
// 输出字段信息的方法
public void DisplayInfo()
{
Console.WriteLine($"车次: {TrainNo}");
foreach (var station in RouteStations)
{
Console.WriteLine($"- {station.StationName} ({FormatTime(station.ArrivalTime)} - {FormatTime(station.DepartureTime)} - {FormatTime(station.StayDuration)})");
}
Console.WriteLine($"总运行时长: {TotalRunTime.ToString(@"hh\:mm\:ss")}");
}
// 格式化时间方便显示
private static string FormatTime(DateTime? time)
{
if (time.HasValue)
{
return time.Value.ToString("HH:mm:ss");
}
else
{
return "未指定";
}
}
}
```
现在你可以实例化这两个类,并输出相关信息:
```csharp
// 实例化站点信息
var station1 = new StationInfo("001", "北京南");
var station2 = new StationInfo("001", "上海虹桥", DateTime.Now, DateTime.Now.AddHours(4), TimeSpan.FromHours(2));
// 创建一个途径两个站点的火车信息
var stations = new StationInfo[2] { station1, station2 };
var train = new TrainInfo("G1", stations, TimeSpan.FromHours(5));
// 输出火车信息
train.DisplayInfo();
```
阅读全文