首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
现欲实现一个图像浏览系统,要求该系统能够显示.BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性
现欲实现一个图像浏览系统,要求该系统能够显示.BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性
admin
2017-08-31
142
问题
现欲实现一个图像浏览系统,要求该系统能够显示.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://kaotiyun.com/show/pODZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下有关网络设备安装与调试的叙述,分析设备配置文件,回答问题1、问题2和问题3。现以一台远程访问服务器(RemoteAccessServer,RAS)Cisco2509、RJ45为例来说明。第1步,准备安装与调试所需的设备,主要包
如果以前已经配置过这台服务器为VPN服务器,现在需要重新配置,该怎么操作?VPN是在不安全的Internet中通信的,通信的内容可能涉及企业的机密数据,因此保证其安全性非常重要。VPN中的安全技术通常由加密、认证及密钥交换与管理组成,请简要解释其认证技
阅读以下说明,回答问题1~3。【说明】Windows组网是指把Windows终端和服务器连接起来。如图5-6所示给出了在Windows操作系统中的典型LAN配置。
简述网络规划阶段需求分析的方法和解决的问题。(控制在100个字以内)在网络规划阶段“系统可行性分析和论证”的主要内容是什么?(控制在100个字以内)
从工作的频段、数据传输速率、优缺点以及它们之间的兼容性等方面,对IEEE802.11a、IEEE802.11b和IEEE802.11g进行比较。1.将(1)处空缺设备的名称填写在相应位置。
L2TP协议是一种基于(1)协议的二层隧道协议,它结合了Cisco的L2F和MicrosoftPPTP的优点。该协议报文在传输层封装(2)协议之上,为了保证传输的可靠性,L2TP协议对控制报文采取了(3)机制,并要求tunne1对端设备在隧道(tunne
在交换机上可以配置虚拟局域网(VLAN),以下是部分配置清单。回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。>enablegconfigtEnterconfigurationcommands,oneperli
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。根据试题的描述信息分析,在最理想的情况下,需要多少天才能完成此网管软件开发任务?如果按保守的估计,则需要多少天才可完成此开发任务?(请列出简要的计算过程)
阅读以下交换机Switch01的部分配置信息,结合图2-8所示的网络拓扑图将(1)~(8)空缺处的内容(命令或解释)填写完整。Switch>enable(进入特权模式)S
阅读以下关于网络应用系统可靠性分析方面的技术说明,根据要求回答问题1至问题4。【说明】可靠性是一个网络应用系统能正常工作的能力,一般用平均故障间隔时间(MTBF)来度量。某网络应用软件研发公司正在开发一个嵌入式实时应用软件——宽带路由器的NanO
随机试题
A、Talentandhumor.B、Energyandlove.C、Creativeandcourage.D、Talentandhumanity.D题目问的是大卫先生对国家品质方面最崇尚什么。由对话可知,是talentandh
为调查某地幼儿园1~6岁儿童生长发育情况设计一个调查表。项目有被调查者的姓名、出生年月、性别、身高、体重和血红蛋白值等内容。此调查表中的哪一个项目的答案设计最适合用封闭式
对某无工业污染山村的儿童生长发智力发育和疾病发病状况的调查发现,该地区部分儿童身体发有迟缓和智力低下,除此外,未发现其他异常。当地儿童所患的疾病最可能是
用表格法进行投资偏差分析时,实际工程量乘以计划单价得到的是()投资。
经济发展水平较低的国家,其经济发展速度的提高较为困难。( )
营运能力是公司产生现金的能力,它取决于可以在近期转变为现金的流动资产的多少,是考察公司短期偿债能力的关键。()
按照()划分,个人住房贷款可分为新建房个人住房贷款、个人再交易住房贷款和个人住房转让贷款。
某笔记本电脑品牌通过市场调研对品牌概念进行探索,归纳出来的概念有质量方面(通过ISO认证),有功能方面(多媒体,玩游戏,自己制作照片),有生活空间延伸方面(网上交友,自己制作照片)。而确立的核心概念是网上联络,以打可视电话为概念载体,最终的创意故事表现是笔
Youmaybesurprisedtosee"makingsurechildrenneversuffer"asamistake.Thefollowing【C1】__________mayhelpyouunderstand
下列有关结算公式描述正确的有()。
最新回复
(
0
)