首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
现欲实现一个图像浏览系统,要求该系统能够显示.BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性
现欲实现一个图像浏览系统,要求该系统能够显示.BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性
admin
2017-08-31
139
问题
现欲实现一个图像浏览系统,要求该系统能够显示.BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图16.1所示。
采用该设计模式的原因在于:系统解析BMP、GIF与IPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。
【C++代码】
class Matrix{ //各种格式的文件最终都被转化为像素矩阵
;//此处代码省略
};
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 parseFi le(string fileName)=0;
protected:
(2) *imp;
};
class BMP:public Image{
public:
void parseFile(string fileName){
//此处解析BMP文件并获得一个像素矩阵对象m
(3);//显示像素矩阵m
}
};
class GIF : public Image{
//此处代码省略
};
class JPEG :public Image{
//此处代码省略
};
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)new BMP() (5)ngw WinImp() (6)imagel一>setImp(Imagelmpl) (7)17
解析
本题考查基本面向对象设计模式的运用能力。
由文字描述和UML结构图可知BMP、GIF与JPEG是Image的子类,分别负责读取不同格式的文件。Imagelmp的主要任务是将像素矩阵显示在屏幕上,它的两个子类Winlmp、Linuxlmp分别实现Windows系统和Linux系统上的图像显示代码。空(1).处主要设置在哪个平台上进行实现,由于该类的成员变量也是imp,与参数相同,因此应填this->imp。同理,该成员变量的类型和参数的类型应保持相同,故空(2)处应填ImageImp。空(3)处需要根据imp成员变量存储的实现对象来显示图像,应填imp->doPaint(m)。在空(4)处需要生成一个BMP对象,故应填。new BMP(),在空(5)处需要生成一个WinImp对象,故应填new Winlmp(),空(6)处应填imagel一>setlmp(Imagelmp 1),采用Bridge(桥接模式)能够将文件分析代码和图像显示代码分解在不同的类层结构中,如果不考虑Matrix等类,那么最后需要设计的类包括2个父类,分别为文件格式子类和操作系统平台类,故系统需要支持10种格式的图像文件和5种操作系统至少需要17个类。
转载请注明原文地址:https://www.kaotiyun.com/show/pODZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
如果以前已经配置过这台服务器为VPN服务器,现在需要重新配置,该怎么操作?VPN按技术可分为哪三类?
在Internet上捕获并分析图8-16所示的网络中两个内部网络经由Internet通信的L2TPv2数据帧,请从以下4个选项中选择正确的答案填写到图8-17的(1)~(4)空缺处的相应位置。【供选择的答案】A.L2TPv2头
SSL是一个协议独立的加密方案,在网络信息分组的应用层和传输层之间提供了安全的通道。SSL主要包括SSL修改密文协议、SSL握手协议、SSL告警协议、SSL记录协议等,其协议栈见图7-16。请根据SSL协议栈结构,将(1)~(4)处空缺的协议名称填写完整。
认真阅读以下关于架构Apache安全服务器的技术说明,根据要求回答问题1至问题5。【说明】某些商务公司要求其网站的部分信息资源只对经过身份认证后的用户开放。因此在Linux+Apache架构Web服务器方案中,需利用mod-ss1模块给Apach
如果在网络设计过程中划分了很多VLAN,则可采用VTP来简化其管理。交换机管理IP地址只能创建在(1)中,而VTP信息只能在(2)端口上传播。共享相同VLAN数据库的交换机构成一个(3)。不同交换机平台、不同的IOS版本支持的VLAN数量不同,从图6-18
ISDN分哪几层?NT2(网络终端连接设备)提供哪两种交换功能?请说出ISDN与传统PSTN的区别。
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。请指出图7-15可能存在的关键路径是什么?(请用英文字母序号列出)
ADSL技术可以充分利用现有铜线网络,只要在用户线路两端加装ADSL设备即可为用户提供服务。请从以下术语选择适当的编号,将图5-9所示的拓扑结构中(1)~(4)空缺处的名称填写完整。【供选择的答案】A.程控交换机B.二层交换机
阅读以下交换机Switch01的部分配置信息,结合图2-8所示的网络拓扑图将(1)~(8)空缺处的内容(命令或解释)填写完整。Switch>enable(进入特权模式)S
阅读以下交换机Switch01的部分配置信息,结合图2-8所示的网络拓扑图将(1)~(8)空缺处的内容(命令或解释)填写完整。Switch>enable(进入特权模式)S
随机试题
肾小球源性血尿的最主要特点是
匀质杆质量为m,长OA=l,在铅垂面内绕定轴O转动。杆质心C处连接刚度系数k较大的弹簧,弹簧另端固定。图示位置为弹簧原长,当杆由此位置逆时针方向转动时,杆上A点的速度为νA,若杆落至水平位置的角速度为零,则νA的大小应为:
完善对外开放区域布局,支持沿海地区全面参与全球经济合作和竞争,要发挥()地区的对外开放门户作用。
甲建筑公司收到了某水泥厂寄发的价目表但无其他内容。甲按标明价格提出订购1000吨某型号水泥,并附上主要合同条款,却被告知因原材料价格上涨,原来的价格不再适用,要采用提价后的新价格,则下列说法正确的有()。
企业进行市场调查可以采用的方法有()。
某企业“生产成本”科目的期初余额为10万元,本期为生产产品发生直接材料费用80万元,直接人工费用15万元,制造费用20万元,企业行政管理费用10万元,本期结转完工产品成本为100万元。假定该企业只生产一种产品,期末“生产成本”科目的余额为()万元。
甲公司为增值税一般的纳税人。2×17年1月1日,甲公司通过公开拍卖市场以5000万元购买一块可使用50年的土地使用权,用于建造商品房。为建造商品房,甲公司于2×17年3月1日向银行专门借款4000万元,年利率5%(等于实际利率),截至2×17年12月31日
()不能纠正绩效考评中的晕轮误差。
一家食品店从周一到周日,每天都有3种商品特价销售。可供特价销售的商品包括3种蔬菜:G、H和J;3种水果:K、L和O;3种饮料:X、Y和Z。必须根据以下条件安排特价商品:(1)每天至少有1种蔬菜特价销售,每天至少有1种水果特价销售。(2)
程序 #include"iostream.h" voidmain() { inti=10; jntj=5; cout<<j+i++<<end1; } 的结果为【】
最新回复
(
0
)