题目内容 (请给出正确答案)
[主观题]

阅读下列说明和Java代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏

阅读下列说明和Java代码,应填入(n)处。

【说明】

某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-7所示:

阅读下列说明和Java代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该

为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-12所示:

阅读下列说明和Java代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该

其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口FlyBehavior与 QuackBehavior分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。

【Java代码】

(1) FlyBehavior{

public void fly();

};

(2) QuackBehavior{

public void quack();

};

class FlyWithWings implements FlyBehavior{

public void fly(){System.out.println(“使用翅膀飞行!”);}

};

class FlyNoWay implements FlyBehavior{

public void fly(){System.out.println(“不能飞行!”);}

};

class Quack implements QuackBehavior{

public void quack(){System.out.println(“发出\‘嘎嘎\’声!”); }

};

class Squeak implements QuackBehavior{

public void quack(){System.out.println(“发出空气与橡皮摩擦声 !”);

}

};

class QuackNoWay implements QuackBehavior{

public void quack(){System.out.println(“不能发声!”);}

};

abstract class Duck{

protected FlyBehavior (3);

protected QuackBehavior (4);

public void fly(){ (5); }

public void quack() { (6);};

public (7) void display();

};

class RubberDuck extends Duck{

public RubberDuck(){

flyBehavior=new (8);

quackBehavior=new (9);

}

public void display(){/*此处省略显示橡皮鸭的代码*/ }

};

//其他代码省略

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“阅读下列说明和Java代码,应填入(n)处。 【说明】 某游…”相关的问题

第1题

根据实体联系图10-3,填写挂号单、门诊处方、处方明细和药品库关系模式中的空 (5)~(8)处,并指出挂号

单、门诊处方和处方明细关系模式的主键。

点击查看答案

第2题

阅读以下预备知识、函数说明和C代码,将应填入(n)处的字句填写完整。[说明] (1)对给定的字符集合及

阅读以下预备知识、函数说明和C代码,将应填入(n)处的字句填写完整。

[说明]

(1)对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d)及其权值2、7、4、5,可构造如图3-26所示的最优二叉树,以及相应的结构数组Ht(如表3-12所示,其中数组元素Ht[0]不用)。

结构数组Ht的类型定义如下:

(2)用“0”或“1”标识最优二叉树中分支的规则是:从一个结点进入其左(右)孩子结点,就用“0”(或“1”)标识该分支(示例见图3-26)。

(3)若用上述规则标识最优二叉树的每条分支后,从根结点开始到叶子结点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子结点的前缀编码。例如图3-26所示的叶子结点a、b、c、d的前缀编码分别是110、0、111、10。

[函数说明1]

函数void LeafCode (int root,int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子结点,为所有的叶子结点构造前缀编码。其中,形参root为最优二叉树的根结点下标;形参n为叶子结点个数。

在函数void LeafCode (int root,int n)构造过程中,将Ht[p].weight域用做被遍历结点的遍历状态标志。

[函数4.1]

[函数说明2]

函数void Decode (char (作图)buff,int root)的功能是:将前缀编码序列翻译成叶子结点的字符序列,并输出。其中,形参root为最优二叉树的根结点下标;形参buff指向前缀编码序列。

[函数4.2]

点击查看答案

第3题

将关系模式R分解到BCNF

点击查看答案

第4题

如果将关系模式R分解为: R1(A,B,E) R2(B,C,D) 指出关系模式R2的键,并说明该关系模式最高满足第几

如果将关系模式R分解为:

R1(A,B,E)

R2(B,C,D)

指出关系模式R2的键,并说明该关系模式最高满足第几范式(在1NF~BCNF之内)

点击查看答案

第5题

阅读下列程序说明和C++代码,将应填入(n)处。 【说明】 “背包问题”的基本描述是:有一个背包,能盛放的

阅读下列程序说明和C++代码,将应填入(n)处。

【说明】

“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1;w2,……,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。

如下程序均能求得“背包问题”的一组解,其中程序4.1是“背包问题”的递归解法,而程序4.2是“背包问题”的非递归解法。

【程序4.1】

include<stdio.h>

define N 7

define S 15

int w[N+1]={0,1,4,3,4,5,2,7};

int knap(int s,int n)

{ if(s==0)return 1;

if(s<0||(s>0& &n<1))return 0;

if((1)))|

printf("%4d",w[n]);return 1;

} return (2);

}

main(){

if(knap(S,N))printf("OK!\n");

else printf("NO!\n");

}

【程序4.2】

include<stdio.h>

define N 7

define S 15

