————————更新(代码不更了……)————————
实现了一个很丑、很简单的界面……可以控制模拟天数……并且说明模拟的旅馆房间详情……
嘻嘻,实现了输入到excel中,使用的是jxl(据说已经很久没更新了,只支持2003版的excel文件,因此需要将文件另存为2003版本的,改后缀都不行,或者可以直接用代码生成一个也行),貌似现在都用opi了。
实现的功能
创建一个Costumer类,在构造函数中,随机数生成:客人人数、住宿时长、房间等级、是否愿意协商换房、客人距上一位客人到达的时间 interTime(*经典啊!!保证了客人的顺序是一定的,不需要考虑谁先订谁后订)
床位管理:旅馆设置为一个List < Queue > ,每一个房间都是一个< Queue>。
- 初始化时,循环生成18个Queue;
- 订房:在那个queue上添加客人信息(如果是住两天,就添加两次),
- 退房:queue.poll(),删除表头信息,
- 查看是否可以住:queue.peek() == null, 取头结点,如果是空,表示可以住人,
每24h(判断nowTime),退房一次(更新queue结点信息)
订房:先得出满足人数的房间(比如:2人-双人间)的预定情况,判断想住的等级是否可以入住;如果不行,判断是否能够换房;如果可以,则优先考虑满足人数(比如,普通双人间到豪华双人间),再考虑房型(比如,双人间没有了,选择三人间)
有个简单的界面,可以修改模拟的天数,并且将客户资料输出到excel中。
未实现的功能
因为是使用queue,因此无法在中间插入结点 == 无法预定几天后的房间!
因为能力有限,代码量比较繁杂,所以未考虑 : 一同来的人数比较多(多于3个),然后需要分房睡(比如,5个人=双人间+三人间 = 2*双人间+单人间)
代码
“` java
package hyx;
import com.sun.javafx.scene.contr