首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG
admin
2010-04-08
50
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为10、5和3。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示,此时系统剩余的可用资源数分别为(22)。如果进程按(23)序列执行,那么系统
在数据库逻辑结构设计阶段,需要(20)阶段形成的(21)作为设计依据。(20)
将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是()。
在以下网络应用中,要求带宽最高的应用是(65)。
为说明某一问题,在学术论文中需要引用某些资料。以下叙述中,()是不正确的。
某企业职工关系EMP(E_no,E_name,DEPT,E_addr,E_tel)中的属性分别表示职工号、姓名、部门、地址和电话;经费关系FUNDS(E_no,E_limit,E_used)中的属性分别表示职工号、总经费金额和已花费金额。若要查询部门为“开
传统编译器进行词法分析、语法分析、代码生成等步骤的处理时,前一阶段处理的输出是后一阶段处理的输入,则采用的软件体系结构风格是①。该体系结构的优点不包括②。①处应填入?
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天)。活动EH最多可以晚开始①天而不影响项目的进度。由于某种原因,现在需要同一个工作人员完成BC和BD,则完成该项目的最少时间为②天
标准符合性测试中的标准分类包括______。①数据内容类标准②通信协议类标准③开发接口类标准④信息编码类标准
软件测试使用各种术语描述软件出现的问题,以下叙述正确的是______。A.软件错误(error)是指在软件生命周期内的不希望或不可接受的人为错误,其结果是导致软件故障的产生B.软件缺陷(defect)是存在于软件(文档、数据、程序)之中的那些不希望或不
随机试题
急性肾小球肾炎最常见的临床表现为
A.大便潜血阳性B.肠梗阻表现C.低热、盗汗D.便秘结肠癌的早期表现为
A.鳞状细胞癌B.腺癌C.小细胞癌D.大细胞癌肺癌最常见的组织学类型是
下列选项属于凯文.林奇认为城市意象构成要素的是()。
某设备安装工程,合同价格为10万元,固定系数为0.2,人工系数为0.6,工程结算时,除人工上涨20%外其余未发生变化,该工程的结算合同价为( )万元。
甲公司拟发行优先股筹资,发行费用率和年股息率分别为2%和8%,每半年支付一次股利,企业所得税税率25%。根据税法规定,该优先股股利不能抵税。该优先股资本成本为()。
下列能体现循序渐进教学原则的是()。
下列关于遗忘规律表达不正确的是()
Billywasfouryearsoldandhewasaverycleverboy.Helikedplayingintheopenairverymuch.Everydayafterlunchhismot
Inthefirstparagraph,thewritertriestotellusthatpeopleAccordingtothewriter,therightwaytoargueisto______.
最新回复
(
0
)