typedef struct{

int s;

int n:

int job;

} KNAPTP;

int w[N+1]={0,1,4,3,4,5,2,7};

int knap(int s,int n);

main(){

if(knap(S,N))printf("OK!\n");

else printf("NO!\n");}

int knap(int s,int n)

{ KNAPTP stack[100],x;

int top,k,rep;

x.s=s;x.n=n;

x.job=0;

top=|;Stack[top]=x;

k=0;

while((3)){

x=Stack[top];

rep=1;

while(!k && rep){

if(x.s==0)k=1;/*已求得一组解*/

else if(x.s<0||x.n <=0)rep=0;

else{x.s=(4);x.job=1;

(5)=x;

}

}

if(!k){

rep=1;

while(top>=1&&rep){

x=stack[top--];

if(x.job==1){

x.s+=W[x.n+1];

x.job=2;

Stack[++top]=x;

(6);

}

}

}

}

if(k){/*输出一组解*/

while(top>=1){

x=staCk[top--];

if(x.job==1)

printf("%d\t",w[x.n+1]);

}

}

return k;

}

点击查看答案

第6题

阅读下列说明和E-R图,回答问题1至问题3。 【说明】 某网上订书系统的E-R图(已消除了不必要的冗余)如

阅读下列说明和E-R图,回答问题1至问题3。

【说明】

某网上订书系统的E-R图(已消除了不必要的冗余)如图2-7所示(图中没有标出主键)。图中实体的说明如表2-7所示。相关属性说明如表2-8所示。

一个顾客可以在同一天填写多张购书单,每张购书单上可填写多种图书,每种图书可以订购多本,bid相同的图书在同一张购书单上不能出现多次。

注:为简化起见,不考虑信用卡号码泄漏所带来的安全性等问题。

根据E-R图中给出的词汇,按照“有关模式名(属性,属性,...)”的格式,将此E-R图转换为4个关系模式,并指出每个关系模式中的主键和外键,其中模式名根据需要取实体名或联系名。

点击查看答案

第7题

阅读下列程序说明和C代码,将应填入(n)处。【程序5说明】 著名的四色定理指出任何平面区域图均可用四

阅读下列程序说明和C代码,将应填入(n)处。

【程序5说明】

著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。

程序中用1~4表示四种颜色。要着色的N个区域用0~N-1编号,区域相邻关系用 adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域j相邻;矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i所着颜色。

【程序5】

include<stdio.h>

define N 10

void output(int color[])/*输出一种着色方案*/

{ int i;

for(i=0;i<N;i++)

printf("%4d",color[i]);

printf("\n");

}

int back (int * ip,int color[])/*回溯*/

{ int c=4;

while(c==4){

if(*ip<=0)return 0;

--(*ip);

c=(1);

color[*ip]=-1;

}

return c;

}

/*检查区域i,对c种颜色的可用性*/

int colorOk(int i,int c,int [][N],int color[]}

{ int j;

for(j=0;j<i;j++)

if((2))

return 0;

return 1;

}

/*为区域i选一种可着的颜色*/

int select (int i,int c,int adj[][N],int color[])

{ int k;

for(k=c;k<=4;k++)

if(colorOK((3)))

return k;

return 0;

}

int coloring(int adj[][N])/*寻找各种着色方案*/

{ int color[N],i,c,cnt;

for(i=0;i<N;i++)color[i] =-1;

i=c=0;cnt=0;

while(1){

if((c=(4))==0){

c=back(&i,color);

if(c==0)return cnt;

}else{(5);i++;

if(i==N){

output(color);

++cnt;

c=back(&i,color);

}else c=0;

}

}

}

void main()

{ int adj[N][N]=

{{0,1,0,1,1,1,1,1,1,1},

{1,0,1,1,0,1,1,1,1,0},

{0,1,0,1,0,1,1,0,1,1},

{1,1,1,0,1,1,0,0,1,1},

{1,0,0,1,0,1,0,0,0,0},

{1,1,1,1,1,0,1,0,0,1},

{1,1,1,0,0,1,0,0,1,0},

{1,1,0,0,0,0,0,0,1,1},

{1,1,1,1,0,0,1,1,0,1},

{1,0,1,1,0,1,0,1,1,0}

};

printf("共有%d组解.\n",coloring(adj));

}

点击查看答案

第8题

对于本题的作业处理问题,用图4-1的贪心算法策略,能否求得最高收益?(6)。用贪心算法求解任意给定问

对于本题的作业处理问题,用图4-1的贪心算法策略,能否求得最高收益?(6)。用贪心算法求解任意给定问题时,是否一定能得到最优解?(7)。

