信管网案例分析

导航

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。某图像预览程序要求能够查看BMP,JPEG

2021年11月05日来源:信管网 作者:cnitpm

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某图像预览程序要求能够查看bmp,jpeg和gif三种格式的文件,且能够在windows和linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接 (bridge)模式进行设计,得到如图5.1所示的类图。

【c++代码】

#include

#include

using namespace std;

class matrix{//各种格式的文件最终都被转化为像素矩阵

//此处代码省略

};

class implement{

public:

(1) ;//显示像素矩阵m

};

class winimp:public implementor{

public:

void dopaint(matrix m){/*调用windows系统的绘制函数绘制像素矩阵*/}

};

class linuximp: public implementor{

public:

void dopaint(matrix m){/*调用linux系统的绘制函数绘制像素矩阵*/}

};

class imag{

public:

void setimp(implementor *imp){this.imp=imp;}

virtual void parsefile(string filename)=0;

protected:

implenentor *imp;

};

class bmpimage:public image{

//此处代码省略

};

class gifimage:public image{

public:

void parsefile(string filename){

//此处解析gif文件并获取一个像素矩阵对象m

(2) ;//显示像素矩阵m

}

};

class jpegimage:public image{

//此处代码省略

};

int main(){

public static void main(string[] args){

//在linux操作系统上查看demo.gif图像文件

imag imag= (3) ;

implementor imageimp= (4) ;

(5) ;

image.parsefile(“demo.gif”);

}

}

信管网参考答案:

(1)virtual void dopaint(matrix m)=0;

(2)imp->dopaint(m)

(3)new gifimage()

(4)new linuximp()

(5)imp->setimp(imageimp)

查看解析:www.cnitpm.com/st/3956916756.html

温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

分享至:
请使用浏览器的分享功能,把好文章分享给更多的人

信管网 - 信息系统项目管理专业网站

下载APP-在线学习

培训课程

0元畅享

考试题库

免费资料

APP下载