试题与答案

【说明】 在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作。当按下

题型:问答题

题目:

【说明】 在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作。当按下电梯内按钮请求电梯在指定楼层停下时,按钮指示灯亮,当电梯到达指定楼层时,指示灯熄灭。除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降运动时,关门并停止在当前楼层。 软件设计师火云龙采用面向对象分析的方法,经过三次逐步求精设计之后,得到如图 13-19所示的类图。

【问题1】 按钮类有一个重要的属性,请将该属性填入图13-19中的(a)处。 【问题2】 识别关联的多重性是面向对象建模重要的一步,请根据题目说明填空(1)~(6)。 【问题3】 软件设计师火云龙在初步设计类时,将门(的状态)作为电梯的属性,后经思考,将电梯门设计成一个独立的类,这么做的好处是什么 软件设计师火云龙在初步设计类时,并没有设计“请求”类,后来又加入了该类,这么做的原因是什么

答案:

参考答案:

解析:[问题1] (a)指示灯 [问题2] (1)mn (2)mn (3)2m-2 (4)2m-2 (5)n (6)n [问题3] 一旦将电梯门作为一个独立的类,则打开或关闭电梯门的唯一办法就是向“电梯门”类对象发送消息。如果电梯门类封装得好,就能保证不会在错误的时间关闭或打开电梯门,从而有效杜绝严重意外事故的发生。 出于安全考虑,在未经授权时不能随意修改“请求”,因此将“请求”设计成独立的类,如果“请求”类封装得好就能有效保证电梯安全运行。从图13-19可知,电梯按钮类和楼层按钮类都是按钮类的子类,电梯按钮和楼层按钮的共同点就是用指示灯跟乘客进行交互,所以,按钮类必定有个重要的属性“指示灯”。识别关联的多重性是面向对象建模重要的一步。题目的说明中提到“在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作”、“除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行”,所以这栋大厦中一共有mn个电梯按钮,共有2m-2个楼层按钮,电梯控制器类控制着所有的电梯按钮、楼层按钮和电梯,所以第(1)~(6)空应分别填:mn、mn、2m-2、2m-2、n、n。注意,不可以用*号代替,*号表示多个,具体多少是未知,而题目已经给定具体数目,所以应该用m、n来表示。 识别类是面向对象分析的第一步,常用的方法是名词分析法。题目的说明其实就是电梯系统的需求说明,出现了如下主要名词:大厦、电梯、楼层、按钮、运动、指示灯、请求、最底层、最高层、方向和门。这些名词所代表的事物可作为类的初步候选者。其中,大厦、最底层、最高层和楼层处于问题范畴之外,因此不必考虑。运动、方向、指示灯和门可作为其它类的属性,例如,指示灯(的状态)可作为按钮类的属性,方向和门(的状态)可作为电梯类的属性。 经过上述初步筛选只剩下两个基本的候选类,即电梯类和按钮类。在题目的说明中实际指定了两种按钮,因此,应该为按钮类定义两个子类,即电梯按钮和楼层按钮。综合上述分析结果,可得出系统的类图,如图13-50所示。

这个模型是非常初步的模型,需要进一步充实、精化和完善。 分析上述模型会发现它存在比较明显的不足:在实际的电梯系统中,按钮并不直接与电梯通信;为了决定分派哪一部电梯去响应一个特定的请求,必须有某种类型的电梯控制器。然而在题目说明中并未提到控制器,因此它未被列入候选类中。由此可见,名词分析法只为寻找候选类提供了初步线索,不能指望依靠这种方法找出全部候选类。系统分析员必须根据领域知识、常识和经验做进一步分析,才能找出问题域中所有的类。补充了电梯控制器类之后,其类图如图13-51所示。

这个模型也并非十分完善。电梯类的主要功能应是执行电梯控制器发出的移动或等待命令,如果将门(的状态)作为电梯的一个属性,则电梯还要执行关门或开门的命令,这样电梯类的功能就不单一了。于是将电梯门划分出来成为一个独立的类,一旦将其作为一个独立的类,则打开或关闭电梯门的唯一办法就是向“电梯门”类对象发送消息。如果电梯门类封装得好,就能保证不会在错误的时间关闭或打开电梯门,从而有效杜绝严重意外事故的发生。同样,出于安全考虑,在未经授权时不能修改“请求”,因此将“请求”设计成独立的类。经过再次完善之后的类图如图13-19所示。

试题推荐
题型:选择题

据美国全国广播公司报道,当地时间8月29日清晨6时10分,飓风“卡特里娜”裹胁狂风暴雨在美国墨西哥湾沿岸登陆,登陆时风速达到了每小时145英里(约233千米),淹没路易斯安那州新奥尔良市的数个居民区,造成重大人员伤亡。据此回答:

小题1:该飓风登陆美国时,地球在公转轨道上的位置比较接近下图中的

A.①

B.②

C.③

D.④小题2:下列关于飓风的叙述,正确的是

A.会诱发地震和海啸

B.中心最大风力在6级以上

C.形成在太平洋附近洋面上

D.“卡特里娜”为逆时针向中心辐合的大旋涡气流小题3:该飓风登陆后,造成美国众多生命和几十亿美元的财产损失。其直接原因是

①强风 ②风暴潮 ③特大暴雨 ④严重干旱

A.①②

B.③④

C.①②③

D.①②③④小题4:8月28日,受飓风影响新奥尔良市的风向是

A.东北风

B.东南风

C.西南风

D.西风

查看答案
微信公众账号搜索答案