案例分析题

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积的里程数进行调整。描述会员等级调整的状态图如图5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图5-2 所示的类图。

【正确答案】

(1) virtual double travel(int miles,FrequentFlyer context)=0
(2)context->setState(context->silver)
(3)context->setState(context->gold)
(4)context->setState(context->silver)
(5)context->setState(context->basic)

【答案解析】