题目
宾馆客房业务管理提供客房预订、预订变更、客房入住、退房结帐、旅客信息查询几个方面的功能。订房人可以通过电话、短信、网络或面对面等方式预定客房。允许预定人根据自己情况的变化更改预定信息。旅客入住客房前需要出示证件并登记,并要预交一定的押金。旅客提交押金后,柜台工作人员将在电脑上登记旅客信息,分配房间,并打印旅客入住单,旅客持入住单到指定客房入住。旅客离开宾馆前需要退房结账。旅客或宾馆管理人员可以随时查询旅客或客房的入住信息。分析这个问题,提取涉及的类,并画出类图。
宾馆客房业务管理提供客房预订、预订变更、客房入住、退房结帐、旅客信息查询几个方面的功能。订房人可以通过电话、短信、网络或面对面等方式预定客房。允许预定人根据自己情况的变化更改预定信息。旅客入住客房前需要出示证件并登记,并要预交一定的押金。旅客提交押金后,柜台工作人员将在电脑上登记旅客信息,分配房间,并打印旅客入住单,旅客持入住单到指定客房入住。旅客离开宾馆前需要退房结账。旅客或宾馆管理人员可以随时查询旅客或客房的入住信息。分析这个问题,提取涉及的类,并画出类图。
题目解答
答案
根据题目需求,可提取以下类:
- Guest(旅客):包含guestID、name、idCard、contactInfo等属性,方法有checkIn()、checkOut()、queryInfo()等。
- Reservation(预订):包含reservationID、bookingTime、checkInTime、checkOutTime、roomType、guestID等属性,方法有modifyReservation()、cancelReservation()等。
- Room(房间):包含roomNumber、roomType、price、status等属性,方法有assignRoom()、updateStatus()等。
- CheckInForm(入住单):包含checkInID、checkInTime、checkOutTime、depositAmount、roomNumber、guestID等属性,方法有printForm()。
- Receptionist(柜台工作人员):包含staffID、name等属性,方法有registerGuest()、assignRoom()、printCheckInForm()等。
- HotelManager(宾馆管理人员):包含managerID、name等属性,方法有queryGuestInfo()、queryRoomStatus()等。
- HotelSystem(宾馆系统):核心类,包含manageReservation()、manageCheckIn()、manageCheckOut()、queryInfo()等方法。
类图关系:
- Guest与Reservation:1对多。
- Guest与CheckInForm:1对多。
- Room与CheckInForm:1对多。
- Room与Reservation:1对多。
- Receptionist与CheckInForm:1对多。
- HotelManager与HotelSystem:关联。
- HotelSystem为核心,协调所有业务。
(类图已用文字描述,可按上述结构绘图。)