软件设计与体系结构练习题 联系客服

发布时间 : 星期六 文章软件设计与体系结构练习题更新完毕开始阅读

18. 设计一个使用几种排序算法对整数进行排序的程序。该程序可以计算出每种排序算法的执行

时间,以便比较各种排序算法的速度。该程序可以支持插入排序(InsertionSort)、快速排序(QuickSort)、冒泡排序(BubbleSort)、堆排序(HeapSort)。请使用策略模式进行设计,画出设计类图。

19. 利用状态模式设计的Weather State的实例。在本例中,考虑天气状态。天气状态可以分

为:晴天状态(Sunny State),下雨状态(Rainy State),刮风状态(Windy State),下雪(Snowing State)。在晴天状态,阳光普照;在雨天状态乌云密布,下雨不停;在刮风状态,大风刮得天昏地暗;在下雪状态,大雪纷飞。用状态模式封装天气状态。为了表达天有不测风云的思想,假设天气状态是随机改变的,即在四种状态之间的切换是根本没有规律可循的,因此,考虑在抽象类WeatherState中的方法changeState(Context cxt)的实现中,使用能产生随机整数的Random类。因此,具体状态的改变,由抽象类WeatherState负责实现。请采用常规的状态模式进行设计,画出设计类图。 WeatherState -ctx: Context

state +createStateObj() Context +changeState(Context cxt ):void

-state: WeatherState +setState():String +getCurrentState():String +getState() +action(): String +doAction():void

SunnyState WindyState RainyState SnowingState +action():String +action(): String +act(): String +act(): String

+changeState() +changeState() +changeState() +changeState() +setState():String +setState():String +setState():String +setState():String

20. 随机生成一个整数矩阵,矩阵可以看做是聚合类型的数据。使用迭代器模式设计,对该

矩阵进行不同的遍历:(1)奇数遍历(OddIterator),访问并统计矩阵中的所有奇数。(2)偶数遍历(EvenIterator),访问并统计矩阵中的所有偶数。(3)斜对角线遍历(DiagonalIterator), 按照斜对角线迭代遍历矩阵。请应用迭代器模式进行设计,画出设计类图。

21.

室内温度控制软件设计。室内温度控制需要具备窗户、风扇、空调的自动开启与关闭功能。因此,该应用需要设计三个类,分别用于封装窗户、风扇、空调。请利用命令模式设计该应用,画出设计类图。

22. 下图所示是一个调用排序算法的设计图。在实现时,调用者Invoker通过条件判断语句调用

相应的排序算法,调用者Invoker和接收者Receiver之间是紧耦合的。

请使用命令模式在Invoker与Receiver之间进行解耦,设计相应的类,并绘制设计类图。