首页
登录
从业资格
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文
题库
2022-08-02
61
问题
现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计,所得类图如图6-1所示。
采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。【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 parseFile(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*image1=(4);ImageImp*imageImp1=(5);(6);Image1->parseFile(“demo.bmp”);}现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计(7)个类。
选项
答案
解析
(1)this->imp
(2)ImageImp
(3)imp->doPaint(m)
(4)new?BMP()
(5)new?WinImp()
(6)image1->setImp(imageImp1)
(7)17
根据题目描述,在设计该图像显示系统时主要分为两个步骤:一是读取各种文件并将文件内容转换成像素矩阵,因为各种图片格式不同,因此需要针对每一种图片格式编写文件读取代码,而该代码与操作系统平台无关。将像素矩阵显示到屏幕上时,由于和操作系统相关,因此需要把该代码和读取文件代码相分离。设计中的Image类表示抽象的图像概念,Image类中就包含了读取文件接口和设置实现平台接口;Image的子类BMP、GIF和JPEG分别负责读取各种不同格式的文件;ImageImp的主要任务是将像素矩阵显示在屏幕上,因此,它存在两个子类,分别实现Windows系统和Linux系统上的图像显示代码。空缺(1)处主要是设置将在哪个平台上进行实现,因此该处应该存储参数所传递的对象,由于该类的成员变量也是imp,与参数相同,因此需要填写this->imp;同理,该成员变量的类型和参数的类型应该保持相同,空(2)处应该填写ImageImp;空(3)处需要根据imp成员变量存储的实现对象来显示图像;在空(4)处需要生成一个BMP对象;由于需要在Windows平台上实现,因此空(5)处需要生成一个WinImp对象,同时,还需设置该BMP对象,应采用WinImp对象来实现显示。采用桥接模式能够将文件分析代码和图像显示代码分解在不同的类层次结构中,如果不考虑中间使用的Matrix等类,那么最后需要设计的类包括2个父类,对应文件格式子类,对应操作系统平台类,因此10种图像格式和5种操作系统需要17个类。
转载请注明原文地址:https://tihaiku.com/congyezige/2409907.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
假设某企业信息管理系统中的5个实体:部门(部门号,部门名,主管,电话),员工(员
某房屋租赁公司拟开发一个管理系统用于管理其持有的房屋、租客及员工信息。请根据下述
某海外代购公司,为扩展公司业务,需要开发一个信息化管理系统。请根据公司现有业务及
某健身俱乐部要开发一个信息管理系统,该信息系统的部分关系模式如下: 员工(员工
某企业的信息系统管理数据库中的员工关系模式为Emp(员工号,姓名,部门号,岗位,
某社会救助基金会每年都会举办多项社会公益救助活动,需要建立一个信息系统,对之进行
某数据库应用系统在运行过程中,发现随着数据量的不断增加,有部分查询业务和数据更新
某销售公司需开发数据库应用系统管理客户的商品购买信息。该系统需记录客户的姓名、出
某医疗护理机构为老年人或有护理需求者提供专业护理。现欲开发一基于Web的医疗管理
某医院住院部信息系统中有病人表R(住院号,姓名,性别,科室号,病房,家庭住址),
随机试题
Hethoughtitunnecessary______soearly.A、gettingupB、thatgetupC、togetup
Physicalfitnessistheresultofmanyfactors--goodmedicalcare,propernut
What’sthebestwaytoguardagainstlargefinanciallosses?Thebestwaytogua
A、AStatementofFinancialResponsibility.B、Abankletterorstatement.C、Apro
肺挫伤不出现:()A.肺纹理模糊 B.斑片状阴影 C.病灶不按肺段分
下列关系中,结果为“假”的是( )。A.(2<4)<2 B.(3<=5)11
A.建立并执行保管制度B.核算药品价格C.必要的冷藏、防冻、防潮、防虫、防鼠等措
满足亲和需要的行为不包括()。A:成为团队的一分子 B:对资源进行控制 C
方案一的收益为______万元,方案二的收益为______万元。()A.108
塑料排水板顶端埋入砂垫层的长度不应小于()m。A.0.2 B.0.3 C.
最新回复
(
0
)