首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG
admin
2010-04-08
68
问题
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图5—6所示。
采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。
【c++代码】
class Matrix{//各种格式的文件最终都被转化为像素矩阵
//st处代码省略
};
class ImageImp{
public:
virtual void doPaint(Matrix m)=0; //显示像素矩阵m
};
class WinImp:public ImageImp{
public:
void doPaint(Matrix m){/*调用windows系统的绘制函数绘制像素矩阵*/)
);
class LinuxImp:public ImageImp{
public:
void doPaint(Matrix m){/*调用Linux系统的绘制函数绘制像素矩阵*/)
};
class Image{
public;
void setImp(ImageImp*imp){ (1) =imp;)
virtual void parseFile(string fileName)=0 ;
protected:(2) *imp;
};
classBMP:public Image{
public:
void parseFile(string fileName){
//此处解析BMP文件并获得一个像素矩阵对象m(3) ;//显示像素矩阵m
};
classGIF:public Image{
//此处代码省略
};
classJPEG:public Image(
//gh处代码省略
};
void main(){
//在windows操作系统上查看demo.bmp图像文件
Image*imagel= (4) ;
ImageImp*imageImpl= (5) ;(6) ;
imagel->parseFile(“demo.bmp”);
}
现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计 (7) 个类。
选项
答案
(1)this->imp(2)Imagelmp(3)imp->doPaint(m)(4)newBMP()(5)new WinImp()(6)imagel->setImp(imageImpl)(7) 17
解析
根据题目描述,在设计该图像显示系统时主要分为两个步骤:一是读取各种文件并将文件内容转换成像素矩阵,因为各种图片格式不同,因此需要针对每一种图片格式编写文件读取代码,而该代码与操作系统平台无关。将像素矩阵显示到屏幕上时,由于和操作系统相关,因此需要把该代码和读取文件代码相分离。设计巾的Image类表示抽象的图像概念Image类中就包含了读取文件接口和设置实现平台接口。Image的子类BMP、GIP和IPEG分别负责读取各种不同格式的文件;ImageImp的主要任务是将像素矩阵显示在屏幕上,因此,它存在两个子类,分别实现Windows系统和L,inux系统上的图像显示代码。空缺(1)处主要是设置将在哪个平台上进行实现,因此该处应该存储参数所传递的对象,由于该类的、成员变量也是imp,与参数相同,因此需要填写this—wimp,同理,该成员变量的类和参数的类M应该保持相同。空(2)处应该填写Imagelmp,空(3)处需要根据imp成员变量存储的实现对象来显示图像;在空(4)处需要生成一个BMP对象;由于需要在Windows平台上实现,因此空(5)处需要生成一个winImp对象,同时,还需设置该BMlP对象,应采用winImp对象来实现显示。采用桥接模式能够将文件分析代码和图像显示代码分解在不同的类层次结构中,如果不考虑中间使用的Matrix等类,那么最后需要设计的类包括两个父类,对应文件格式子类,对应操作系统平台类,因此10种图像格式和5种操作系统需要17个类。
转载请注明原文地址:https://kaotiyun.com/show/XSDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
______不是正确的软件测试目的。A.尽最大的可能找出最多的错误B.设计一个好的测试用例对用户需求的覆盖度达到100%C.对软件质量进行度量和评估,以提高软件的质量D.发现开发所采用的软件过程的缺陷,进行软件过程改进
以下关于软件测试原则的叙述中,正确的是______。①测试开始得越早,越有利于发现缺陷②测试覆盖率和测试用例数量成正比③测试用例既需选用合理的输入数据,又需要选择不合理的输入数据④应制定测试计划并严格执行,排除随意性
程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(19)是错误的。
GB/T18905-2002《软件工程产品评价》提供了软件产品评价的过程,其中GB/T18905-2002《软件工程产品评价》第五部分评价者用的过程供(53)。
对于下面的有向图,其邻接矩阵是一个①的矩阵。采用邻接链表存储时,顶点0的表结点个数为2,顶点3的表结点个数为0,顶点1的表结点个数为②个。②处应填入?
对于下面的有向图,其邻接矩阵是一个①的矩阵。采用邻接链表存储时,顶点0的表结点个数为2,顶点3的表结点个数为0,顶点1的表结点个数为②个。①处应填入?
对于逻辑表达式(((a>0)&&(b>0))‖c<5),需要______个测试用例才能完成条件组合覆盖。
某系统中有一个中央数据存储,模块A负责接收新来的数据并修改中央数据存储中的数据,模块B负责访问中央数据存储中的数据,则这两个模块之间的耦合类型为________________。若将这两个模块及中央数据合并成一个模块,则该模块的内聚类型为_________
在进行可用性测试时关注的问题应包括()。①安装过程是否困难②错误提示是否明确③GUI接口是否标准④登录是否方便⑤帮助文本是否上下文敏感
随机试题
对不同类型的运算符,优先级的规定是()。
男性,70岁,以往有劳力型心绞痛,长期服用硝酸甘油,病情尚稳定,近1个月来胸痛又发作,部位于胸骨下段,且多发生在午睡时或晚间人睡后,服硝酸甘油无效,起床站立后可缓解。以往有胆石史但从无发作。为了进一步明确诊断应做下列哪项检查
反映问卷的可靠程度的指标是
肝其华在
下列涎腺疾病中有自愈倾向的是
进行施工成本分析时,比较法的应用通常采用的形式是()。
洁净避难区设置的机械加压送风系统一般利用新风空调机组进行加压,火灾时,维持避难区正压,正压值相对于相邻区域为()Pa。
某大型流通企业2008年年销售收入为1亿元,经过董事会商议,打算就2008年净利润进行分配,且还计划在2009年投资建造一新项目。预计该新项目原始投资额为500万元,投资项目寿命期5年,当年投产并产生效益,5年中每年的销售收入为280万元,销货成本为180
新同事小李能力强,有思想,在你面前虚心请教,可是在同事面前却说你思想守旧能力不行等等,你怎么办?
Inmanaginginformationresources,themediummaybethekeytoaneffectivesystem.Themediumisavehicle,atool,oraconta
最新回复
(
0
)