gpt4 book ai didi

java - 在线餐厅预订系统(数据结构)

转载 作者:搜寻专家 更新时间:2023-11-01 01:53:29 25 4
gpt4 key购买 nike

我的任务是设计一个在线预订系统。用户可以在其中输入邮政编码/人数/预订时间并获得餐厅列表。假设(用户和餐厅总是在同一个城市)

每家餐厅可以有多张 table ,座位数不同。因此,2 张可容纳 4 人的 table 和 4 张可容纳 4 人的 table 。

我无法想出要使用的正确数据结构。

我的类如下

Restaurant : 包含 timeofopening, timeOfClosing, totalNoOfSeatsAvailable不确定我将如何在餐厅内存储餐 table 信息。为表格设置单独的类没有意义。我需要的所有信息是 Manytables 是如何免费的以及它们的大小是多少。

Reservation:这会维护实际的预订并允许取消预订

预订系统:包含“List checkAvailability(long time, int people)”的接口(interface)这将如何返回此列表?我最初想到使用 priorityQueue 来维护一个队列,其中有最大可用席位。但随后我将浏览该列表以查看时间是否正确以进行预订,然后一旦预订完成,更新此队列。一个问题是队列执行所有重复项。

我的具体问题是:

  1. 如何在每家餐厅内存储餐 table 信息。
  2. 维护此餐厅列表的最佳方法是什么,这样我就可以返回一个列表,而不必每次都对这些信息进行排序。

编辑:对于表信息如何存储的问题。我特别关心的是存储表类意味着我正在创建不必要的对象。这是我的推理。 5 张可容纳 2 人的 table ,每张 table 都有完全相同的元素——我的意思是,它们之间没有任何有意义的信息会有所不同。我只需要数字。没有座位/ table 。(如果我有一张 4 人但 3 人的 table ,我会考虑这张 table )

我想创建 3 个数组。让我们说表代表 1,2 等等 int[] differentSeatingOnTable;它的索引是表,值是允许的座位。接下来是一个包含 totalNoOfThosetable 的表数组,其中索引是表,值是此类表的总数。对于空闲表 freeTables 类似,其中索引是表以及剩余多少这样的空闲表。

最佳答案

<强>1。 ) 如果您只是存储餐厅的座位数量,那您就是搬起石头砸自己的脚。假设我需要预订 16 个人,而且他们必须在同一张 table 上(是的,我需要一张很长的 table )。您的系统可以将我的客人带到某个地方,他们必须坐在 8 张 table 上,每张 table 只能容纳两个人。

您确实需要一个表类。那么您的餐厅需要有餐 table 集合。如果您想知道一家餐厅有多少个座位,您只需遍历其餐 table 集合并计算座位数即可。而且,如果您想知道一家餐厅是否可以让一家人坐在一张 table 上,您只需要检查它是否有任何一张能容纳该数量座位的 table 。

编辑:有一种更简约的方式来存储每个餐厅的座位。使用字典、哈希表或任何其他包含键和关联值的结构。所以让键代表一种表。键可以是一个整数,表示 table 上有多少人。该值是餐厅中该类型餐 table 的数量。我认为这比我最初的建议要好得多。

因此,例如,具有这样一个哈希表的餐厅:

Key | Value
4 | 5
2 | 8
16 | 1

有五张 table ,每张 table 有四个座位,八张 table ,每张 table 有两个座位,还有一张长 table 可以坐 16 人。(还用一个表来存储表就是这么元)。

<强>2。 ) 您的预订理由是正确的。如果它在重复,您应该发布一个更具体的问题来说明您是如何做的,以便我们可以尝试帮助您找到错误。

关于java - 在线餐厅预订系统(数据结构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com