find some stupid bug in availableRoom() method. cancelBook() method
should work properly now. Polishing the bookRoom() method, for example
using pointer point to the target rather than new an instance, hope that
it can run faster.