中级软件设计师2017下半年下午试题 - 图文 联系客服

发布时间 : 星期四 文章中级软件设计师2017下半年下午试题 - 图文更新完毕开始阅读403c846cb6360b4c2e3f5727a5e9856a5712266d

c[][]:图G的邻接矩阵

K:统计变量,当期已经访问的定点数为k+1 x[k]:第k个访问的顶点编号,从0开始

Visited[x[k]]:第k个顶点的访问标志,0表示未访问,1表示已访问 (2)C程序

#include #include #define MAX 100

Vido Hamilton(int n,int x[MAX,int c[MAX][MAX]){ in t ;

in t visited[MAX]; int k;

/*初始化x数组贺visited数组*/ for (i=0:i

visited [i]=0; }

/*访问起始顶点*/ k=0 (1); x[0]=0 K=k+1

/*访问其他顶点*/ while(k>=0){ x[k]=x[k]+1;

while(x[k]>

if (2)&&c[x-[k-1]][x[k]=1){/*邻接顶点x[k]未被访问过*/ Break; }else{

x[k] = x[k] +1 } }

if(x[k]

prinf(〝%d--〝,x[k] ; /*输出哈密尔顿回路*/ }

prinf(〝%d--〝,x[0] ; return;

}else if x[k]

}else{/*没有未被访问过的邻接顶点,回退到上一个顶点*/ x[k]=0;

visited x[k]=0; (5); } } }

问题:4.1 根据题干说明。填充C代码中的空(1)~(5).

问题:4.2 根据题干说明和C代码,算法采用的设计策略为(6),该方法在遍历图的顶点时,采用的是(7)方法(深度优先或广度优先)。

试题五

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

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

【C++代码】

#include

#include<:string> ; Using namespace std;

class Matrix{//各种格式的文件最终都被转化为像素矩阵 //此处代码省略 };

class Implementor{ public:

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

class WinImp:public Implementor{ public:

Viod doPaint(Matrix m){/*调用Windows系统的绘制函数绘制像素矩阵*/ }; class LinuxImp:public Implementor{/*调用Linux系统的绘制函数绘制像素矩阵*/} };

class Image{ public:

viod setImp(Implement*imp) {this->imp=imp;} Virtual viod parseFile(string fileName)=0 protected:

Implementor*imp; };

class BMPImage:public Image{ //此处省略代码 };

class GIFImage:public Image{ Public:

viod 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; }

试题六

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

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

图6-1 类图

【Java代码】

Import java.util.*;

class Matrix{ //各种格式的文件最终都被转化为像素矩阵 //此处代码省略 };

abstract class Implementor{ Public(1);//显示像素矩阵 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 (2);//显示像素矩阵m } };

Class Main{

Public static viod main(String[]args){ //在Linux操作系统上查看demo.gif图像文件 Image image=(3)

Implementor imageImp=(4) (5)

Image.parseFile(〝demo.gif〝); } }