首页
登录
从业资格
某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够在Win
某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够在Win
考试题库
2022-08-02
63
问题
某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够在Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5-1所示的类图。
图5-1【C++代码】#include<iostream>#include<string>using namespace std;class Matrix{//各种格式的文件最终都被转化为像素矩阵//此处代码省略};class Implementor{public:(1);//显示像素矩阵m};class WinImp:public Implementor{public:void doPaint(Matrix m){/*调用Windows系统的绘制函数绘制像素矩阵*/}};class LinuxImp:public Implementor{public:void doPaint(Matrix m){/*调用Linux系统的绘制函数绘制像素矩阵*/}};class Image{public:void setImp(Implementor*imp){this->imp=imp;}virtual viod parseFile(string fileName)=0;protected:Implementor*imp;};class BMPImage:public Image{//此处省略代码};class GIFImage:public Image{public:void parseFile(string fileName){//此处解析GIF文件并获得一个像素矩阵对象m(2);显示像素矩阵m}};class JPEGImage:public Image{//此处代码省略};int main( ){//在Linux操作系统上查看demo.gif图像文件Image*image=(3);Implementor*imageImp=(4);(5);image->parseFile("demo.gif");return 0;}
选项
答案
解析
(1)virtual void doPaint(Matrix m)=0
(2)imp->doPaint(m)
(3)new GIFImage()
(4)new LinuxImp()
(5)image->setImp(imageImp)
第一空是显示像素矩阵m
从类图来看Implementor是WinImp和LinuxImp两子类的父类。那就需要从子类中去找共同的方法,然后把它们抽象出来。
共同的方法为:void doPaint(Matrix m);抽象就成了virtual void doPaint(Matrix m)=0。
第二空是显示像素矩阵m
在Image的类和其子类中,要显示像素矩阵,可以使用调用Implementor类的方法doPaint,而Image类中定义了对象imp。
即调用的方法为:imp->doPaint(m)
第三空是构造出Gif图像的对象new GIFImage()
第四空是要在Linux操作系统上查看,需要一个LinuxImp的对象,new LinuxImp()
第五空是把imageImp对象传递,以便能够查看Gif图像文件,image->setImp(imageImp)
转载请注明原文地址:https://tihaiku.com/congyezige/2410684.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
若应用程序在执行时需要通过打印机输出数据,则一般先形成一个打印作业,将其存放在硬
在Windows操作系统中,如果没有默认的浏览jpg格式文件的程序,那么当用户双
在编译过程中,将源程序通过扫描程序(或词法分析程序)进行处理的结果称为()。A
以下与程序设计风格无关的是()A.代码的正确性 B.标识符的命名 C.代码
将计算机中可执行的程序转换为高级语言程序的过程称为()A.反编译 B.交叉编
用高级语言编写的源程序被保存为()A.位图文件 B.文本文件 C.二进制文
更适合于开发互联网络应用的程序设计语言是()。A.SQL B.Java C
计算机程序的三种基本控制结构是顺序、选择和()。A.循环 B.递归 C.函
编写源程序时在其中增加注释,是为了()。A.降低存储空间的需求量 B.提高执
以下与程序设计风格无关的是()。A.代码的正确性 B.标识符的命名 C.代
随机试题
MiracleoftheForestWhenyouwalkintoaNation
Newspapersandtelevisionoftenpresentthebadsideoflifetons.Lifeis,
[originaltext]W:Tom,lookatyourshoes.Howdirtytheyare!Youmustcleanth
DearMark,NewYorkisfinallygettingarealsalesmanager.Congratulations
NewYorkisthemostpopulous(人口多的)cityintheUnitedStates,inametropoli
如果n是正整数,并且n2的个位数是4,(n+1)22的个位数是1,那么(n+5)5的个位数是多少?A、2B、7C、6D、1E、9Bn2的个位数是4,那
2002—2005年,哪个国家出国旅游人数的发展速度超过了国外游客到达人数的
A.invisible B.emotional C.pois
下列选项中,属于血源性金黄色葡萄球菌肺炎特点的是A.两肺多发性结节阴影,以两下肺
某企业向银行借款,甲银行年利率8%,每年计息1次;乙银行年利率7.8%,每季度计
最新回复
(
0
)