停车 Space 预订
Parking Space Reservations
我 运行 遇到了一个棘手的问题。这对你们大多数人来说可能很容易,但我只是没有看到它。
有 3 个可用停车位:A、B 和 C。所有 3 个都可以同时预订,但一次最多只能预订 3 个,否则我们将 运行空间!
我目前的问题可以在我的杰作中查看:http://i.imgur.com/6aFSTHu.png(这代表我正在使用的调度程序对象,左边标有时间)。
表示一个调度程序控件,"bookings" 用于停车位。
这是我目前正在做的一些伪代码:
function GetFreeSpace(Reservation Res)
boolean intersects;
for each Reservation R in ListOfReservationsInSpaceA
if (R and Reservation are not the same)
if (Res and R intersect)
intersects = true;
exit for;
end if
end if
next
if (intersects = false)
ListOfReservationsInSpaceA.Add(Res);
Return "A"
end if
intersects = false
// do the same for spots B and C
// if all spots are taken, return "none"
end function
但是根据我的代码,如果预订 1 是在上午 8 点到下午 5 点之间并且预订 A 点,预订 2 将在上午 10 点到晚上 8 点之间预订 B 点,而预订 3 将在下午 6 点到晚上 10 点之间预订 C 点(预订 1 完成后) , 应该在上午 8 点到晚上 10 点之间工作的预订 4 无法进行,因为所有位置都被占用了。
我希望这是相对清楚的。
感谢您的帮助!我使用的语言是 VB.NET,但我可以从 C、C++、C#、Java 等语言翻译
所以我发现我的原始算法在 100% 的时间内都有效,直到预订被取消,在这种情况下停车位不会被刷新。我很确定我在这里遇到的问题只发生在预订取消期间,因此我在取消代码中添加了 "refresh" 函数。事情似乎奏效了。我必须让我的测试人员确定这一点。
总之,谢谢大家的帮助。
我 运行 遇到了一个棘手的问题。这对你们大多数人来说可能很容易,但我只是没有看到它。
有 3 个可用停车位:A、B 和 C。所有 3 个都可以同时预订,但一次最多只能预订 3 个,否则我们将 运行空间!
我目前的问题可以在我的杰作中查看:http://i.imgur.com/6aFSTHu.png(这代表我正在使用的调度程序对象,左边标有时间)。
表示一个调度程序控件,"bookings" 用于停车位。 这是我目前正在做的一些伪代码:
function GetFreeSpace(Reservation Res)
boolean intersects;
for each Reservation R in ListOfReservationsInSpaceA
if (R and Reservation are not the same)
if (Res and R intersect)
intersects = true;
exit for;
end if
end if
next
if (intersects = false)
ListOfReservationsInSpaceA.Add(Res);
Return "A"
end if
intersects = false
// do the same for spots B and C
// if all spots are taken, return "none"
end function
但是根据我的代码,如果预订 1 是在上午 8 点到下午 5 点之间并且预订 A 点,预订 2 将在上午 10 点到晚上 8 点之间预订 B 点,而预订 3 将在下午 6 点到晚上 10 点之间预订 C 点(预订 1 完成后) , 应该在上午 8 点到晚上 10 点之间工作的预订 4 无法进行,因为所有位置都被占用了。
我希望这是相对清楚的。
感谢您的帮助!我使用的语言是 VB.NET,但我可以从 C、C++、C#、Java 等语言翻译
所以我发现我的原始算法在 100% 的时间内都有效,直到预订被取消,在这种情况下停车位不会被刷新。我很确定我在这里遇到的问题只发生在预订取消期间,因此我在取消代码中添加了 "refresh" 函数。事情似乎奏效了。我必须让我的测试人员确定这一点。
总之,谢谢大家的帮助。