点击查看答案

第9题

根据图3-2所示的播放器行为UML状态图,给出从“关闭”状态到“播放”状态所经过的最短事件序列(假设电

池一开始就是有电的)。

点击查看答案

第10题

阅读下列说明、图和C代码。[说明5-1]B树是一种多叉平衡查找树。一棵m阶的B树,或为空树,或为满足下列

阅读下列说明、图和C代码。

[说明5-1]

B树是一种多叉平衡查找树。一棵m阶的B树,或为空树,或为满足下列特性的m叉树:

①树中每个结点最多有m棵子树;

②若根结点不是叶子结点,则它至少有两棵子树;

⑧除根之外的所有非叶子结点至少有[m/2]棵子树;

④所有的非叶子结点中包含下列数据信息:

(n,A0,K1,A1,K2,A2, …,Kn,An)其中:Ki(i=1,2,…,n)为关键字,且Ki<Ki+1(i=1,2,…,n-1);Ai(i=0,1,…,n)为指向子树根结点的指针,且指针Ai-1,所指子树中所有结点的关键字均小于Ki,Ai+1,所指子树中所有结点的关键字均大于Ki,n为结点中关键字的数目。

⑤所有的叶子结点都出现在同一层次上,并且不带信息(可以看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。

例如,一棵4阶B树如下图所示(结点中关键字的数目省略)。

B树的阶M、bool类型、关键字类型及B树结点的定义如下:

define M 4 /*B树的阶*/

typedef enum {FALSE=0,TRUE=1}bool;

typedef int ElemKeyType;

typedef struct BTreeNode {

int numkeys; /*结点中关键字的数日*/

struct BTreeNode*parent; /*指向父结点的指针,树根的父结点指针为空*/

struct BTreeNode *A[M]; /*指向子树结点的指针数组*/

ElemKeyType K[M]; /*存储关键字的数组,K[0]闲置不用*/

}BTreeNode;

函数SearchBtree(BTreeNode*root,ElemKcyTypeakey,BTreeNode:*pb)的功能是:在给定的一棵M阶B树中查找关键字akey所在结点,若找到则返回TRUE,否则返回 FALSE。其中,root是指向该M阶B树根结点的指针,参数ptr返回akey所在结点的指针,若akey不在该B树中,则ptr返回查找失败时空指针所在结点的指针。例如,在上图所示的4阶B树中查找关键字25时,ptr返回指向结点e的指针。

注;在结点中查找关键字akey时采用二分法。

[函数5-1]

bool SearchBtree(BTreeNode* root, ElemKeyType akey, BTreeNode **ptr)

{

int lw, hi, mid;

BTreeNode*p = root;

*ptr = NULL;

while ( p ) {

1w = 1; hi=(1);

while (1w <= hi) {

mid = (1w + hi)/2;

if (p -> K[mid] == akey) {

*ptr = p;

return TRUE;

}

else

if ((2))

hi=mid - 1;

else

1w = mid + 1;

}

*ptr = p;

p = (3);

}

return FALSE;

}

[说明5-2]

在M阶B树中插入一个关键字时,首先在最接近外部结点的某个非叶子结点中增加一个关键字,若该结点中关键字的个数不超过M-1,则完成插入;否则,要进行结点的“分裂”处理。所谓“分裂”,就是把结点中处于中间位置上的关键字取出来并插入其父结点中,然后以该关键字为分界线,把原结点分成两个结点。“分裂”过程可能会一直持续到树根,若树根结点也需要分裂,则整棵树的高度增加1。

例如,在上图所示的B树中插入关键字25时,需将其插入结点e中。由于e中已经有3个关键字,因此将关键字24插入结点e的父结点b,并以24为分界线将结点e分裂为e1和e2两个结点,结果如下图所示。

函数Isgrowing(BTreeNode*root,ElemKeyTypeakey)的功能是:判断在给定的M阶B树中插入关键字akey后,该B树的高度是否增加,若增加则返回TRUE,否则返回FALSE。其中,root是指向该M阶B树根结点的指针。

在函数Isgrwing中,首先调用函数SearchBtree(即函数5-1)查找关键字akey是否在给定的M阶B树中,若在,则返回FALSE(表明无需插入关键字akey,树的高度不会增加);否则,通过判断结点中关键字的数目考查插入关键字akey后该B树的高度是否增加。

[函数5-2]

bool Isgrowing(BTreeNode* root, ElernKeyType akey)

{ BTreeNode *t, *f;

if( !SearchBtree((4) )

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信