阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图5—6所示。采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。【c++代码】class Matrix{//各种格式的文件最终都被转化为像素矩阵//st处代码省略};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;};classBMP:public Image{public:void parseFile(string fileName){//此处解析BMP文件并获得一个像素矩阵对象m(3) ;//显示像素矩阵m};classGIF:public Image{//此处代码省略};classJPEG:public Image(//gh处代码省略};void main(){//在windows操作系统上查看demo.bmp图像文件Image*imagel= (4) ;ImageImp*imageImpl= (5) ;(6) ;imagel-parseFile(“demo.bmp”);}现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计 (7) 个类。

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

【说明】

现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图5—6所示。

采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。

【c++代码】

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

//st处代码省略

};

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;

};

classBMP:public Image{

public:

void parseFile(string fileName){

//此处解析BMP文件并获得一个像素矩阵对象m(3) ;//显示像素矩阵m

};

classGIF:public Image{

//此处代码省略

};

classJPEG:public Image(

//gh处代码省略

};

void main(){

//在windows操作系统上查看demo.bmp图像文件

Image*imagel= (4) ;

ImageImp*imageImpl= (5) ;(6) ;

imagel->parseFile(“demo.bmp”);

}

现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计 (7) 个类。


相关考题:

阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图5—7所示。采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。【Java代码】class Matrix{//各种格式的文件最终都被转化为像素矩阵//gt处代码省略};abstract class ImageImp{public abstract void doPaint(Matrix m); //显示像素矩阵m};class WinImp extends ImageImp{public void doPaint(Matrix m){/*调用windows系统的绘制函数绘制像素矩阵*/}};class LinuxImp extends ImageImp{public void doPaint(Matrix m){/*调用Linux系统的绘制函数绘制像素矩阵*/}};abstract class Image{public void setImp(ImageImp imp){(1) =imp;}public abstract void parseFile(String fiieName);protected (2) imp;};class BMP extends Image{public void parseFile(String fiieName){//此处解析BMP文件并获得一个像素矩阵对象m(3) ;//显示像素矩阵m}};classGIF extends Image{//此处代码省略};class JPEG extends Image{//此处代码省略};publ.ic class j avaMain{public static v。id main (string[]args) {//在windows操作系统上查看demO.bmp图像文件Image imagel= (4) ;ImageImp imageImpl= (5) ,(6鱼) ;imagel.parseF’ile(“demo.bmp”);}}现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix和类ja.vaMain,若采用桥接设计模式则至少需要设计 (7) 个类。

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图5-1所示。【c++代码】}

试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

阅读下列说明和 C ++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留 下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图 6-1 所示。【C++ 代码】#includeusing namespace std;class BrakeBehavior{public:(1) ; /*其余代码省略*/};class LongWheelBrake : public BrakeBehavior{public:void stop(){cout

阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

阅读下列说明和Java代码,将应填入( )处的字句写在答题纸的对应栏内。【说明】某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够在Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接模式进行设计,得到如图6-1所示的类图。【Jave代码】Import java.util.*;class Matrix{ //各种格式的文件最终都被转化为像素矩阵//此处代码省略};abstract class Implementor{Public( );//显示像素矩阵 m};class WinImp extends Implementor{public void doPaint(Matrix m){//调用Windows 系统的绘制函数绘制像素矩阵}};class LinuxImp extends Implementor{public void doPaint(Matrix m){//调用Linux 系统的绘制函数绘制像素矩阵}};abstract class Image{public void setImp(Implementor imp){this.imp= imp; }public abstract void parseFile(String fileName);protected Implementor imp;};class BMPImage extends Image{//此处代码省略};class GIFImage extends Image{public void parseFile(String fileName) {//此处解析BMP 文件并获得一个像素矩阵对象 m( );//显示像素矩阵 m}};Class Main{Public static viod main(String[]args){//在Linux 操作系统上查看 demo.gif 图像文件Image image=()Implementor imageImp=()( )Image.parseFile(〝demo.gif〝);}}

阅读下列说明和C++代码,将应填入( )处的字句写在答题纸的对应栏内。【说明】某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5-1所示的类图。【C++代码】#include#include;Using namespace std;class Matrix{//各种格式的文件最终都被转化为像素矩阵//此处代码省略};class Implementor{public:( );显示像素矩阵 m};class WinImp:publicImplementor{public:Viod doPaint(Matrix m){/*调用 Windows 系统的绘制函数绘制像素矩阵*/};class LinuxImp:publicImplementor{/*调用 Linux 系统的绘制函数绘制像素矩阵*/}};class Image{public:viod setImp(Implement*imp) {this->imp=imp;}Virtual viod parseFile(string fileName)=0protected:Implementor*imp;};class BMPImage:publicImage{//此处省略代码};class GIFImage:publicImage{Public:viod parseFile(string fileName) {//此处解析 GIF 文件并获得一个像素矩阵对象 m( );显示像素矩阵 m}};class JPEGImage:publicImage{//此处代码省略};int main(){//在 linux 操作系统上查看 demo.gif 图像文件Image*image=( );Implementor*imageImp=( );( )Image->parseFile(〝demo.gif〝);return0;}

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。

阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。【说明】某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。