第
3题: 试题三(共15分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
图3-1所示为某软件系统中一个温度控制模块的界面。 界面上提供了两种温度计量单位,即华氏度(Farechet)和摄氏度(Celsius)。软件支持两种计量单位之间的自动换算,即若输入一个华氏度的温度,其对应的摄氏度温度值会自动出现在摄氏度的显示框内,反之亦然。
用户可以通过该界面上的按钮Raise (升高温度)和Lower (降低温度)来改变温度的值。界面右侧是个温度计, 将数字形式的温度转换成温度计上的制度比例进行显示。当温度值改变时,温度计的显示也随之同步变化。

现在采用面向对象方法现实该温度控制模板,得到如图3-2所示的用例图和3-3所示的类图。


【问题1】(4分)
根据说明中的描述,给出图3.2中U1~U4所对应的用例名。
【问题2】(8分)
根据说明中的描述,给出图3-3中C1~C8所对应的类名(类名使用图3-1中标注的词汇)。
【问题3】(3分)
现需将图3-1所示的界面改造为个更为通用的 GUI应用,能够实现任意计量单位之间的换算,例如千克和确之间的模算、厘米和英寸之间的换算等等。为了实现这个新的需求,可以在图 3-3所示的类图上增加哪种设计模式?请解释选择该设计模式的原因(不超过50字)。
答案解析与讨论:
www.cnitpm.com/st/538935981.html第
4题: 试题四(共15分)
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
排序是将一组无序的数据元素调整为非递减顺序的数据序列的过程,堆排序是一种常用的排序算法。用顺序存储结构存储堆中元素。非递减堆排序的步骤是:
(1)将含n个元素的待排序数列构造成一个初始大顶堆,存储在数组R(R[1],R[2],...,R[n])中。此时堆的规模为 n,堆顶元素R[1]就是序列中最大的元素,R[n]是堆中最后一个元素。
(2)将堆顶元素和堆中最后一个元素交换,最后一个元素脱离堆结构,堆的规模减1,将堆中剩余的元素调整成大顶堆;
(3)重复步骤(2),直到只剩下最后一个元素在堆结构中,此时数组R是一个非递减的数据序列。
【C代码】
下面是该算法的C语言实现。
(1)主要变量说明
n:待排序的数组长度
R[]:待排序数组,n个数放在R[1],R[2],...,R[n]中
(2)代码

【问题1】(8分)
根据以上说明和C代码,填充C代码中的空(1)~(4)。
【问题2】(2分)
根据以上说明和C代码,算法的时间复杂度为(5)(用O符号表示)。
【问题3】(5分)
考虑数据序列R=(7,10,13,15,4,20,19,8),n=8,则构建的初始大顶堆为(6),
第一个元素脱离堆结构,对剩余元素再调整成大顶堆后的数组R为(7)。
答案解析与讨论:
www.cnitpm.com/st/5389421543.html第
5题: 试题五
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
Facade(外观)模式是一种通过为多个复杂子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。以医院为例,就医时患者需要与医院不同的职能部门交互,完成挂号、门诊、取药等操作。为简化就医流程,设置了一个接待员的职位,代患者完成上述就医步骤,患者则只需与接待员交互即可。如5-1给出了以外观模式实现该场景的类图。

【Java 代码】


答案解析与讨论:
www.cnitpm.com/st/538952851.html