问题描述
- c++ 写旅馆的课设时遇到 的问题
-
老师的提示: 旅馆近期房间安排可用结构型二维数组(预分配表)表示
近一周的预分配情况.
我用的room[x].month[n][2]和room[x].day[n][2]代表房间x被预订的
信息(month[i][0]代表第i份预订的入住月份)
如果后面又来了个人 要预订这个已经被预订了的房间 怎么判断这个房间是否还能被预订呢(感觉好复杂= = 如果觉得很弱智求轻喷)
解决方案
加一个判空标记flag(BOOLEAN型),如果有人居住就给flag赋值1,离开则赋值为0,这样可行否?
解决方案二:
为每个房间设置一个标志,用于标识房间是否空。
用二维数组没有问题,但数组的单个元素的数据结构需要详细的设计,以求后续操作简单。
解决方案三:
我的意思是假如某个房间4月3号4号7号8号被预订了,那其实5号六号是空的,可以住的,这个怎么判断
解决方案四:
你这个牵扯到了日期的计算,如果你一定要自己计算日期的话那有点难度,可能需要调试一段时间的。如果你直接用系统的日期对象那就简单多了。
你设想一下每个房间都有一个时间对象,这个时间对象是时间段,那么你要解决的就是这个时间对象如何插入时间段、如何删除时间段以及如何计算
有效时间段。
时间段的计算,开始时间是否包含在已定时间段内,结束时间是否在已定时间段内,新时间段是否包含任何已定时间段的开始时间或截至时间。通过
以上判断可以得出是否可以预定。
如果你一定要用你的数组来表达的话那么建议你预定日期用一个数组表示,并且用字符串记录下来,然后查找字符串进行比对即可。不然比较月份、
然后比较日期,这样能把你烦死
解决方案五:
用字符串记录然后比对一下会比你查找数组要简单太多了
时间: 2024-12-02 17:07:17