c#-为什么没有记录所有的数据?
发布时间:2022-04-09 13:53:43 508
相关标签: # c++# flask
我有一个List
里面有他们乘坐我的巴士旅行的信息。
每次我执行一次旅行,我都会生成一个随机数目的乘客(从0到10),并在他们下车时记录他们。
我在10到10万次之间的任何地方运行该程序,只在乘客下车时将其记录到列表中。在最后一站,每个人都会被踢出。
然后我用这段代码将每位乘客的行程写入一个文本文件。
密码
这段代码直接在内部调用static void Main
属于Program.cs
就在循环完成后。
private static async Task LogData(StatManager statManager)
{
await File.WriteAllLinesAsync("test_output_1.txt", statManager.LogAllData());
}
Passenger.cs
public int ID {get; private set;}
public int stops {get; private set;} = 0;
public TripInfo trip {get; private set;}
public Passenger(int passenger_id, int stop_entered)
{
ID = passenger_id;
trip = new TripInfo();
trip.first_stop = stop_entered;
}
public void ExitBus(int exit_stop)
{
//get called once the passenger exits the bus
//at this point, the passenger is added to the main list
trip.exit_stop = exit_stop;
}
public void ArrivedAtStop()
{
stops++; //stop counter
}
public int[] GetStopsVisited()
{
int[] stops = new int[trip.stop_count];
for(int i = 0; i < trip.stop_count; i++)
{
stops[i] = trip.first_stop + i;
}
return stops;
}
public class TripInfo
{
public int first_stop;
public int exit_stop;
public int stop_count
{
get
{
if (exit_stop == null) return -1;
return exit_stop - first_stop;
}
}
}
StatManager.cs
public List LifetimePassengers = new List();
public int LifetimePassengerCount {get; private set;} = 0; //gets incremented in every cycle
private float mean;
private int LifetimeStops
{
get
{
return busManager.CurrentStop + 1; //gets an int that was incremented in every cycle
}
}
public String[] LogAllData()
{
List toLog = new List();
toLog.Add("LifetimeStops:"+LifetimeStops.ToString());
toLog.Add("LifetimePassengers:"+LifetimePassengerCount.ToString());
toLog.Add("IndividualPassengerData");
foreach(Passenger p in LifetimePassengers)
{
toLog.Add("-");
toLog.Add($"PassengerID:{p.ID}");
toLog.Add($"NumberOfStops:{p.stops}");
toLog.Add($"FirstStop:{p.trip.first_stop}");
toLog.Add($"ExitStop:{p.trip.exit_stop}");
string stops = String.Join(",", p.GetStopsVisited());
toLog.Add($"StopsVisited:[{stops}]");
}
return toLog.ToArray();
}
第一行的输出与预期一致,但我得到了以下结果:
...
PassengerID:677
NumberOfStops:2
FirstStop:198
ExitStop:200
Stopsvisited:[19819]
PassengerID:678
NumberOfStops:2
FirstStop:198
ExitStop:200
Stopsvisited:[19819]
PassengerID:679
NumberOfStops:1
菲
所有数据都遵循上述ID模式和一些行程信息。但数据并不完整。上图中,记录的最后一名乘客是679号乘客,但该节目运行了1000站,至少有1000名乘客。此外,数据会突然停止,出现这种意外情况Fi
and does not complete the record of passenger number 679.
此外,当我尝试重新运行程序时,它没有输出任何内容。我试着运行了5、10和100个周期,没有差别,也没有输出。
我能做些什么来解决这个问题?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报