某航空公司会员积分系统(CFrequentFlyer)的主要功能描述如下:
乘客只要办理该航空公司的会员卡,即可成为普卡会员(CBasic)。随着飞行里程数的积累,可以从普卡会员升级到银卡会员(CSilver)或金卡会员(CGold)。非会员(CNonMember)不能积累里程数。
每年年末,系统根据会员在本年度累积的里程数对下一年会员等级进行调整。
普卡会员在一年内累积的里程数若满25000英里但不足50000英里,则自动升级为银卡会员;若累积的里程数在50000英里以上,则自动升级为金卡会员。银卡会员在一年内累积的里程数若在50000英里以上,则自动升级为金卡会员。
若一年内没有达到对应级别要求的里程数,则自动降低会员等级。金卡会员一年内累积的里程数若不足25000英里,则自动降级为普卡会员;若累积的里程数达到25000英里,但是不足50000英里,则自动降级为银卡会员。银卡会员一年内累积的里程数若不足25000英里,则自动降级为普卡会员。
采用面向对象方法对会员积分系统进行分析与设计,得到如图3-1所示的状态图和图3-2所示的类图。

图3-1状态图

图3-2的类图
【问题1】(6分)
根据说明中的描述,给出图3-1中S1~S3处所对应的状态以及T1~T3处所对应的迁移的名称。
【问题2】(4分)
根据说明中的描述,给出图3-2中C1~C4所对应的类名(类名使用说明中给出的英文词汇)。
【问题3】(5分)
图3-2所示的类图中使用了哪种设计模式?在这种设计模式下,类CFrequentFlyer必须具有的属性是什么?C1~C4中的travel方法应具有什么功能?
正确答案及解析
正确答案
解析
【问题1】(6分)

S1:普卡会员
S2:银卡会员
S3:金卡会员
T1:25000<=里程<50000
T2:里程>=50000
T3:里程>=50000
【问题2】(4分)
C1~C4:CNonMember、CBasic、CSilver、CGold
【问题3】(5分)
(1)状态模式
(2)记录下一状态的属性
(3)判断什么情况进入下一状态
【问题1】
系统中的状态图,是对状态转换的图形化表达。从题目的说明部分可知,在状态转换过程中,涉及到的状态一共有四种:非会员,普卡会员,银卡会员,金卡会员。从状态图涉及的转换可知S1~S3分别为:普卡会员,银卡会员,金卡会员。关于状态转换的分析如下:
(1)由于普卡会员在一年内若累积的里程数在50000英里以上,则自动升级为金卡会员,所以T3为:里程>=50000。
(2)由于银卡会员在一年内累积的里程数若在50000英里以上,则自动升级为金卡会员,所以T2为:里程>=50000。
(3)由于一年内没有达到对应级别要求的里程数,则自动降低会员等级。金卡会员一年累积的里程数达到25000英里,但是不足50000英里,则自动降级为银卡会员,所以T1为:25000<=里程<50000。
【问题2】
问题2非常容易,说明中给出的英文词汇一共只有5个,有着同属于一个父类的四个子类关系的,也就只有:CNonMember、CBasic、CSilver、CGold这四个了,并且这四个类位置可以互换。
【问题3】
该问题要求分析类图所采用的设计模式,此处由于涉及到状态的转换问题,所以首选应是设计模式中的状态模式。由于状态模式的标准UML图为:

与题目给出的图示完全一致,所以可以断定本题所采用的设计模式就是状态模式。
由于是状态模式,所以在类CFrequentFlyer中必须有属性能记录下一个状态,同时travel方法也需要能准确判断什么情况应该进入下一状态。
包含此试题的试卷
你可能感兴趣的试题
某软件公司项目A的利润分析如下表所示。设贴现率为10%,第二年的利润净现值是 ( ) 元。

-
- A.1,378,190
- B.949,167
- C.941,322D 922,590
- 查看答案
以下关于项目管理计划编制的理解中,正确的是( ) 。
-
- A.项目经理应组织并主要参与项目管理计划的编制,但不应独立编制
- B.项目管理计划的编制不能采用迭代的方法
- C.让项目干系人参与项目计划的编制,增加了沟通成本,应尽量避免D 项目管理计划不能是概括的,必须是详细、具体的
- 查看答案
某软件企业2004年初计划投资1000万人民币开发一套中间件产品,预计从2005年开始,年实现产品销售收入1500万元,年市场销售成本1000万元。该产品的系统分析员张工根据财务总监提供的贴现率,制作了如下的产品销售现金流量表。根据表中的数据,该产品的动态投资回收期是 ( ) 年。

-
- A.1
- B.2
- C.2.27D 2.73
- 查看答案
软件设计过程中,视图可以从不同角度描述软件结构,以下关于几个常见视图的说法中, ( ) 是错误的。
-
- A.逻辑视图从功能需求角度描述了软件结构
- B.组件视图从实现角度描述了软件结构
- C.过程视图从质量角度描述了软件结构D 部署视图从分布问题角度描述了软件结构
- 查看答案
A project manager believes that modifying the scope of the project may provide added value service for the customer. The project manager should ( ) .
-
- A.assign change tasks to project members
- B.call A meeting of the configuration control board
- C.change the scope baseline
- D.postpone the modification until A separate enhancement project is fundeD after this project is completeD according to the original baseline
- 查看答案